PLAY (function): Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
(Add new info and update example)
Line 1: Line 1:
The '''PLAY''' function returns the number of remaining notes/samples/seconds in the background music queue.
The '''PLAY''' function returns the number of remaining seconds in the background music queue.




{{PageSyntax}}
{{PageSyntax}}
: {{Parameter|remaining&}} = '''PLAY''' ({{Parameter|numericExpression&}})
: {{Parameter|remaining#}} = '''PLAY'''({{Parameter|voice&}})




{{PageParameters}}
{{PageParameters}}
* {{Parameter|remaining&}} is the number of notes/samples/seconds left to play in the background music queue.
* {{Parameter|remaining#}} is the number of seconds left to play in the background music queue.
* {{Parameter|numericExpression&}} can be any numeric expression.
* {{Parameter|voice&}} can be any numeric expression. It indicates for which tone voice channel the number of seconds remaining is to be returned. If {{Parameter|voice&}} is not in [0-3], the queue for voice 0 is returned.
* '''See also the important version dependent notes in the Availability section.'''
* '''See also the important version dependent notes in the Availability section.'''


Line 30: Line 30:
* In '''QB64''' and early '''QB64-PE''', this was just implemented as stub function which always returned zero.
* In '''QB64''' and early '''QB64-PE''', this was just implemented as stub function which always returned zero.
* Since '''QB64-PE v3.1.0''' the function is fully implemented, but unlike '''QuickBASIC''', in '''QB64-PE''' this function does not return the number of notes left, but the number of audio samples.
* Since '''QB64-PE v3.1.0''' the function is fully implemented, but unlike '''QuickBASIC''', in '''QB64-PE''' this function does not return the number of notes left, but the number of audio samples.
* Since '''QB64-PE v3.8.0''', if {{Parameter|numericExpression&}} is a number other than zero, then the function will return the amount of time (seconds) left to play.
* Since '''QB64-PE v3.8.0''', if {{Parameter|voice&}} is a number other than zero, then the function will return the amount of time (seconds) left to play.
* Multi-voice support was introduced in '''QB64-PE v4.0.0'''.
* Since '''QB64-PE v4.0.0''', the function will return the amount of time (seconds) left to play for the tone voice channel specified.




{{PageExamples}}
{{PageExamples}}
{{CodeStart}}
{{CodeStart}}
{{Cl|PLAY}} {{Text|<nowiki>"mb l4cf.l8el4fag.l8fl4gl8agl4f.l8fl4a>cl2dl4dl4c.<l8al4afg.l8fl4gl8agl4f.l8dl4dcl2f>l4dc.<l8al4afg.l8fl4g>dc.<l8al4a>cl2dl4dc.<l8al4afg.l8fl4gl8agl4f.l8dl4dcl1f"</nowiki>|#FFB100}}
{{Cl|OPTION}} {{Cl|_EXPLICIT}}


{{Cl|PRINT}} {{Text|<nowiki>"Playing tune..."</nowiki>|#FFB100}}
{{Cl|CONST}} MML = {{Text|<nowiki>"mbv15l16t155o2mnb4p8msbbmnb4p8msbbb8g#8e8g#8b8g#8b8o3e8o2b8g#8e8g#8b8g#8b8o3e8o2mnb4p8msbbmnb4"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"p8msbbmnb4p8msbbmnb4p8msbbb8bbb8b8b8bbb8b8b8bbb8b8b8bbb8b8mlb2b2b8p8p4p4p8mso1bbb8bbb8bbo2e8f#8g#8o1bb"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"b8bbo2e8g#g#f#8d#8o1b8bbb8bbb8bbo2e8f#8g#8eg#mlb4bmsag#f#e8g#8e8o3bbb8bbb8bbo4e8f#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"g#8o3bbb8bbo4e8g#g#f#8d#8o3b8bbb8bbb8bbo4e8f#8g#8mleg#b4bag#f#mse8g#8e8o3g#g#g#8g#g#g#8g#g#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8e8d#8c#8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3g#8o4c#8o3b8a#8b8a#8b8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"e8d#8c#8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3b8a#8b8o2bbb8f#f#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"f#8f#f#f#8g#8a8f#4mna8msg#8mne4msg#8f#8f#8f#8o3f#f#f#8f#f#f#8g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"a8mnf#4msa8g#8mne4msg#8f#8o2bbb8o1bbb8bbb8bbo2mne8f#8g#8o1bbb8bbo2e8g#g#f#8d#8o1b8bbb8bb"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"b8bbo2e8f#8g#8eg#mlb4mnbag#f#e8g#8e8o3bbb8bbb8bbo4e8f#8g#8o3bbb8bbo4e8g#g#f#8d#8o3b8bb"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"b8bbb8bbo4e8f#8g#8mleg#mlb4mnbag#f#mne8g#8e8o3mle56f56g56a56b56o4c56d56mne8eee8e8mlg#4g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"mnf#8e8d#8e8c#8mso3bo4c#o3bo4c#o3bo4c#d#eo3abababo4c#d#o3g#ag#ag#abo4c#o3f#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"g#f#g#f#g#f#g#f#g#f#d#o2bo3mlbo4c#d#e8d#8e8c#8o3msbo4c#o3bo4c#o3bo4c#d#eo3abababo4c#d#o3g#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"ag#ag#abo4c#o3f#g#f#g#f#af#emne8p8mlc#4mnc#o2cmso3c#o2co3d#c#o2baag#ec#c#c#c#c#e"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"d#o1cg#g#g#g#g#g#o2c#eg#o3c#c#c#c#c#o2co3c#o2co3d#c#o2baag#ec#c#c#c#c#ed#o1cg#g#g#g#g#mng#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o2c#eg#o3msc#ed#c#d#o2cg#g#g#o3g#ec#d#o2cg#g#g#o3g#ec#d#o2bg#g#a#gd#d#g#gg#gg#ag#f#e"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o1ba#bo2eo1bo2f#o1bo2g#ed#eg#eaf#bo3g#f#ed#f#ec#o2bo3c#o2bo3c#d#ef#g#o2ababo3c#d#ef#o2g#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"ag#aco3c#d#eo2f#g#f#g#f#g#f#g#f#g#f#d#o1bco2c#d#eo1ba#bo2eo1bo2f#o1bo2g#ed#eg#eaf#b"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3g#f#ed#f#ec#o2bo3c#o2bo3c#d#ef#g#o2ababo3c#d#ef#o2g#ag#abo3c#d#eo2f#o3c#o2co3c#d#c#o2af#mne"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3mlef#g#abo4c#d#mne8mseee8e8mlg#4g#8msf#8mse8d#8e8c#8o3bo4c#o3bo4c#o3bo4c#d#eo3a"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"bababo4c#d#o3g#ag#ag#abo4c#o3f#g#f#g#f#g#f#g#f#g#f#d#o2bo3mlbo4c#d#mne8eee8e8mlg#4g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"msf#8e8d#8e8c#8o3bo4c#o3bo4c#o3bo4c#d#eo3abababo4c#d#o3g#ag#ag#abo4c#o3f#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"g#f#g#f#ag#f#e8o2b8o3e8g#g#g#8mng#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8e8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"d#8c#8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3b8a#8b8a#8b8g#g#g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8e8d#8c#8g#g#g#8g#g#g#8g#g#g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o4c#8o3g#8o4c#8o3g#8o4c#8o3b8a#8b8a#8b8o2f#f#f#8f#f#f#8g#8a8f#4a8g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"e4g#8f#8o0b8o1b8o2f#f#f#8f#f#f#8g#8a8f#4a8g#8e4g#8f#8bbb8o1bbb8bbb8bbo2e8f#8g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o1bbb8bbo2e8g#g#f#8d#8o1b8bbb8bbb8bbo2e8f#8g#8eg#mlb4mnbag#f#e8o1b8o2e8o3bbb8bbb8bbo4e8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"f#8g#8o3bbb8bbo4e8g#g#f#8d#8o3b8bbb8bbb8bbo4e8f#8g#8o3eg#mlb4mnbag#f#mlef#g#mnamlg#abo4mnc#mlo3bo4c#d#mnemld#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"ef#mng#ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bmlef#g#mnamlg#abmno4c#mlo3bo4c#d#mnemld#ef#mng#ao3bo4ao3bo4a"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bp16mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"mleo4eo3mnep16mlao4ao3mnap16mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16mleo4eo3mnep16"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"mlao4ao3mnao4go3go4go3go4go3go4go3go4msg8e8c8e8o4mng#o3g#o4g#o3g#o4g#o3g#o4g#o3g#o4msg#8e8o3b8o4e8mng#o3g#o4g#o3g#o4g#"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3g#o4g#o3g#o4msg#8f8c#8f8mna#o3a#o4a#o3a#o4a#o3a#o4a#o3a#o4msa#8g8e8g8b8p16mna#p16ap16g#p16f#p16ep16"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"d#p16c#p16o3bp16a#p16ap16g#p16f#p16ep16d#p16f#mlef#g#mnamlg#abmno4c#o3mlbo4c#d#mnemld#ef#mng#ao3bo4ao3bo4a"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bmlef#g#mnamlg#abmno4c#o3mlb"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o4c#d#mnemld#ef#mng#ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4a"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3bo4ao3bp16mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16mleo4eo3mnep16mlao4ao3mnap16"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16mleo4eo3mnep16mlao4ao3mnao4go3go4go3go4g"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"o3go4go3go4g8e8c8e8g#o3g#o4g#o3g#o4g#o3g#o4g#o3g#o4g#8e8o3b8o4e8g#o3g#o4g#o3g#o4g#o3g#o4g#o3g#o4msg#8mnf8c#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"f8a#o3a#o4a#o3a#o4a#o3a#o4a#o3a#o4a#8g8e8g8b8p16a#p16ap16g#p16f#p16ep16d#p16c#p16o3bp16a#p16"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"ap16g#p16f#p16ep16d#p16fmled#ed#mne8bbb8bbb8bbo4e8f#8g#8o3bbb8bbb8bbo4g#8a8b8p8e8f#8g#8p8o3g#8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"a8b8p8p2o2bco3c#dd#eff#gg#aa#bco4c#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#e"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"d#f#d#e8eo3eo4eo3eo4eo3eo4e8o3bo2bo3bo2bo3bo2bo3b8g#o2g#o3g#o2g#o3g#o2g#o3g8eo2eo3eo2eo3eo2eo3e8eee8"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"e8e8o2bbb8b8b8g#g#g#8g#8g#8eee8e8e8o1b8o2e8o1b8o2g#8e8b8g#8o3e8o2b8o3e8o2b8o3g#8e8b8g#8o4e4"</nowiki>|#FFB100}} + _
    {{Text|<nowiki>"p8eee8e8e8e8e4p8p16ee4p8p16o2ee2"</nowiki>|#FFB100}}


{{Cl|DO}}
{{Cl|LOCATE}} {{Text|12|#F580B1}}, {{Text|28|#F580B1}}
    smplLeft& = {{Cl|PLAY (function)|PLAY}}({{Text|0|#F580B1}})
{{Cl|PRINT}} {{Text|<nowiki>"The William Tell Overture."</nowiki>|#FFB100}}
    timeLeft& = {{Cl|PLAY (function)|PLAY}}({{Text|1|#F580B1}})
{{Cl|PLAY}} MML
    {{Cl|LOCATE}} {{Text|3|#F580B1}}, {{Text|1|#F580B1}}: {{Cl|PRINT}} {{Text|<nowiki>"Samples left to play ="</nowiki>|#FFB100}}; smplLeft&; {{Text|<nowiki>" "</nowiki>|#FFB100}};
 
     {{Cl|LOCATE}} {{Text|4|#F580B1}}, {{Text|1|#F580B1}}: {{Cl|PRINT}} {{Text|<nowiki>"Seconds left to play ="</nowiki>|#FFB100}}; timeLeft&; {{Text|<nowiki>" "</nowiki>|#FFB100}};
{{Cl|WHILE}} {{Cl|PLAY (function)|PLAY}}({{Text|0|#F580B1}}) > {{Text|0|#F580B1}} {{Cl|AND (Boolean)|AND}} {{Cl|_KEYHIT}} <> {{Text|27|#F580B1}}
{{Cl|DO...LOOP|LOOP WHILE}} smplLeft&
     {{Cl|LOCATE}} {{Text|13|#F580B1}}, {{Text|32|#F580B1}}
    {{Cl|PRINT USING}} {{Text|<nowiki>"(### seconds left)"</nowiki>|#FFB100}}; {{Cl|PLAY}}({{Text|0|#F580B1}});
    {{Cl|_LIMIT}} {{Text|30|#F580B1}}
{{Cl|WEND}}


{{Cl|PRINT}}: {{Cl|PRINT}}: {{Cl|PRINT}} {{Text|<nowiki>"And we are done!"</nowiki>|#FFB100}}
{{Cl|END}}
{{Cl|END}}
{{CodeEnd}}
{{CodeEnd}}

Revision as of 05:53, 21 November 2024

The PLAY function returns the number of remaining seconds in the background music queue.


Syntax

remaining# = PLAY(voice&)


Parameters

  • remaining# is the number of seconds left to play in the background music queue.
  • voice& can be any numeric expression. It indicates for which tone voice channel the number of seconds remaining is to be returned. If voice& is not in [0-3], the queue for voice 0 is returned.
  • See also the important version dependent notes in the Availability section.


Description

  • This function may be used to detect, if the background music queue is still playing.
  • When there is nothing left to play, then this function returns zero.


Availability

  • In QB64 and early QB64-PE, this was just implemented as stub function which always returned zero.
  • Since QB64-PE v3.1.0 the function is fully implemented, but unlike QuickBASIC, in QB64-PE this function does not return the number of notes left, but the number of audio samples.
  • Since QB64-PE v3.8.0, if voice& is a number other than zero, then the function will return the amount of time (seconds) left to play.
  • Multi-voice support was introduced in QB64-PE v4.0.0.
  • Since QB64-PE v4.0.0, the function will return the amount of time (seconds) left to play for the tone voice channel specified.


Examples

OPTION _EXPLICIT

CONST MML = "mbv15l16t155o2mnb4p8msbbmnb4p8msbbb8g#8e8g#8b8g#8b8o3e8o2b8g#8e8g#8b8g#8b8o3e8o2mnb4p8msbbmnb4" + _
    "p8msbbmnb4p8msbbmnb4p8msbbb8bbb8b8b8bbb8b8b8bbb8b8b8bbb8b8mlb2b2b8p8p4p4p8mso1bbb8bbb8bbo2e8f#8g#8o1bb" + _
    "b8bbo2e8g#g#f#8d#8o1b8bbb8bbb8bbo2e8f#8g#8eg#mlb4bmsag#f#e8g#8e8o3bbb8bbb8bbo4e8f#8" + _
    "g#8o3bbb8bbo4e8g#g#f#8d#8o3b8bbb8bbb8bbo4e8f#8g#8mleg#b4bag#f#mse8g#8e8o3g#g#g#8g#g#g#8g#g#" + _
    "g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8e8d#8c#8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8" + _
    "o3g#8o4c#8o3b8a#8b8a#8b8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8" + _
    "e8d#8c#8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3b8a#8b8o2bbb8f#f#" + _
    "f#8f#f#f#8g#8a8f#4mna8msg#8mne4msg#8f#8f#8f#8o3f#f#f#8f#f#f#8g#8" + _
    "a8mnf#4msa8g#8mne4msg#8f#8o2bbb8o1bbb8bbb8bbo2mne8f#8g#8o1bbb8bbo2e8g#g#f#8d#8o1b8bbb8bb" + _
    "b8bbo2e8f#8g#8eg#mlb4mnbag#f#e8g#8e8o3bbb8bbb8bbo4e8f#8g#8o3bbb8bbo4e8g#g#f#8d#8o3b8bb" + _
    "b8bbb8bbo4e8f#8g#8mleg#mlb4mnbag#f#mne8g#8e8o3mle56f56g56a56b56o4c56d56mne8eee8e8mlg#4g#8" + _
    "mnf#8e8d#8e8c#8mso3bo4c#o3bo4c#o3bo4c#d#eo3abababo4c#d#o3g#ag#ag#abo4c#o3f#" + _
    "g#f#g#f#g#f#g#f#g#f#d#o2bo3mlbo4c#d#e8d#8e8c#8o3msbo4c#o3bo4c#o3bo4c#d#eo3abababo4c#d#o3g#" + _
    "ag#ag#abo4c#o3f#g#f#g#f#af#emne8p8mlc#4mnc#o2cmso3c#o2co3d#c#o2baag#ec#c#c#c#c#e" + _
    "d#o1cg#g#g#g#g#g#o2c#eg#o3c#c#c#c#c#o2co3c#o2co3d#c#o2baag#ec#c#c#c#c#ed#o1cg#g#g#g#g#mng#" + _
    "o2c#eg#o3msc#ed#c#d#o2cg#g#g#o3g#ec#d#o2cg#g#g#o3g#ec#d#o2bg#g#a#gd#d#g#gg#gg#ag#f#e" + _
    "o1ba#bo2eo1bo2f#o1bo2g#ed#eg#eaf#bo3g#f#ed#f#ec#o2bo3c#o2bo3c#d#ef#g#o2ababo3c#d#ef#o2g#" + _
    "ag#aco3c#d#eo2f#g#f#g#f#g#f#g#f#g#f#d#o1bco2c#d#eo1ba#bo2eo1bo2f#o1bo2g#ed#eg#eaf#b" + _
    "o3g#f#ed#f#ec#o2bo3c#o2bo3c#d#ef#g#o2ababo3c#d#ef#o2g#ag#abo3c#d#eo2f#o3c#o2co3c#d#c#o2af#mne" + _
    "o3mlef#g#abo4c#d#mne8mseee8e8mlg#4g#8msf#8mse8d#8e8c#8o3bo4c#o3bo4c#o3bo4c#d#eo3a" + _
    "bababo4c#d#o3g#ag#ag#abo4c#o3f#g#f#g#f#g#f#g#f#g#f#d#o2bo3mlbo4c#d#mne8eee8e8mlg#4g#8" + _
    "msf#8e8d#8e8c#8o3bo4c#o3bo4c#o3bo4c#d#eo3abababo4c#d#o3g#ag#ag#abo4c#o3f#" + _
    "g#f#g#f#ag#f#e8o2b8o3e8g#g#g#8mng#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8e8" + _
    "d#8c#8g#g#g#8g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3b8a#8b8a#8b8g#g#g#8" + _
    "g#g#g#8g#g#g#8o4c#8o3g#8o4c#8o3g#8o4c#8o3g#8f#8e8d#8c#8g#g#g#8g#g#g#8g#g#g#8" + _
    "o4c#8o3g#8o4c#8o3g#8o4c#8o3b8a#8b8a#8b8o2f#f#f#8f#f#f#8g#8a8f#4a8g#8" + _
    "e4g#8f#8o0b8o1b8o2f#f#f#8f#f#f#8g#8a8f#4a8g#8e4g#8f#8bbb8o1bbb8bbb8bbo2e8f#8g#8" + _
    "o1bbb8bbo2e8g#g#f#8d#8o1b8bbb8bbb8bbo2e8f#8g#8eg#mlb4mnbag#f#e8o1b8o2e8o3bbb8bbb8bbo4e8" + _
    "f#8g#8o3bbb8bbo4e8g#g#f#8d#8o3b8bbb8bbb8bbo4e8f#8g#8o3eg#mlb4mnbag#f#mlef#g#mnamlg#abo4mnc#mlo3bo4c#d#mnemld#" + _
    "ef#mng#ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bmlef#g#mnamlg#abmno4c#mlo3bo4c#d#mnemld#ef#mng#ao3bo4ao3bo4a" + _
    "o3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bp16mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16" + _
    "mleo4eo3mnep16mlao4ao3mnap16mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16mleo4eo3mnep16" + _
    "mlao4ao3mnao4go3go4go3go4go3go4go3go4msg8e8c8e8o4mng#o3g#o4g#o3g#o4g#o3g#o4g#o3g#o4msg#8e8o3b8o4e8mng#o3g#o4g#o3g#o4g#" + _
    "o3g#o4g#o3g#o4msg#8f8c#8f8mna#o3a#o4a#o3a#o4a#o3a#o4a#o3a#o4msa#8g8e8g8b8p16mna#p16ap16g#p16f#p16ep16" + _
    "d#p16c#p16o3bp16a#p16ap16g#p16f#p16ep16d#p16f#mlef#g#mnamlg#abmno4c#o3mlbo4c#d#mnemld#ef#mng#ao3bo4ao3bo4a" + _
    "o3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bmlef#g#mnamlg#abmno4c#o3mlb" + _
    "o4c#d#mnemld#ef#mng#ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4ao3bo4a" + _
    "o3bo4ao3bp16mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16mleo4eo3mnep16mlao4ao3mnap16" + _
    "mlg#o4g#o3mng#p16mld#o4d#o3mnd#p16mleo4eo3mnep16mlao4ao3mnao4go3go4go3go4g" + _
    "o3go4go3go4g8e8c8e8g#o3g#o4g#o3g#o4g#o3g#o4g#o3g#o4g#8e8o3b8o4e8g#o3g#o4g#o3g#o4g#o3g#o4g#o3g#o4msg#8mnf8c#8" + _
    "f8a#o3a#o4a#o3a#o4a#o3a#o4a#o3a#o4a#8g8e8g8b8p16a#p16ap16g#p16f#p16ep16d#p16c#p16o3bp16a#p16" + _
    "ap16g#p16f#p16ep16d#p16fmled#ed#mne8bbb8bbb8bbo4e8f#8g#8o3bbb8bbb8bbo4g#8a8b8p8e8f#8g#8p8o3g#8" + _
    "a8b8p8p2o2bco3c#dd#eff#gg#aa#bco4c#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#ed#f#d#e" + _
    "d#f#d#e8eo3eo4eo3eo4eo3eo4e8o3bo2bo3bo2bo3bo2bo3b8g#o2g#o3g#o2g#o3g#o2g#o3g8eo2eo3eo2eo3eo2eo3e8eee8" + _
    "e8e8o2bbb8b8b8g#g#g#8g#8g#8eee8e8e8o1b8o2e8o1b8o2g#8e8b8g#8o3e8o2b8o3e8o2b8o3g#8e8b8g#8o4e4" + _
    "p8eee8e8e8e8e4p8p16ee4p8p16o2ee2"

LOCATE 12, 28
PRINT "The William Tell Overture."
PLAY MML

WHILE PLAY(0) > 0 AND _KEYHIT <> 27
    LOCATE 13, 32
    PRINT USING "(### seconds left)"; PLAY(0);
    _LIMIT 30
WEND

END


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link