On 02/08/2014 02:55 AM, Randall Morgan wrote: > I got 5F here. Looking forward to a possible 30F next week. > > True the old BASIC machines used the internal speakers, and those are hard > to find. But almost every *nix box has a sound system. And we no-longer > need to count clock cycles, we can use the the built-in timing routines or > delay routines. The Sound and Play function where blocking functions. No > need for anything fancy. But I do think adding a simple Play freq., > duration function would be a great addition to the language and would make > it more complete. For anything more elaborate there is Sdl and such. > > > > > On Fri, Feb 7, 2014 at 10:07 PM, Bruce <bbr...@paddys-hill.net> wrote: > >> On Fri, 2014-02-07 at 18:15 -0800, Randall Morgan wrote: >>> It seems like playing a simple tone is something that should be a >> primitive >>> in the Gambas Language... A simple Play(frequency, duration) type of >>> function as was found in many of the early BASIC languages. Am I the only >>> one who think like this? >>> >> Ah yes! But those magical sounds were made by dividing the clock signal >> and sending the resultant wave directly out to the onboard speaker port. >> I dont think any of the boxes here have a onboard speaker any more? >> >> "Leisure Suit Larry" anyone? >> >> cheers >> Bruce >
From Wikipedia: http://en.wikipedia.org/wiki/GW-BASIC#Syntax GW-BASIC allowed use ofjoystick <http://en.wikipedia.org/wiki/Joystick>andlight pen <http://en.wikipedia.org/wiki/Light_pen>input devices. GW-BASIC can read from and write to files andCOM ports <http://en.wikipedia.org/wiki/Serial_port>; it can also do event trapping for ports. Since thecassette <http://en.wikipedia.org/wiki/Compact_cassette>port interface of the original IBM PC was never implemented on compatibles, cassette operations are not supported. GW-BASIC can play simple music using the|PLAY|statement, needing a string of notes represented in amusic macro language <http://en.wikipedia.org/wiki/Music_macro_language>(e.g.|PLAY "edcdeee2dfedc4"|). Morelow-level <http://en.wikipedia.org/wiki/Low-level>control is possible with the|SOUND|statement, which takes the arguments of afrequency <http://en.wikipedia.org/wiki/Frequency>inhertz <http://en.wikipedia.org/wiki/Hertz>and a length in clock ticks for the standard internalPC speaker <http://en.wikipedia.org/wiki/PC_speaker>in IBM machines. Consequently sound is limited to single channel beeps and whistles as befits a 'business' machine. Home-based PCs such as theTandy 1000 <http://en.wikipedia.org/wiki/Tandy_1000>allowed up to three channels of sound for the|SOUND|and|PLAY|commands.^[5] <http://en.wikipedia.org/wiki/GW-BASIC#cite_note-Guide-5> The first time I ever made music on a computer was using GW-BASIC, using PLAY. Later I figured out how to do loops and pass those values to SOUND. I even made a delayed vibrato by slightly modifying the frequency with a sine wave. Experiences like that and similar keep me programming today; it's awesome. I wonder if OpenAL has a tone generator. You could do perpendicular sine waves for source positioning (since it's 7.1 and all that). I'm looking forward to switching to it (from sdl.sound playback features) soon so hopefully it will kick ass. If basic sound generation were to be implemented in GAMBAS, it would have to generate a tone that relied on a high frame rate to sound right (frequency) and optionally let it play in the background until stopped (duration). You could turn the channel on and off, but would leave it on when making sounds. I would keep it as simple and fast as possible, so frequencies would be heard exactly as set with an extremely high frame rate (2K - 24K FPS if only setting the frequency and duration?). One could use Timer to set a tempo and do some programmatic beats and frequency-switching. -- Kevin Fishburne Eight Virtues www: http://sales.eightvirtues.com e-mail: sa...@eightvirtues.com phone: (770) 853-6271 ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user