packages feed

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

MODULE M3D03;

	(********************************************************)
	(*							*)
	(*		Test of module Music3.			*)
	(*							*)
	(*	     Fernando Sor: Estudio VII from		*)
	(*	the Segovia edition of "Twenty Studies for	*)
	(*			the Guitar"			*)
	(*							*)
	(*  Programmer:		P. Moylan			*)
	(*  Last edited:	21 March 1995			*)
	(*  Status:		OK				*)
	(*							*)
	(********************************************************)

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

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

PROCEDURE EncodeMusic;

    (* Plays a piece of music. *)

    VAR repeat: [1..2];

    BEGIN	(* EncodeMusic *)

	SetInstrument (3, 40000, 1000, 500);

	(************************)
	(* F. Sor, Estudio VII	*)
	(************************)

	Voice2("d");  Voice3("d");

	FOR repeat := 1 TO 2 DO

	    Voice1 ("CCC  *3/2C/3CDE  FGAGFE *EDR");
	    Voice2 ("AABb *3/2A/3ABbC DEFEDC *CBbR");
	    Voice3 ("RFE  *3/2FR      *2R    R/3");

	    Voice1 ("DDD    D/3DCBCEF GEBbGECBbGC");
	    Voice2 ("BbBbBb BbRR      *3R");
	    Voice3 ("RGF    E RR      RRE");

	    Voice1 ("*3BbAR /3CDEFAG/2GF*2EF Gd*8/9C/8R*8C/8R*9*3CC");
	    Voice2 ("R      /9ABbGACBbAGA        *3Bb/3REFGABb");
	    Voice3 ("*2F/2R *3R                  /3R/3RCDEFG");

	    Voice1 ("/3CDEFAG/2GF*2EF Gd*8/9C/8R*8C/8R*9*3CC /3CDEFGABbCA");
	    Voice2 ("ABbGACBbAGA          *3Bb/3REFGABb          ABbCDEFGAF");
	    Voice3 ("*3/2FR*2RR           R/3RCDEFG              *3FRR");

	    Voice1 ("*3GFE           FED         CCR");
	    Voice2 ("EdGuEDdG#uDCAC *3DCB        /3CEdGCdEG*3R");
	    Voice3 ("*3R            /9RFARGCRGBb *3RRdC");

	END (*FOR*);

	(* Second section. *)

	FOR repeat := 1 TO 2 DO

	    Voice1 ("/3uGE*8/9C/8R*8C/8R*8C/8R*8C/8R*8C/8R*8C/8R*8C/8R*9"
		+ " CDEFAGFGA BbGE*8/9C/8R*8C/8R*8C/8R*8C/8R*8C/8R*8C/8R*9");
	    Voice2 ("RRBb ARR RRBb");
	    Voice3 ("RRE  FRR GGE");

	    Voice1 ("CBCDEFF#GG#" +
		" Ad*8/9D/8R*8D/8R*8D/8R*8D/8R*8D/8R*9D*8/9G/8R*8G/8R*9"
		+ " Gd*8/9C/8R*8C/8R*8C/8R*8C/8R*8C/8R*8C/8R*8F/8R*8F/8R*9");
	    Voice2 ("ARR RC/2BbR *4Bb/2A");
	    Voice3 ("FRR RF#/2GR *2REF");

	    Voice1 ("FDG*3FE      /3FCBCDEFGG# *3A/2BbR*2B");
	    Voice2 ("/3RRBbRACRGC *3ARR        /3RCEb*3/2DR*2/3RDF*3");
	    Voice3 ("dBb/3CRRCRR  *3FRR        F/2BbR*2G");

	    Voice1 ("/2CR*2C#/2DR      *4dF/2E         *2F/2Rd");
	    Voice2 ("/2ER*2/3REG*3/2FR *4dA/2R         *2A/2R");
	    Voice3 ("/2CR*2A/2BbR      *2/3dCFACAFCuGBb *3dFuFR");

	END (*FOR*);

    END EncodeMusic;

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

BEGIN
    SetDuration (324);
    EncodeMusic;
    PlayTheMusic;
END M3D03.