;;; -*- Mode:COMMON-LISP; Package:DEMO; Fonts:(MEDFNT HL12B HL12BI MEDFNT MEDFNB); Base:10 -*-

;;; Copyright (C) 1986, Texas Instruments Incorporated. All rights reserved.

;;;                           RESTRICTED RIGHTS LEGEND

;;;Use, duplication, or disclosure by the Government is subject to
;;;restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
;;;Technical Data and Computer Software clause at 52.227-7013.
;;;
;;;                     TEXAS INSTRUMENTS INCORPORATED.
;;;                              P.O. BOX 2909
;;;                           AUSTIN, TEXAS 78769
;;;                                 MS 2151
;;;
;;; Copyright (C) 1987 Texas Instruments Incorporated. All rights reserved.

4(DEFVAR*
   4*MUSIC-DEMO-ALIST**
   '(
     ("Stair3way to Heaven by Led Zeppelin*" :value (user:pmuse 'stairs :key-adj -47 :speed 90 :no-articulation t
		      :pathname "SYS:PUBLIC.MUSIC-DEMO;stairs.muse" :select-voices '(0 1 2)))
;     ("Stairs-Variation-1" :value (user:pmuse 'stairs1 :key-adj -47 :speed 90 :no-articulation t
;		       :pathname "SYS:PUBLIC.MUSIC-DEMO;stairs.muse" :select-voices '(1 3 5)))
;     ("Stairs-Variation-2" :value (user:pmuse 'stairs2 :key-adj -47 :speed 90 :no-articulation t
;		       :pathname "SYS:PUBLIC.MUSIC-DEMO;stairs.muse" :select-voices '(0 2 4)))
     ("3Symphony *883, 1st Movement by Haydn*" :value (user:pmuse 'haydn88a :key-adj -10 :speed 150 :no-articulation t
			:pathname "SYS:PUBLIC.MUSIC-DEMO;haydn88a.muse"))
     ("3Symphony *883, 2nd Movement by Haydn*" :value (user:pmuse 'haydn88b :key-adj -10 :speed 150 :no-articulation t
			:pathname "SYS:PUBLIC.MUSIC-DEMO;haydn88b.muse"))
     ("3Symphony *883, Menuetto by Haydn*" :value (user:pmuse 'haydn88c :key-adj -10 :speed 150 :no-articulation t
			:pathname "SYS:PUBLIC.MUSIC-DEMO;haydn88c.muse"))
     ("Bour3r*ee3 in E-Minor by Bach*" :value (user:pmuse 'bouree :key-adj -47 :speed 350 :no-articulation t
		      :pathname "SYS:PUBLIC.MUSIC-DEMO;bouree.muse"))
     ("Docs1" :value (user:pmuse 'docs1 :key-adj -47 :speed 300 :no-articulation t
		     :pathname "SYS:PUBLIC.MUSIC-DEMO;docs.muse" :select-voices '(0 2 4)))
;     ("Docs2" :value (user:pmuse 'docs2 :key-adj -47 :speed 300 :no-articulation t
;		      :pathname "SYS:PUBLIC.MUSIC-DEMO;docs.muse" :select-voices '(0 2 4)))
     ("3Little Fugue in G Minor by Bach*" :value (user:pmuse 'bach-little :key-adj -47 :speed 20 :no-articulation t
			    :pathname "SYS:PUBLIC.MUSIC-DEMO;bach-little.muse"))
     ("Melon1" :value (user:pmuse 'melon1 :key-adj -60 :speed 300 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;melon.muse" :select-voices '(0 1 2)))
     ("Melon2" :value (user:pmuse 'melon2 :key-adj -60 :speed 300 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;melon.muse" :select-voices '(3 4 5)))
     ("Prelude3 #*13 by Bach*" :value (user:pmuse 'bach-prelude1 :key-adj -47 :speed 300 :no-articulation t
			      :pathname "SYS:PUBLIC.MUSIC-DEMO;bach-prelude1.muse"))
     ("Prelude3 #6 by Bach*" :value (user:pmuse 'bach-prelude6 :key-adj -47 :speed 190 :no-articulation t
			      :pathname "SYS:PUBLIC.MUSIC-DEMO;bach-prelude6.muse"))
     ("3Dear *Prudence3 by the Beatles*" :value (user:pmuse 'prudence :key-adj 0 :speed 190 :no-articulation t
			 :pathname "SYS:PUBLIC.MUSIC-DEMO;prudence.muse."))
     ("Hey-Jude" :value (user:pmuse 'jude :key-adj -47 :speed 28 :no-articulation t
		     :pathname "SYS:PUBLIC.MUSIC-DEMO;jude.muse"))
     ("Rulebr" :value (user:pmuse 'rulebr :key-adj -47 :speed 200 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;rulebr.muse"))
     ("SC282A" :value (user:pmuse 'sc282a :key-adj -47 :speed 60 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;sc282.muse"  :select-voices '(0 2 4)))
     ("SC282B" :value (user:pmuse 'sc282b :key-adj -47 :speed 60 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;sc282.muse"  :select-voices '(1 2 5)))
     ("Sheba" :value (user:pmuse 'sheba :key-adj -47 :speed 180 :no-articulation t
		      :pathname "SYS:PUBLIC.MUSIC-DEMO;sheba.muse" :select-voices 't))
     ("Sheila3 by Tommy Rowe*" :value (user:pmuse 'sheila :key-adj -47 :speed 220 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;sheila.muse"))
     ("S3t *J3ohn Passion #*7" :value (user:pmuse 'sj7 :key-adj 0 :speed 100 :no-articulation t
		    :pathname "SYS:PUBLIC.MUSIC-DEMO;sj7.muse"))
     ("3Sunshine *Super3man by Donovan*" :value (user:pmuse 'super :key-adj -47 :speed 120 :no-articulation t
		      :pathname "SYS:PUBLIC.MUSIC-DEMO;super.muse" :select-voices 't))
     ("Triste" :value (user:pmuse 'triste :key-adj -47 :speed 120 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;triste.muse" :select-voices '(0 2 4)))
     ("3Bourree in E Minor by Jethro *Tull" :value (user:pmuse 'tull :key-adj -20 :speed 50 :no-articulation t
		     :pathname "SYS:PUBLIC.MUSIC-DEMO;tull.muse" :select-voices '(0 2 4)))
     ("Turca" :value (user:pmuse 'turca :key-adj -47 :speed 20 :no-articulation t
		      :pathname "SYS:PUBLIC.MUSIC-DEMO;turca.muse" :select-voices 't))
     ("Uryfug" :value (user:pmuse 'uryfug :key-adj -47 :speed 200 :no-articulation t
		       :pathname "SYS:PUBLIC.MUSIC-DEMO;uryfug.muse" :select-voices 't))
     ("Voy" :value (user:pmuse 'voy :key-adj -47 :speed 50 :no-articulation t
		    :pathname "SYS:PUBLIC.MUSIC-DEMO;voy.muse" :select-voices 't))
     ("Yesterday3 by the Beatles*" :value (user:pmuse 'yesterday :key-adj -47 :speed 10 :no-articulation t
			  :pathname "SYS:PUBLIC.MUSIC-DEMO;yesterday.muse" :select-voices 't))
     3(*"3- QUIT -*" :value ())
     ))


4(DEFUN MUSIC-DEMO (&optional (alist *music-demo-alist*))*
  "Provide the user with a menu of music demos to select from."
  (setf alist (sortcar (copy-list alist) #'string-lessp))
  (loop as choice = (w:menu-choose alist
				   :near-mode '(:point 750 250)
				   :item-alignment :center
				   :label "Menu of Songs")
	until (or (null choice)
		  (and (stringp (car choice))
		       (string-equal (car choice) "Quit")))
	do
	(condition-case ()
	    (eval choice)
	  ((sys:abort error) (ignore)))))
