packages feed

language-Modula2-0.1: examples/Modula-2_Libraries/PMOS/sources/demo/m3d02.mod

MODULE M3D02;

	(********************************************************)
	(*							*)
	(*		Test of module Music3.			*)
	(*							*)
	(*	     J.S. Bach: Minuet from the			*)
	(*	 "Notenbuch vor Anna Magdalena Bach"		*)
	(*							*)
	(*  Programmer:		P. Moylan			*)
	(*  Last edited:	21 March 1995			*)
	(*  Status:		OK				*)
	(*							*)
	(********************************************************)

FROM Music3 IMPORT
    (* proc *)	Voice1, Voice2, SetDuration, PlayTheMusic, SetInstrument,
		SetEnvelope, SetWaveform;

(************************************************************************)

PROCEDURE EncodeMusic;

    (* Plays a piece of music. *)

    BEGIN	(* EncodeMusic *)

	(************************)
	(* J.S. Bach, Minuet	*)
	(************************)

	SetWaveform (1, 2);
	SetEnvelope (1, 20000, 2000, 0);
	SetWaveform (2, 1);
	SetEnvelope (2, 10000, 40000, 50000);

	Voice1 ("u");
	Voice1 ("D/dGABC*DdGG uE/CDEF#*GdGG");
	Voice1 ("C/DCBA*B/CBAG *F#/GABG*6A/3");
	Voice1 ("D/dGABC*DdGG uE/CDEF#*GdGG");
	Voice1 ("C/DCBA*B/CBAG *A/BAGF#*6G/3u");

	Voice2 ("d");
	Voice2 ("*G/A*3B CB");
	Voice2 ("AG /3uDd*2G/2uD/DCBA");
	Voice2 ("*4B/2AGBG *3C/3B/CBAG");
	Voice2 ("*4A/2F#*2G/2B C*2D/2dGuDdG");

	(* Repeat of the first part. *)

	Voice1 ("D/dGABC*DdGG uE/CDEF#*GdGG");
	Voice1 ("C/DCBA*B/CBAG *F#/GABG*6A/3");
	Voice1 ("D/dGABC*DdGG uE/CDEF#*GdGG");
	Voice1 ("C/DCBA*B/CBAG *A/BAGF#*6G/3u");

	Voice2 ("*G/A*3B CB");
	Voice2 ("AG /3uDd*2G/2uD/DCBA");
	Voice2 ("*4B/2AGBG *3C/3B/CBAG");
	Voice2 ("*4A/2F#*2G/2B C*2D/2dGuDdG");

	(* Page 2. *)

	Voice1 ("B/GABG*A/dDEF#D *G/EF#GD*C#/BC#*A");
	Voice1 ("/ABC#DEF#*GF#E F#dAC#*3D/3");
	Voice1 ("D/dGF#*GuE/dGF#*G uDCB/AGF#G*A");
	Voice1 ("/dDEF#GAB*CBA /BD*dGF#*3G/3u");

	Voice2 ("uGDGF#AdD EGEAdAuA");
	Voice2 ("dAuAdABDC# DdF#ADDC");
	Voice2 ("*2B/2B*2C/2C BAGuDRRd");
	Voice2 ("RRF#EGF# GBDdGuDdG");

	(* Repeat of the second part. *)

	Voice1 ("B/GABG*A/dDEF#D *G/EF#GD*C#/BC#*A");
	Voice1 ("/ABC#DEF#*GF#E F#dAC#*3D/3");
	Voice1 ("D/dGF#*GuE/dGF#*G uDCB/AGF#G*A");
	Voice1 ("/dDEF#GAB*CBA /BD*dGF#*3G/3u");

	Voice2 ("uGDGF#AdD EGEAdAuA");
	Voice2 ("dAuAdABDC# DdF#ADDC");
	Voice2 ("*2B/2B*2C/2C BAGuDRRd");
	Voice2 ("RRF#EGF# GBDdGuDdG");

    END EncodeMusic;

(************************************************************************)

BEGIN
    SetDuration (280);
    EncodeMusic;
    PlayTheMusic;
END M3D02.