I'm making a tiny karaoke machine, but I can't find a function to convert string to number and to syncronize song and lyrics.
Could you please advise me ?
Code:
'TOBE...synchronize lyrics and timestamps
clearscreen()
set caret 10,10
for i = 1 to j-2
'time1 = left(lyrics[i],2) 'take the first two digits number of lyrics[i]
'convert time1 from string to number
'if 'real time' = time1 then display lyrics
wln mid(lyrics[i],3,80)
wait 3000 'this line should be removed if lyrics and timestamps are synchronized
next
Herewith the full code
Code:
'==================================================================================
' T.I.N.Y K.A.R.A.O.K.E
'
' Songs :
' 1. Nathan Evans - Wellerman (Sea Shanty)
' https://www.youtube.com/watch?v=bNQSMTNSnUw
'
' DISCLAIMER
' It is not intended for commercial use and not for sale
' No person or entity associated with this game received payment
' or anything of value, or entered into any agreement,
' in connection with any game assets used in this game.
'
' All trademarks and game assets are the property of their respective owners.
' While every effort is made to acknowledge their works,
' some of the game assets used in in this tiny game may not have
' clear name of the artist/author/creator/developer to be referred with.
' It may not include all relevant facts or the most up-to-date information.
'
'==================================================================================
'-----------------
' INITIALIZATION
'-----------------
set window "Karaoke",500,225,false,2
' color definition
visible black = [0,0,0]
visible white = [255,255,255]
' table to store lyrics line by line
lyrics = []
'-----------
' MAIN LOOP
'-----------
do
clearscreen()
'karaoke menu
set caret 10,10
wln "Karaoke"
wln "* Choose music file (wav)"
wln "* Choose lyric file (txt)"
wln
wln "Press SPACE to continue or ESC to quit"
do
if keydown(KEY_ESCAPE,true) then end
wait 1
until keydown(KEY_SPACE,true)
'loop until filename is not blank
do
filemusic = openfiledialog("wav")
filelyrics = openfiledialog("txt")
until not filemusic="" and not filelyrics=""
'loop until ready
loopready("Are you ready",14)
'read lyrics from text file line by line
f = openfile(filelyrics)
j = 1
do
lyrics[j] = frln(f)
j = j + 1
until frln(f) = unset
free file f
'load and play music
load music 1,filemusic
play music 1
'TOBE...synchronize lyrics and timestamps
clearscreen()
set caret 10,10
for i = 1 to j-2
'time1 = left(lyrics[i],2) 'take the first two digits number of lyrics[i]
'convert time1 from string to number
'if 'real time' = time1 then display lyrics
wln mid(lyrics[i],3,80)
wait 3000 'this line should be removed if lyrics and timestamps are synchronized
next
'loop until ready
loopready("Next Song ",14)
free music 1
loop
'-----------
' FUNCTIONS
'-----------
function clearscreen()
set color black;cls;set color white
endfunc
function loopready(message,lineNum)
do
'clear inside a defined rectangle
set color black
draw rect 10,lineNum*15,300,15,1
'continue ?
set color white
set caret 10,lineNum*15
write message+" (Y/N) ?"
answer = rln()
if upper(answer)="N" then end
until upper(answer)="Y"
endfunc
I have a question about the snake game. The snake's body is divided into small pieces and they follow the head. How can I make the pieces that make up the body follow the head of the snake when I move it?
What's up guys! Can we have examples of practical use of codes for the Windows console?
1 - Search.
2 - create directory.
3 - A program to receive two numbers from the user and make the sum and display it on the screen.
4 - Remove directories.
5 - Search within files, .txt, Doc.
6 - Basic Mini Compiler.
7 - Receive arguments via the prompt command line.
Something to learn more about the language.
thanks
Not sure if I had posted this before... If I have, let me know, and I will delete it... lol
This is a converted QB64 demo created by BPlus...
If you are as old or older than I am then this will be a "flash back"... If you are young, then stare continuously at the rotating pattern, then transfer all your savings to the following account number... Moo Ha Ha Ha Ha....
Variable "t" on line #41 will determine the number of "points" to be drawn. The program will start with one point and increment by one until "t" is reached. Then it starts over again using a different colour... ESC to quit.
Code:
' Open a window and enable double buffering.
set window "String Art Animated", 600, 600, false
set redraw off
' Converted from a QB64 program by BPlus
randomize clock()
visible xmax = 600
visible ymax = 600
visible a1, a2, cx, cy, r, s, n, pi, t
visible red, blue, green
r = ymax / 2
cx = xmax / 2
cy = ymax / 2
n = 250
s = 360 / n
red = 175
green = 255
blue = 255
pi = 3.141592654
t = 1
do
set color 0, 0, 0
cls
'set color red, green, blue
draw ellipse cx - 1, cy, r, r
for i = 1 to n
a1 = s * i
a2 = s * i * t
set color red, green , blue
draw line cx + sin(d2r(a1)) * r, cy + cos(d2r(a1)) * r, cx + sin(d2r(a2)) * r, cy + cos(d2r(a2)) * r
next
t = t + 0.0125
if t >= 20
t = 1
red = 32 + rnd(33, 255)
green = 32 + rnd(33, 255)
blue = 32 + rnd(33, 255)
endif
This release contains a first version of the enginea library, meant for sector based first person shooter games. This is far from the final version of the library; support for meshes is very basic and has not been tested much.
Added the enginea library and editor (enginea_editor.exe), for sector based first person shooter games, plus a tutorial (EngineA_Tutorial.pdf) and examples in examples/enginea_library