%%HP: T(3)A(D)F(.);
DIR
  INFO
  \<< STD
    WHILE CLLCD
" MUSIK-INFORMATIONEN "
INF1 1. CHOOSE
    REPEAT \->STR CLLCD
1. DISP 0. WAIT DROP
    END
  \>>
  GT 440.
  GTA
  \<< "    Grundton
"
    IF 'GT' VTYPE -1.
==
    THEN
"    GT fehlt....

    Wird angelegt!"
+ 4000. .1 BEEP 440.
'GT' STO
    ELSE "    GT = "
GT \->STR + " Hz" + +
    END CLLCD 2. DISP
2. WAIT
  \>>
  ELISE
  \<<
    IF 'GT' VTYPE -1.
==
    THEN 440. 'GT'
STO 1000. .1 BEEP
2000. .15 BEEP
"Variable
   GT = 440 Hz
wurde angelegt.
Bitte nochmals
starten!"
MSGBOX
    ELSE CLLCD
"'F\252r Elise' von
 Ludwig van Beethoven
 Tonart: a-Moll
 3/4-Takt, Poco moto
  Achtelnote = 0.15 s
  Beginn mit Note E2
 f\252r HP49G 08.01.2002"
1. DISP .15 E2 DS2 E2
DS2 E2 H1 D2 C2 2. *
A1 2. / P C1 E1 A1 2.
* H1 2. / P E1 GS1 H1
2. * C2 2. / P E1 E2
DS2 E2 DS2 E2 H1 D2
C2 2. * A1 2. / P C1
E1 A1 2. * H1 2. / P
E1 C2 H1 2. * A1 P 2.
/ E2 DS2 E2 DS2 E2 H1
D2 C2 2. * A1 2. / P
C1 E1 A1 2. * H1 2. /
P E1 GS1 H1 2. * C2
2. / P E1 E2 DS2 E2
DS2 E2 H1 D2 C2 2. *
A1 2. / P C1 E1 A1 2.
* H1 2. / P E1 C2 H1
2. * A1 2. / P H1 C2
D2 2. * E2 2. / P G1
F2 E2 2. * D2 2. / P
F1 E2 D2 2. * C2 2. /
P E1 D2 C2 2. * H1 2.
/ E1 E2 E2 E3 E1 E2
3. * P 3. / DS2 E2 P
P DS2 E2 DS2 E2 DS2
E2 H1 D2 C2 2. * A1
2. / P C1 E1 A1 2. *
H1 2. / P E1 GS1 H1
2. * C2 2. / P E1 E2
DS2 E2 DS2 E2 H1 D2
C2 2. * A1 2. / P C1
E1 A1 2. * H1 2. / P
E1 C2 H1 2. * A1 2. /
P H1 C2 D2 2. * E2 2.
/ P G1 F2 E2 2. * D2
2. / P F1 E2 D2 2. *
C2 2. / P E1 D2 C2 2.
* H1 2. / E1 E2 E2 E3
E1 E2 3. * P 3. / DS2
E2 P P DS2 E2 DS2 E2
DS2 E2 H1 D2 C2 2. *
A1 2. / P C1 E1 A1 2.
* H1 2. / P E1 GS1 H1
2. * C2 2. / P E1 E2
DS2 E2 DS2 E2 H1 D2
C2 2. * A1 2. / P C1
E1 A1 2. * H1 2. / P
E1 C2 H1 2. * A1 2. /
P C2 C2 C2 2. * C2 P
2. / 1.5 * F2 3. / E2
4. * E2 D2 2. / 1.5 *
B2 3. / A2 2. * A2 G2
F2 E2 D2 C2 2. * B1
2. / A1 B1 2. / A1 G1
A1 B1 4. * C2 P 2. /
D2 DS2 3. * E2 3. /
E2 F2 A1 2. * C2 P 2.
/ 1.5 * D2 3. / H1 C2
G2 G1 G2 A1 G2 H1 G2
C2 G2 D2 G2 E2 G2 C3
H2 A2 G2 F2 E2 D2 G2
F2 D2 C2 G2 G1 G2 A1
G2 H1 G2 C2 G2 D2 G2
E2 G2 C3 H2 A2 G2 F2
E2 D2 G2 F2 D2 E2 F2
E2 DS2 E2 H1 E2 DS2
E2 H1 E2 DS2 6. * E2
3. / H1 E2 DS2 3. *
E2 3. / H1 E2 DS2 2.
* E2 2. / E2 DS2 E2
DS2 E2 H1 D2 C2 2. *
A1 2. / P C1 E1 A1 2.
* H1 2. / P E1 GS1 H1
2. * C2 2. / P E1 E2
DS2 E2 DS2 E2 H1 D2
C2 2. * A1 2. / P C1
E1 A1 2. * H1 2. / P
E1 C2 H1 2. * A1 P 2.
/ E2 DS2 E2 DS2 E2 H1
D2 C2 2. * A1 2. / P
C1 E1 A1 2. * H1 2. /
P E1 GS1 H1 2. * C2
2. / P E1 E2 DS2 E2
DS2 E2 H1 D2 C2 2. *
A1 2. / P C1 E1 A1 2.
* H1 2. / P E1 C2 H1
2. * A1 2. / P H1 C2
D2 2. * E2 2. / P G1
F2 E2 2. * D2 2. / P
F1 E2 D2 2. * C2 2. /
P E1 D2 C2 2. * H1 2.
/ E1 E2 E2 E3 E1 E2
3. * P 3. / DS2 E2 P
P DS2 E2 DS2 E2 DS2
E2 H1 D2 C2 2. * A1
2. / P C1 E1 A1 2. *
H1 2. / P E1 GS1 H1
2. * C2 2. / P E1 E2
DS2 E2 DS2 E2 H1 D2
C2 2. * A1 2. / P C1
E1 A1 2. * H1 2. / P
E1 C2 H1 2. * A1 2. /
P H1 C2 D2 2. * E2 2.
/ P G1 F2 E2 2. * D2
2. / P F1 E2 D2 2. *
C2 2. / P E1 D2 C2 2.
* H1 2. / E1 E2 E2 E3
E1 E2 3. * P 3. / DS2
E2 P P DS2 E2 DS2 E2
DS2 E2 H1 D2 C2 2. *
A1 2. / P C1 E1 A1 2.
* H1 2. / P E1 GS1 H1
2. * C2 2. / P E1 E2
DS2 E2 DS2 E2 H1 D2
C2 2. * A1 2. / P C1
E1 A1 2. * H1 2. / P
E1 C2 H1 2. * A1 DROP
    END
  \>>
  HANS
  \<<
".533.422.1234555.533.422.13551.2222234.3333345.533.422.13551"
  \>>
  TONF
  \<< \->STR DUP
    WHILE DUP SIZE 0.
>
    REPEAT DUP HEAD
DUP NUM
      \<< \-> n
        \<<
          IF 'n\>=48. AND
n\<=57.'
          THEN OBJ\->
1. + NOTE SWAP GET .3
BEEP
          ELSE DROP
.3 WAIT
          END
        \>>
      \>> EVAL TAIL
    END DROP
  \>>
  INF1 { {
"Info allgemein"
"Musik-Programme
       von Otto Praxl
       Januar 2002
eMail:
    Praxelius@web.de
Liedbeispiel:   ELISE
Tonfolge:       HANS"
} { "Info Musik"
" Die Noten C0 bis H3
 und die Pause P \252ber
 Programm oder auf
 Tasten spielen.
Im Stack: Tonl\228nge [s]
Siehe Programm!"
} { "Grundton GT"
" Die Variable GT
 mu\Gb vorhanden sein.
 Inhalt: 440 
 Dieser Grundton 
 bestimmt die
 H\246henlage aller
 Noten."
} { "Notenbereich"
" Grundton GT mu\Gb als
 Variable existieren.
 Voreinstellung:
    GT = 440 Hz.
 C0 = Ton c  Oktave 0
 CS0= Ton cis ...
 H3 = Ton h  Oktave 3"
} { "Programm"
"Programmierbeispiel:
\<< .2 G2 E2 2 *
  E2 P 2 / F2 D2 D2 
  DROP \>>, dabei ist
  .2   Dauer 1. Ton
  2 /  Ton halbiert
  2 *  Ton doppelt"
} { "Info TONF"
"TONF=Tonfolge C-Dur:
 Zahl oder String
 in Stack stellen,
 TONF spielt nur die
 Ziffern 0 bis 9
 = Noten H0 bis D2.
 Andere Zeichen=Pause"
} { "Das Lied ELISE"
"'F\252r Elise' von
Ludwig van Beethoven
Tonart: a-Moll
Achtelnote = 0.15 Sek. 
3/4-Takt, Poco moto
Variable GT wird beim
Start angelegt."
} { " P = Pause"
"
 Die L\228nge der Pause
 wird wie die Noten-
 l\228nge ausgew\228hlt."
} { " C0 = c0"
" 
 C0 =  261.63 Hz

  Beginn Oktave 0"
} { "CS0 = cis0"
"
 CS0 =  277.18 Hz"
} { " D0 = d0"
"
 D0 =  293.66 Hz" }
{ "DS0 = dis0"
"
 DS0 =  311.13 Hz"
} { " E0 = e0"
"
 E0 =  329.63 Hz" }
{ " F0 = f0"
"
 F0 =  349.23 Hz" }
{ "FS0 = fis0"
"FS0 =  369.99 Hz" }
{ " G0 = g0"
"
 G0 =  392.00 Hz" }
{ "GS0 = gis0"
"
 GS0 =  415.30 Hz"
} { " A0 = a0"
"A0 =  440.00 Hz
   =  GT = Grundton

Falls GT sich \228ndert,
 \228ndert sich auch A0
 und die H\246henlage
 aller anderen Noten."
} { " B0 = b0 =ais0"
"
 B0 =  466.16 Hz" }
{ " H0 = h0"
"
 H0 =  493.88 Hz" }
{ " C1 = c1"
"
 C1 =  523.25 Hz

 Beginn Oktave 1"
} { "CS1 = cis1"
"
 CS1 =  554.37 Hz"
} { " D1 = d1"
"
 D1 =  587.33 Hz" }
{ "DS1 = dis1"
"
 DS1 =  622.25 Hz"
} { " E1 = e1"
"
 E1 =  659.26 Hz" }
{ " F1 = f1"
"
 F1 =  698.46 Hz" }
{ "FS1 = fis1"
"
 FS1 =  739.99 Hz"
} { " G1 = g1"
"
 G1 =  783.99 Hz" }
{ "GS1 = gis1"
"
 GS1 =  830.61 Hz"
} { " A1 = a1"
"
 A1 =  880.00 Hz" }
{ " B1 = b1 =ais1"
"
 B1 =  932.33 Hz" }
{ " H1 = h1"
"
 H1 =  987.77 Hz" }
{ " C2 = c2"
"
 C2 = 1046.50 Hz

 Beginn Oktave 2"
} { "CS2 = cis2"
"
 CS2 = 1108.73 Hz"
} { " D2 = d2"
"
 D2 = 1174.66 Hz" }
{ "DS2 = dis2"
"
 DS2 = 1244.51 Hz"
} { " E2 = e2"
"
 E2 = 1318.51 Hz" }
{ " F2 = f2"
"
 F2 = 1396.91 Hz" }
{ "FS2 = fis2"
"
FS2 = 1479.98 Hz" }
{ " G2 = g2"
"
 G2 = 1567.98 Hz" }
{ "GS2 = gis2"
"
 GS2 = 1661.22 Hz"
} { " A2 = a2"
"
 A2 = 1760.00 Hz" }
{ " B2 = b2 =ais2"
"
 B2 = 1864.66 Hz" }
{ " H2 = h2"
"
 H2 = 1975.53 Hz" }
{ " C3 = c3"
"
 C3 = 2093.00 Hz

 Beginn Oktave 3"
} { "CS3 = cis3"
"
 CS3 = 2217.46 Hz"
} { " D3 = d3"
"
 D3 = 2349.32 Hz" }
{ "DS3 = dis3"
"
 DS3 = 2489.02 Hz"
} { " E3 = e3"
"
 E3 = 2637.02 Hz" }
{ " F3 = f3"
"
 F3 = 2793.83 Hz" }
{ "FS3 = fis3"
"
FS3 = 2959.96 Hz" }
{ " G3 = g3"
"
 G3 = 3135.96 Hz" }
{ "GS3 = gis3"
"
GS3 = 3322.44 Hz" }
{ " A3 = a3"
"
 A3 = 3520.00 Hz" }
{ " B3 = b3 =ais3"
"
 B3 = 3729.31 Hz" }
{ " H3 = h3"
"
 H3 = 3951.07 Hz" }
}
  NOTE { 493.88
523.25 587.33 659.26
698.46 783.99 880.
987.77 1046.5 1174.66
}
  C0
  \<< DUP GT .595 *
SWAP BEEP
  \>>
  CS0
  \<< DUP GT .63 * SWAP
BEEP
  \>>
  D0
  \<< DUP GT .667 *
SWAP BEEP
  \>>
  DS0
  \<< DUP GT .707 *
SWAP BEEP
  \>>
  E0
  \<< DUP GT .749 *
SWAP BEEP
  \>>
  F0
  \<< DUP GT .794 *
SWAP BEEP
  \>>
  FS0
  \<< DUP GT .841 *
SWAP BEEP
  \>>
  G0
  \<< DUP GT .891 *
SWAP BEEP
  \>>
  GS0
  \<< DUP GT .944 *
SWAP BEEP
  \>>
  A0
  \<< DUP GT SWAP BEEP
  \>>
  B0
  \<< DUP GT 1.059 *
SWAP BEEP
  \>>
  H0
  \<< DUP GT 1.122 *
SWAP BEEP
  \>>
  C1
  \<< DUP GT 1.189 *
SWAP BEEP
  \>>
  CS1
  \<< DUP GT 1.26 *
SWAP BEEP
  \>>
  D1
  \<< DUP GT 1.335 *
SWAP BEEP
  \>>
  DS1
  \<< DUP GT 1.414 *
SWAP BEEP
  \>>
  E1
  \<< DUP GT 1.498 *
SWAP BEEP
  \>>
  F1
  \<< DUP GT 1.587 *
SWAP BEEP
  \>>
  FS1
  \<< DUP GT 1.682 *
SWAP BEEP
  \>>
  G1
  \<< DUP GT 1.782 *
SWAP BEEP
  \>>
  GS1
  \<< DUP GT 1.888 *
SWAP BEEP
  \>>
  A1
  \<< DUP GT 2. * SWAP
BEEP
  \>>
  B1
  \<< DUP GT 2.119 *
SWAP BEEP
  \>>
  H1
  \<< DUP GT 2.245 *
SWAP BEEP
  \>>
  C2
  \<< DUP GT 2.378 *
SWAP BEEP
  \>>
  CS2
  \<< DUP GT 2.52 *
SWAP BEEP
  \>>
  D2
  \<< DUP GT 2.67 *
SWAP BEEP
  \>>
  DS2
  \<< DUP GT 2.828 *
SWAP BEEP
  \>>
  E2
  \<< DUP GT 2.997 *
SWAP BEEP
  \>>
  F2
  \<< DUP GT 3.175 *
SWAP BEEP
  \>>
  FS2
  \<< DUP GT 3.364 *
SWAP BEEP
  \>>
  G2
  \<< DUP GT 3.564 *
SWAP BEEP
  \>>
  GS2
  \<< DUP GT 3.775 *
SWAP BEEP
  \>>
  A2
  \<< DUP GT 4. * SWAP
BEEP
  \>>
  B2
  \<< DUP GT 4.238 *
SWAP BEEP
  \>>
  H2
  \<< DUP GT 4.49 *
SWAP BEEP
  \>>
  C3
  \<< DUP GT 4.757 *
SWAP BEEP
  \>>
  CS3
  \<< DUP GT 5.04 *
SWAP BEEP
  \>>
  D3
  \<< DUP GT 