language-Modula2-0.1: examples/Modula-2_Libraries/PMOS/sources/demo/m3d06.mod
MODULE M3D06;
(********************************************************)
(* *)
(* Test of module Music3B. *)
(* *)
(* Fernando Sor, Estudio XVII *)
(* of the Segovia edition *)
(* *)
(* Programmer: P. Moylan *)
(* Last edited: 21 March 1995 *)
(* Status: Incomplete *)
(* *)
(* I'm not yet sure I'll have the patience *)
(* to finish this. *)
(* *)
(********************************************************)
FROM Music3 IMPORT
(* proc *) Voice1, Voice2, Voice3, SetDuration, SetInstrument,
SetWaveform, SetEnvelope, EnableVoice, PlayTheMusic;
(************************************************************************)
PROCEDURE EncodeMusic;
(* Plays a piece of music. *)
CONST BaseDuration = 130;
BEGIN (* EncodeMusic *)
SetDuration (BaseDuration);
SetInstrument (1, 65535, 2000, 0);
SetEnvelope (2, 65535, 3000, 0);
SetWaveform (1, 1);
SetWaveform (2, 1);
SetWaveform (3, 1);
EnableVoice (1, TRUE);
EnableVoice (2, TRUE);
EnableVoice (3, TRUE);
Voice1 ("d*3"); Voice2("d"); Voice3("dd*4*3");
Voice1 ("R B E E E B B B ");
Voice2 ("REGREGREGREG REGREGREGREG");
Voice3 ("E E ");
Voice1 ("R B E G *2G F# /2 R F# F# F# ");
Voice2 ("REGREGREGREG REACdEAREACdEA REAREAREAREA");
Voice3 ("E E E ");
Voice1 ("F# dB B dC uR F# G F# *2F# E /2");
Voice2 ("RD#ARD#ARD#ARD#A RD#ARD#ARD#ARD#A REABdEAREGBdEG");
Voice3 ("E uB dE ");
Voice1 ("R G G G G F# *2F#/2 R A A A ");
Voice2 ("REuBRdEuBRdEuBRdEuC# RADRADRADRAD RCDRCDRCDRCD");
Voice3 ("E *3/4uD /3D *3F# /3F# ");
Voice1 ("A G*2G/2 R B B B B A*2A /2");
Voice2 ("RBDRBDRBDRBD RBDRBDRBDRBD RCERCERCERCE");
Voice3 ("*3G /3G *4dG *3/4C /3C ");
Voice1 ("R G G G G F#*2F# /2 R F# F# F# ");
Voice2 ("RdBbuERdBbuERdBbuERdBbuE RdADRADRADRAD RADRADRADRAD");
Voice3 ("*4C# *3/4D /3D *2C R ");
Voice1 ("F# G *2G/2 R A A A A# B *2B/2 ");
Voice2 ("RdGuDRdGuDRdGuDRdGuD RdDuCRdDuCRdDuCRdDuCRdDuBRdDuBRdDuBRdDG");
Voice3 ("*3/2B /3B *4dF# /4*3G /3G ");
(* Some faults still exist in the next two lines. *)
Voice1 ("R G G G R A R C R dF# F# F# ");
Voice2 ("RGBRGBRGBRGB RCERCERCERCE dRACRACRACRAC");
Voice3 ("*3E /3uE *2C A D /2R D# ");
Voice1 ("F# G *2G /2 R F F F F E R A ");
Voice2 ("RACRGBRGBRGB RG#uDdRG#uDdRG#uDdRG#uD RADRACRCERCE");
Voice3 ("*3E /3E *4B /2C A ");
(* Page 2. *)
END EncodeMusic;
(************************************************************************)
BEGIN
EncodeMusic;
PlayTheMusic;
END M3D06.