'=========================================================================== ' Subject: PLAYING MUSIC (JURASSIC PARK) Date: 11-30-95 (08:27) ' Author: Jarno Peschier Code: PB ' Origin: alt.lang.basic Packet: SOUND.ABC '=========================================================================== '> I'm looking for music written in the MS basic PLAY language. Does anyone '>know of an FTP site where I could find songs for basic? Also If you have '>music for Basic maybe you could E-mail them to me. 'Making PLAY-music in Basic isn't that difficult (if you can read sheet 'music). Just take a piece of sheet music and translate it almost 'litterally into PLAY commands. Easy... 'I've written a few pieces of PLAY music myself (even own adaptions of 'known songs, by just trying to play it on my electronic keyboard, then 'translating it into PLAY statements). 'I'll include an example below in PB 3.0c. I hope you don't mind all 'text and comments in the source are in Dutch. If you want, I could 'translate. And look how easy you can get *real* background music with 'PLAY statements for the actual music in Basic! This is PB, but I've 'even used the same principle in GWBasic before I knew about Basic 'compilers. %No = 0 %Yes = NOT %No DIM Muziek AS SHARED INTEGER 'Achtergrondmuziek aan of uit? DIM VolgendeMaat AS SHARED INTEGER 'Volgende maat voor in de buffer ON PLAY(8) GOSUB MuziekBufferBijvullen 'Bijvullen als nog 8 noten in buffer KEY 15, CHR$(&H08,50,&H77) 'Alt+M = hotkey voor muziek aan/uit ON KEY(15) GOSUB MuziekHotkey StartMuziek '=== Zet hier je eigen programma CLS PRINT PRINT PRINT"Dit is een dummy programma in een loop." PRINT PRINT"Op de achtergrond loopt nu een muziekje." PRINT"Zet de muziek aan/uit met Alt+M." PRINT PRINT"Gebruik hiervan is uit de source hopelijk wel duidelijk." PRINT"Het enige waarop je letten moet is dat je in de SUB" PRINT"SpeelVolgendeMaat de muziek in blokjes opslaat in de" PRINT"SELECT-CASE in stukjes die allemaal ongeveer even lang zijn!" PRINT"Neem bijvoorbeeld, zoals de naam van de SUB aangeeft, echt" PRINT"maten van de bladmuziek." PRINT PRINT"Druk op een toets om te stoppen." DO LOCATE 1,1 PRINT TIME$ LOOP WHILE INKEY$="" CLS PRINT"Dit is werkelijk alles..." '=== Einde eigen programma StopMuziek END 'ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ' Routines voor de achtergrondmuziek 'ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ MuziekHotKey: KEY(15) STOP 'Vang maar ‚‚m Alt+M tegelijk Muziek = NOT Muziek 'Toggle muziek flag IF Muziek THEN StartMuziek 'Zet muziek (weer) aan als nodig ELSE StopMuziek 'Zet muziek (weer) uit als nodig KEY(15) ON 'En kijk weer naar Alt+M END IF RETURN MuziekBufferBijvullen: SpeelVolgendeMaat 'Volgende maat in buffer zetten RETURN SUB StartMuziek INLINE Muziek = %Yes 'Muziek nu aan PLAY"MBT116L8O2MN" 'Instellingen (MB, tempo, octaaf) PLAY"O1MSE16P.E16P.E16P.E16P.O2MN" 'Intro spelen VolgendeMaat = 1 'De volgende maat is de eerst SpeelVolgendeMaat 'Zet die maar in de buffer PLAY ON 'Muziek loopt (bekijk bufferlengte) KEY(15) ON 'Bekijk Alt+M ook natuurlijk END SUB SUB SpeelVolgendeMaat INLINE PLAY"MB" 'De maat moet in de achtergrond! SELECT CASE VolgendeMaat 'Hier zet je de eigenlijke muziek CASE 1: PLAY"EF4G#A4B4 >CCC16 3 THEN VolgendeMaat = 1 'En begin muziek opnieuw END SUB SUB StopMuziek INLINE PLAY OFF 'Kijk niet meer naar muziekbuffer KEY(15) OFF 'Kijk niet meer naar Alt+M SOUND 0,0 'Stop muziek in de buffer direct END SUB 'And here is another example of PLAY music; my own adaption of the 'Jurassic Park movie theme. It's just the data you should play with 'PLAY. And yes, it's cut up in 20 chunks because this was part of a 'GWBasic program that had background music that you could turn on/off 'with a hotkey. DATA 20 DATA"mlt110o2l8cl4cl8cl4cl8cc4." DATA"cl4cl8cl4cl8cc4mndmld4.mnfmlf2.ecd4.ecd2.gcf4.mnemle4.mndd2.mlcl4cl8cl4cl8c" DATA"c4.cl4cl8","cl4cl8cc4mndmld4.." DATA"mnfmlf2.ecd4.ecd2.gcf4.","mnemle4.mndmld4.mncc4mlcl2mn" DATA"c.mll8cl2mnc.mll8cc4.mndml","d4.mnfmlf2.ecd4.ecd2.gc" DATA"f4.mnemle4.mndmld2.ecd4.ecd2.t105gcf4.mnt100emlt97e4.mn" DATA"t95dmlt92d4.mnt90ct87c4mlt100>c<","b>t110l4cl8cl4cl8cc4.cl4c<","gf>l8cl4cl8ccfef2.ccfed2d4.mncmsc8p4.p2p2.","p1p1" 'Happy music! ' Jarno Peschier, jpeschie@cs.ruu.nl, 2:2802/245.1@Fido ' 162:100/100.1@Agora, 74:3108/102.1@QuaZie, 27:2331/214.1@SigNet