|
Post by zzz000abc on Jul 6, 2020 19:14:16 GMT
nomainwin WindowWidth=400 :WindowHeight=200 textbox #m.tb1,20,10,350,40 button #m.bt1,"Short",[bt1],UL,25,60,100,50 button #m.bt2,"Long",[bt2],UL,150,60,100,50 button #m.bt3,"Quit",[bt3],UL,275,60,100,50 button #m.bt4,"newChar",[bt4],UL,40,120,150,50 button #m.bt5,"newWord",[bt5],UL,205,120,150,50 open"morseCode " for window as #m #m.bt1,"!font Tahoma 16" : #m.bt2,"!font Tahoma 16" : #m.bt3,"!font Tahoma 16" #m.bt4,"!font Tahoma 16" : #m.bt5,"!font Tahoma 16":#m.tb1,"!font Tahoma 16" wf$="bump.wav" wait [bt1] playwave "media\";wf$ '#m.tb1,"!contents? txt$" txt$=txt$+chr$(149)+space$(1) #m.tb1,"" #m.tb1,txt$ wait [bt2] txt$=txt$+chr$(150)+space$(1) #m.tb1,"" #m.tb1,txt$ for i=1 to 3 playwave "media\";wf$ timer 10,[wt1] wait [wt1] timer 0 next wait [bt4] txt$=txt$+space$(3) wait [bt5] txt$=txt$+space$(7) wait [bt3] close #m playwave "" end wait
|
|
|
Post by B+ on Jul 6, 2020 19:39:12 GMT
Dang I can't type my name and hear it in Morse Code?
|
|
|
Post by zzz000abc on Jul 6, 2020 19:49:04 GMT
Dang I can't type my name and hear it in Morse Code? surely you can do that but with the next version. (please wait more 24 hours)
|
|
|
Post by honkytonk on Jul 7, 2020 8:31:13 GMT
|
|
|
Post by B+ on Jul 7, 2020 12:55:38 GMT
But that is Morse code in French, who understands that accent?
|
|
|
Post by honkytonk on Jul 8, 2020 7:16:34 GMT
But that is Morse code in French, who understands that accent? Lol! I forgot this detail. Translate translate Google is our friend. The code remains international. Ouf...
|
|
|
Post by zzz000abc on Jul 8, 2020 17:06:04 GMT
hi, here is the code to play the sounds of text entered .It accepts only alphabets and numbers.
' nomainwin global tunit,mfile$ tb=1 : fl=2 :tunit=50 :mfile$="bump.wav" WindowWidth = 500 WindowHeight = 240 texteditor #m.tb1,10,10,480,70 graphicbox #m.gb1,10,85,480,40 'graphicbox #m.gb2,10,120,60,60 button #m.bt1,"Load ",[bt1],UL,10,140,60,40 button #m.bt2,"Clear ",[bt2],UL,90,140,60,40 button #m.bt3,"Play ",[bt3],UL,160,140,60,40 button #m.bt4,"Quit ",[bt4],UL,230,140,60,40
groupbox #m, "", 300,120, 180, 60 radiobutton #m.rb2, "File", [rb2], [nil],400,140, 60, 20 radiobutton #m.rb1, "Text ", [rb1], [nil], 310, 140, 60, 20 open "getMorse" for window as #m #m,"trapclose [bt4]" #m,"font Tahoma 12" : #m.rb1,"font Tahoma 16" : #m.rb2,"font Tahoma 16" #m.tb1,"!font Tahoma 16" : #m.gb1,"font Tahoma 16" #m.bt1,"!font Tahoma 16" : #m.bt2,"!font Tahoma 16" #m.bt3,"!font Tahoma 16" : #m.bt4,"!font Tahoma 16" #m.gb1,"down" #m.bt1,"!disable" #m.tb1,"" #m.gb1,"place 10 30;\enter text in the above box and press play" #m.rb1,"set" txtin=tb wait [bt1] 'load file filedialog "Open text file", "*.txt", fn$ k=wc(fn$,"\") : fn2$=word$(fn$,k,"\"):fs=1 if fn2$="" or word$(fn2$,2,".")<>"txt" then fn2$="No Valid File " :fs=0 #m.gb1,"down;place 10 20;|Selectecd "; fn2$ if fs=0 then goto [nil] open fn$ for input as #1 s$=input$(#1,lof(#1)) close #1 #m.tb1, s$
wait [bt2] 'clear text box #m.tb1,"!cls" : #m.gb1,"place 10 30;cls"
wait [bt3] 'chk wht to play txt from file or txtbx ' get the string ' get the line chr$(10) ' skip the chars which are not alnum '48-57 numbers , 65-90 Capital letters, cap+32=small 'replace multiple places with single space between words ts$="" : tss$="" if txtin=tb then #m.tb1,"!contents? ts$" if txtin=fl then ts$=s$ ts$=trim$(ts$) print ts$ ni=wc(ts$,chr$(10)) for i=1 to ni tss$=tss$+word$(ts$,i,chr$(10))+chr$(32) next ni=wc(tss$,chr$(32)) : ts$="" for i=1 to ni if word$(tss$,i,chr$(32))<>chr$(32) then ts$=ts$+word$(tss$,i,chr$(32))+chr$(32) next ts$=trim$(ts$) tss$="" for i=1 to len(ts$) c$=upper$(mid$(ts$,i,1)) :a=asc(c$) if (a>47 and a<58) or ( a>64 and a<91)or a=32 then tss$=tss$+c$ next for i=1 to len(tss$) c$=mid$(tss$,i,1) if c$<>chr$(32) then c$=trim$(mcode$(c$)): print c$,len(c$) #m.gb1,"place 10 30;cls;\";c$ for j=3 to len(c$) if mid$(c$,j,1)=chr$(149) then dmy=chirp(1) dmy=quite(1) if mid$(c$,j,1)=chr$(150) then dmy=chirp(3) dmy=quite(1) next if mid$(tss$,i+1,1)<>chr$(32) and mid$(tss$,i+1,1)<>"" then dmy=quite(3) else if asc(c$)=32 then dmy=quite(7) end if next
wait [bt4] 'end the program playwave "" ,async close #m end wait [rb1] 'txtbx content #m.bt1,"!disable" #m.tb1,"" #m.gb1,"place 10 30;cls;\enter text in the above box and press play" txtin=tb wait [rb2] 'file content #m.gb1,"place 10 30;cls;\load text file and press play" #m.bt1,"!enable" txtin=fl wait [nil] wait
FUNCTION wc(s$,sep$) while word$(s$,k+1,sep$)<>"" k=k+1 wend wc=k END FUNCTION FUNCTION mcode$(c$) code$="" key$="65 32 9 149 150 ;66 32 9 150 149 149 149 ;67 32 9 150 149 150 149 ;68 32 9 150 149 149 ;69 32 9 149 ;70 32 9 149 149 150 149 ;71 32 9 150 150 149 ;72 32 9 149 149 149 149 ;73 32 9 149 149 ;74 32 9 149 150 150 150 ;75 32 9 150 149 150 ;76 32 9 149 150 149 149 ;77 32 9 150 150 ;78 32 9 150 149 ;79 32 9 150 150 150 ;80 32 9 149 150 150 149 ;81 32 9 150 150 149 150 ;82 32 9 149 150 149 ;83 32 9 149 149 149 ;84 32 9 150 ;85 32 9 149 149 150 ;86 32 9 149 149 149 150 ;87 32 9 149 150 150 ;88 32 9 150 149 149 150 ;89 32 9 150 149 150 150 ;90 32 9 150 150 149 149 ;48 32 9 150 150 150 150 150 ;49 32 9 149 150 150 150 150 ;50 32 9 149 149 150 150 150 ;51 32 9 149 149 149 150 150 ;52 32 9 149 149 149 149 150 ;53 32 9 149 149 149 149 149 ;54 32 9 150 149 149 149 149 ;55 32 9 150 150 149 149 149 ;56 32 9 150 150 150 149 149 ;57 32 9 150 150 150 150 149 ;" for i=1 to 36 w$= word$(key$,i,";") if chr$(val(w$))<>upper$(c$) then goto [nil1] while word$(w$,k+1)<>"" k=k+1 if k=1 or k>3 then code$=code$+chr$(val(word$(w$,k)))+space$(1)': print chr$(val(word$(w$,k)));" "; wend k=0 print [nil1] next mcode$=trim$(code$) END FUNCTION FUNCTION quite(k) if k=3 then msg$="newChar" if k=7 then msg$="newWord" if k<>1 then #m.gb1,"place 10 30;cls;\";msg$ for i=1 to k timer tunit,[wt1] wait [wt1] timer 0 if k<>1 then #m.gb1,"place 10 30;cls;\";msg$;" pause ";i;" units " next quite=0 END FUNCTION
FUNCTION chirp(k) m$="media\";mfile$ for i=1 to k playwave m$,async if k=1 then exit for timer tunit,[wt1chirp] wait [wt1chirp] timer 0 next chirp=0 END FUNCTION
|
|
|
Post by B+ on Jul 8, 2020 18:09:18 GMT
But that is Morse code in French, who understands that accent? Lol! I forgot this detail. Translate translate Google is our friend. The code remains international. Ouf... Sorry, a little joke while waiting for zzz's code ;-))
|
|
|
Post by B+ on Jul 8, 2020 18:16:07 GMT
hi, here is the code to play the sounds of text entered .It accepts only alphabets and numbers. ' nomainwin global tunit,mfile$ tb=1 : fl=2 :tunit=50 :mfile$="bump.wav" WindowWidth = 500 WindowHeight = 240 texteditor #m.tb1,10,10,480,70 graphicbox #m.gb1,10,85,480,40 'graphicbox #m.gb2,10,120,60,60 button #m.bt1,"Load ",[bt1],UL,10,140,60,40 button #m.bt2,"Clear ",[bt2],UL,90,140,60,40 button #m.bt3,"Play ",[bt3],UL,160,140,60,40 button #m.bt4,"Quit ",[bt4],UL,230,140,60,40
groupbox #m, "", 300,120, 180, 60 radiobutton #m.rb2, "File", [rb2], [nil],400,140, 60, 20 radiobutton #m.rb1, "Text ", [rb1], [nil], 310, 140, 60, 20 open "getMorse" for window as #m #m,"trapclose [bt4]" #m,"font Tahoma 12" : #m.rb1,"font Tahoma 16" : #m.rb2,"font Tahoma 16" #m.tb1,"!font Tahoma 16" : #m.gb1,"font Tahoma 16" #m.bt1,"!font Tahoma 16" : #m.bt2,"!font Tahoma 16" #m.bt3,"!font Tahoma 16" : #m.bt4,"!font Tahoma 16" #m.gb1,"down" #m.bt1,"!disable" #m.tb1,"" #m.gb1,"place 10 30;\enter text in the above box and press play" #m.rb1,"set" txtin=tb wait [bt1] 'load file filedialog "Open text file", "*.txt", fn$ k=wc(fn$,"\") : fn2$=word$(fn$,k,"\"):fs=1 if fn2$="" or word$(fn2$,2,".")<>"txt" then fn2$="No Valid File " :fs=0 #m.gb1,"down;place 10 20;|Selectecd "; fn2$ if fs=0 then goto [nil] open fn$ for input as #1 s$=input$(#1,lof(#1)) close #1 #m.tb1, s$
wait [bt2] 'clear text box #m.tb1,"!cls" : #m.gb1,"place 10 30;cls"
wait [bt3] 'chk wht to play txt from file or txtbx ' get the string ' get the line chr$(10) ' skip the chars which are not alnum '48-57 numbers , 65-90 Capital letters, cap+32=small 'replace multiple places with single space between words ts$="" : tss$="" if txtin=tb then #m.tb1,"!contents? ts$" if txtin=fl then ts$=s$ ts$=trim$(ts$) print ts$ ni=wc(ts$,chr$(10)) for i=1 to ni tss$=tss$+word$(ts$,i,chr$(10))+chr$(32) next ni=wc(tss$,chr$(32)) : ts$="" for i=1 to ni if word$(tss$,i,chr$(32))<>chr$(32) then ts$=ts$+word$(tss$,i,chr$(32))+chr$(32) next ts$=trim$(ts$) tss$="" for i=1 to len(ts$) c$=upper$(mid$(ts$,i,1)) :a=asc(c$) if (a>47 and a<58) or ( a>64 and a<91)or a=32 then tss$=tss$+c$ next for i=1 to len(tss$) c$=mid$(tss$,i,1) if c$<>chr$(32) then c$=trim$(mcode$(c$)): print c$,len(c$) #m.gb1,"place 10 30;cls;\";c$ for j=3 to len(c$) if mid$(c$,j,1)=chr$(149) then dmy=chirp(1) dmy=quite(1) if mid$(c$,j,1)=chr$(150) then dmy=chirp(3) dmy=quite(1) next if mid$(tss$,i+1,1)<>chr$(32) and mid$(tss$,i+1,1)<>"" then dmy=quite(3) else if asc(c$)=32 then dmy=quite(7) end if next
wait [bt4] 'end the program playwave "" ,async close #m end wait [rb1] 'txtbx content #m.bt1,"!disable" #m.tb1,"" #m.gb1,"place 10 30;cls;\enter text in the above box and press play" txtin=tb wait [rb2] 'file content #m.gb1,"place 10 30;cls;\load text file and press play" #m.bt1,"!enable" txtin=fl wait [nil] wait
FUNCTION wc(s$,sep$) while word$(s$,k+1,sep$)<>"" k=k+1 wend wc=k END FUNCTION FUNCTION mcode$(c$) code$="" key$="65 32 9 149 150 ;66 32 9 150 149 149 149 ;67 32 9 150 149 150 149 ;68 32 9 150 149 149 ;69 32 9 149 ;70 32 9 149 149 150 149 ;71 32 9 150 150 149 ;72 32 9 149 149 149 149 ;73 32 9 149 149 ;74 32 9 149 150 150 150 ;75 32 9 150 149 150 ;76 32 9 149 150 149 149 ;77 32 9 150 150 ;78 32 9 150 149 ;79 32 9 150 150 150 ;80 32 9 149 150 150 149 ;81 32 9 150 150 149 150 ;82 32 9 149 150 149 ;83 32 9 149 149 149 ;84 32 9 150 ;85 32 9 149 149 150 ;86 32 9 149 149 149 150 ;87 32 9 149 150 150 ;88 32 9 150 149 149 150 ;89 32 9 150 149 150 150 ;90 32 9 150 150 149 149 ;48 32 9 150 150 150 150 150 ;49 32 9 149 150 150 150 150 ;50 32 9 149 149 150 150 150 ;51 32 9 149 149 149 150 150 ;52 32 9 149 149 149 149 150 ;53 32 9 149 149 149 149 149 ;54 32 9 150 149 149 149 149 ;55 32 9 150 150 149 149 149 ;56 32 9 150 150 150 149 149 ;57 32 9 150 150 150 150 149 ;" for i=1 to 36 w$= word$(key$,i,";") if chr$(val(w$))<>upper$(c$) then goto [nil1] while word$(w$,k+1)<>"" k=k+1 if k=1 or k>3 then code$=code$+chr$(val(word$(w$,k)))+space$(1)': print chr$(val(word$(w$,k)));" "; wend k=0 print [nil1] next mcode$=trim$(code$) END FUNCTION FUNCTION quite(k) if k=3 then msg$="newChar" if k=7 then msg$="newWord" if k<>1 then #m.gb1,"place 10 30;cls;\";msg$ for i=1 to k timer tunit,[wt1] wait [wt1] timer 0 if k<>1 then #m.gb1,"place 10 30;cls;\";msg$;" pause ";i;" units " next quite=0 END FUNCTION
FUNCTION chirp(k) m$="media\";mfile$ for i=1 to k playwave m$,async if k=1 then exit for timer tunit,[wt1chirp] wait [wt1chirp] timer 0 next chirp=0 END FUNCTION
Oh man, all we got for a beeper is a dang .wav file. Just realized if you got the letters right or just made noise, I wouldn't know the difference, all I know is ---...--- Whatever happen to BEEP, I don't get sound or error message. BEEP : PRINT "BEEP Test is done."
|
|
|
Post by B+ on Jul 8, 2020 18:26:02 GMT
French version has nice graphic and looks to be written efficiently but lousy sound effect, donk! for everything. I might be missing an important instruction for it's proper use.
|
|
|
Post by zzz000abc on Jul 9, 2020 4:14:43 GMT
French version has nice graphic and looks to be written efficiently but lousy sound effect, donk! for everything. I might be missing an important instruction for it's proper use. as I'm using linux with wine BEEP never worked for me. So used PLAYWAVE instead. do the following test instead of beep test. for i=1 to 5 playwave "media\bump.wav",sync next print "playing wave file test done"
if the test failed means check your path to media/*.wav files and change one line in the function chirp(). *Check the video attached it's working on my system. **Atually I concentrated on basic functionality but I will have a glance through the French version also if possible let us try to mimic it. Attachments:morse.mp4 (777.71 KB)
|
|
|
Post by Rod on Jul 9, 2020 12:21:12 GMT
Beep has not worked for many years. It relies on your pc having a speaker hard wired on the motherboard. Your pc would need to be very old to have such a speaker, bit like parallel ports and serial ports. Such hardware migrated to usb long ago.
|
|
|
Post by zzz000abc on Jul 9, 2020 13:09:24 GMT
thank you Rod, for the information on BEEP.
now I have made a few minor changes to address 2 things i have noticed one is the code is running a bit faster and the other thing is overlapping of sounds while playing dash.Still it suffers from a handicap that is once it starts playing it will not stop in the middle by clicking on Quit or closing the window.I think I shoud use SCAN some where appropriately or should borrow code from tsh's pause function.
' nomainwin global tunit,mfile$ tb=1 : fl=2 :tunit=50 :mfile$="bump.wav" WindowWidth = 500 WindowHeight = 240 texteditor #m.tb1,10,10,480,70 graphicbox #m.gb1,10,85,480,40 'graphicbox #m.gb2,10,120,60,60 button #m.bt1,"Load ",[bt1],UL,10,140,60,40 button #m.bt2,"Clear ",[bt2],UL,90,140,60,40 button #m.bt3,"Play ",[bt3],UL,160,140,60,40 button #m.bt4,"Quit ",[bt4],UL,230,140,60,40
groupbox #m, "", 300,120, 180, 60 radiobutton #m.rb2, "File", [rb2], [nil],400,140, 60, 20 radiobutton #m.rb1, "Text ", [rb1], [nil], 310, 140, 60, 20 open "getMorse" for window as #m #m,"trapclose [bt4]" #m,"font Tahoma 12" : #m.rb1,"font Tahoma 16" : #m.rb2,"font Tahoma 16" #m.tb1,"!font Tahoma 16" : #m.gb1,"font Tahoma 16" #m.bt1,"!font Tahoma 16" : #m.bt2,"!font Tahoma 16" #m.bt3,"!font Tahoma 16" : #m.bt4,"!font Tahoma 16" #m.gb1,"down" #m.bt1,"!disable" #m.tb1,"" #m.gb1,"place 10 30;\enter text in the above box and press play" #m.rb1,"set" txtin=tb wait [bt1] 'load file filedialog "Open text file", "*.txt", fn$ k=wc(fn$,"\") : fn2$=word$(fn$,k,"\"):fs=1 if fn2$="" or word$(fn2$,2,".")<>"txt" then fn2$="No Valid File " :fs=0 #m.gb1,"down;place 10 20;|Selectecd "; fn2$ if fs=0 then goto [nil] open fn$ for input as #1 s$=input$(#1,lof(#1)) close #1 #m.tb1, s$
wait [bt2] 'clear text box #m.tb1,"!cls" : #m.gb1,"place 10 30;cls"
wait [bt3] 'chk wht to play txt from file or txtbx ' get the string ' get the line chr$(10) ' skip the chars which are not alnum '48-57 numbers , 65-90 Capital letters, cap+32=small 'replace multiple places with single space between words ts$="" : tss$="" if txtin=tb then #m.tb1,"!contents? ts$" if txtin=fl then ts$=s$ ts$=trim$(ts$) print ts$ ni=wc(ts$,chr$(10)) for i=1 to ni tss$=tss$+word$(ts$,i,chr$(10))+chr$(32) next ni=wc(tss$,chr$(32)) : ts$="" for i=1 to ni if word$(tss$,i,chr$(32))<>chr$(32) then ts$=ts$+word$(tss$,i,chr$(32))+chr$(32) next ts$=trim$(ts$) tss$="" for i=1 to len(ts$) c$=upper$(mid$(ts$,i,1)) :a=asc(c$) if (a>47 and a<58) or ( a>64 and a<91)or a=32 then tss$=tss$+c$ next for i=1 to len(tss$) c$=mid$(tss$,i,1) if c$<>chr$(32) then c$=trim$(mcode$(c$)): print c$,len(c$) #m.gb1,"place 10 30;cls;\";c$ for j=3 to len(c$) if mid$(c$,j,1)=chr$(149) then dmy=chirp(1) dmy=quite(1) if mid$(c$,j,1)=chr$(150) then dmy=chirp(3) dmy=quite(1) next if mid$(tss$,i+1,1)<>chr$(32) and mid$(tss$,i+1,1)<>"" then dmy=quite(3) else if asc(c$)=32 then dmy=quite(7) end if next
wait [bt4] 'end the program playwave "" ,async close #m end wait [rb1] 'txtbx content #m.bt1,"!disable" #m.tb1,"" #m.gb1,"place 10 30;cls;\enter text in the above box and press play" txtin=tb wait [rb2] 'file content #m.gb1,"place 10 30;cls;\load text file and press play" #m.bt1,"!enable" txtin=fl wait [nil] wait
FUNCTION wc(s$,sep$) while word$(s$,k+1,sep$)<>"" k=k+1 wend wc=k END FUNCTION FUNCTION mcode$(c$) code$="" key$="65 32 9 149 150 ;66 32 9 150 149 149 149 ;67 32 9 150 149 150 149 ;68 32 9 150 149 149 ;69 32 9 149 ;70 32 9 149 149 150 149 ;71 32 9 150 150 149 ;72 32 9 149 149 149 149 ;73 32 9 149 149 ;74 32 9 149 150 150 150 ;75 32 9 150 149 150 ;76 32 9 149 150 149 149 ;77 32 9 150 150 ;78 32 9 150 149 ;79 32 9 150 150 150 ;80 32 9 149 150 150 149 ;81 32 9 150 150 149 150 ;82 32 9 149 150 149 ;83 32 9 149 149 149 ;84 32 9 150 ;85 32 9 149 149 150 ;86 32 9 149 149 149 150 ;87 32 9 149 150 150 ;88 32 9 150 149 149 150 ;89 32 9 150 149 150 150 ;90 32 9 150 150 149 149 ;48 32 9 150 150 150 150 150 ;49 32 9 149 150 150 150 150 ;50 32 9 149 149 150 150 150 ;51 32 9 149 149 149 150 150 ;52 32 9 149 149 149 149 150 ;53 32 9 149 149 149 149 149 ;54 32 9 150 149 149 149 149 ;55 32 9 150 150 149 149 149 ;56 32 9 150 150 150 149 149 ;57 32 9 150 150 150 150 149 ;" for i=1 to 36 w$= word$(key$,i,";") if chr$(val(w$))<>upper$(c$) then goto [nil1] while word$(w$,k+1)<>"" k=k+1 if k=1 or k>3 then code$=code$+chr$(val(word$(w$,k)))+space$(1)': print chr$(val(word$(w$,k)));" "; wend k=0 print [nil1] next mcode$=trim$(code$) END FUNCTION FUNCTION quite(k) if k=1 then tunit=50 else tunit=300 if k=3 then msg$="newChar" if k=7 then msg$="newWord" if k<>1 then #m.gb1,"place 10 30;cls;\";msg$ for i=1 to k timer tunit,[wt1] wait [wt1] timer 0 if k<>1 then #m.gb1,"place 10 30;cls;\";msg$;" pause ";i;" units " next quite=0 END FUNCTION
FUNCTION chirp(k) m$="media\";mfile$ for i=1 to k playwave m$,sync if k=1 then exit for timer 50,[wt1chirp] wait [wt1chirp] timer 0 next chirp=0 END FUNCTION
the French one has two .bas files for playing dot and dash sounds by short click/press and long click/press. One file takes left mouse click input and other file takes ctrl button press as input for playing the sounds. when we can use buttons for short and long sounds why to rely on mouse or ctrl which is not reliable as for duration of time of click/press is considered.
|
|
|
Post by honkytonk on Jul 9, 2020 14:00:07 GMT
From french version. I fought a long time to reduce the latency time (200-250ms), which is very annoying. If we put two buttons (short-long), we are no longer in the manipulator's philosophy; and with a single button, there is no pressing time. If anyone has an idea to reduce the latency (in JB), I am interested.
|
|
|
Post by B+ on Jul 9, 2020 15:04:25 GMT
Having two wave files makes sense to me, mix any wav that runs short with any wav that runs longer, oh then maybe you need to set timers so when one stops the next dot or dash can play? Wait just use 2 very different very short sounds one for dot and one for dash, play SOS first so one knows dash from dot and all is well! zzz000abc I don't see any SCANs in your code, that might help you stop a program from continuing.
|
|