(Nur verfügbar in bestimmten Varianten des programmierbaren Terminals)
Übersicht
Das Kommando "beep" (be)
Das Kommando "play" (pl)
Siehe auch:
Do you have this document translated into...
English - German - Francais
- Italiano - etc ?
Um Töne mit dem im Terminal eingebauten Pieper ('speaker') zu erzeugen,
gibt es zwei Interpreterkommandos.
-
Hinweis:
-
Geräte ohne Pieper kennen diese Befehle nicht, der Interpreter könnte
dort eine Fehlermeldung ausgeben!
Kommandos zum Ansteuern des Piepers:
-
beep( <frequency> [ ,<time>
[,<volume> [ ,<frequency_mod> [ ,<amplitude_mod> ] ] ]
] )
Nur der erste Parameter (Frequenz in Hz) ist zwingend, alle weiteren Parameter
sind optional. Siehe Beispiele bei der Beschreibung des Befehls. Das
"beep"-Kommando kann als "be" abgekürzt werden wenn der Platz in einer
Kommandozeile knapp wird.
-
play( <string of tones>)
Dient zum Abspielen von Klingeltönen, Alarmen, oder kurzen Melodien.
Siehe Beispiele bei der Beschreibung des Befehls.
Eine Beispielapplikation, in der diese Kommandos verwendet werden, finden
Sie im Installationsarchiv unter
programs/BeepTest.cvt .
Erzeugt einen einzelnen Ton, der optional frequenzmoduliert werden kann
(Aufwärts- oder Abwärtsrampe).
Syntax:
be( <freq>, [ <time>, [ <volume>, [ <fm>, [
<am> ] ] ] ] )
Parameter:
-
freq
-
Tonfrequenz in Hertz. Der Wert Null schaltet den Ton aus, falls keine anderen
Parameter folgen.
Achtung: Die minimale Frequenz beträgt bei Geräten mit 24-MHz-Takt
366 Hz; bei Geräten mit 40-MHz-Takt 610 Hz. Falls die angegebene Tonfrequenz
nicht realisiert werden kann, wird die nächstgelegene "realisierbare"
Frequenz erzeugt.
-
time
-
Länge des Tons, gemessen in 100-Millisekunden-Schritten. Wenn dieser
und alle weiteren Parameter fehlen, wird ein "endloser" Ton produziert, der
mit dem Kommando
beep(0)
oder be(0)
wieder abgeschaltet
werden muss.
-
volume
-
Relative Lautstärke in Prozent, im Bereich 0 bis 100. Der Pieper wird
intern mit einem Pulsbreitenmodulator angesteuert, wobei das Tastverhältnis
für die Lautstärkeneinstellung dient. So lassen sich zwar verschiedene
Lautstärken erzielen, das Spektrum des Tons ändert sich allerdings
auch (je nach Tastverhältnis). Der "volume"-Wert 100 erzeugt die maximale
Lautstärke mit einem Tastverhältnis von 1:1.
-
fm
-
Frequenzmodulation. Kann zur Realisierung von Sirenen-ähnlichen
Klängen eingesetzt werden. Die Einheit ist "Hertz pro 100 Millisekunden".
Bei positivem Wert steigt die Frequenz an solange der Ton dauert, bei negativem
Wert fällt sie ab.
-
am
-
Amplitudenmodulation. Kann für allmählich anschwellende Töne
verwendet werden, die Funktion ist allerdings wegen der Pulsweitenmodulation
nicht sehr effektiv (eine Lautstärke von 10% kann kaum von 50% unterschieden
werden). Auf dem PC (Programmiertool, Simulator), ist die Amplitudenmodulation
nicht möglich. Ein mit dem PC-Speaker erzeugter Ton kann mit einfachen
Mitteln nicht pulsweitenmoduliert werden (unter Windows erst recht nicht..).
Beispiele für das "beep"-Kommando:
-
be(1750)
-
Startet einen 'endlosen' Ton mit maximaler Lautstärke, und der Frequenz
1750 Hz.
-
be(0)
-
Beendet einen vorher gestarteten Ton
-
be(1750,5)
-
Erzeugt einen einzelnen, nicht modulierten (Ruf-)Ton mit 1750 Hz und einer Dauer
von 0.5 Sekunden.
-
be(150,20,50,100)
-
Erzeugt einen 2 Sekunden dauernden Ton, dessen Frequenz von 150 Hz bis auf
2150 Hz (=150 + 2 sec * 100 Hz/0.1sec) ansteigt.
Zur Übersicht
Erzeugt eine Sequenz von Tönen, z.B. Klingeltöne, Alarme, oder
kurze Melodien.
Syntax:
pl( <string> )
Der String ist eine Zeichenkette aus den folgenden Buchstaben:
-
a...l
-
12 Halbtöne in der ersten Oktave. 'a'=262 Hz, 'b'=277 Hz, .... 'j'=440
Hz, 'k'=466 Hz, 'l'=494 Hz.
(Die Buchstaben haben nichts mit historischen Noten-Namen zu tun, z.B. ist
der "Kammerton A" hier "j" !)
-
m...x
-
12 Halbtöne in der zweiten Oktave. 'm'=523 Hz .... 'x'=988 Hz.
-
A...L
-
12 Halbtöne in der dritten Oktave. 'A'=1046 Hz .... 'L'=1975 Hz.
-
M...X
-
12 Halbtöne in der vierten Oktave. 'M'=2093 .... 'X'=3951Hz.
-
' ' (Leerzeichen)
-
Fügt eine Pause in die abgespielte Melodie ein, mit der aktuellen Tondauer
(0..9)
-
0...9
-
Setzt die Dauer der nachfolgenden Noten und Pausen:
'0' = die kürzeste realisierbare Dauer, abhängig vom
Timer-Interrupt (meistens 10 Millisekunden)
'1' = 50 Millisekunden
'2' = 100 Millisekunden
'3' = 150 Millisekunden
'4' = 200 Millisekunden
'5' = 400 Millisekunden
'6' = 600 Millisekunden
'7' = 1000 Millisekunden
'8' = 1500 Millisekunden
'9' = 2000 Millisekunden
-
!vN
-
volume. N=1 erzeugt einen sehr leisen Ton, N=9 den lautesten Ton.
-
!aN
-
attack interval. Der Parameter 'N' definiert, wie schnell ein Ton von "Null"
bis zum Maximum (Wert von !v) anschwillt.
-
!dN
-
decay interval. Der Parameter 'N' definiert, wie schnell ein Ton vom Maximum
bis auf den Sustain-Level abfällt.
-
!sN
-
sustain level. Haltepegel von Dauertönen. Mit !s0 können Töne
erzeugt werden, die keinen Dauerton, sondern nur einen kurzen abfallenden
Ton haben, z.B. Glocken, Klavier (oder eher Cemballo).
-
!rN
-
release interval. Nachklingdauer bis zur völligen Stille.
-
!lN
-
loop. N=1...9 definiert die Anzahl der Schleifen-Wiederholungen. Das
Schleifenende muß mit "!le" (loop end) markiert werden. Schleifen
im Melodie-String sind nicht schachtelbar.
Hinweise:
-
Zwischen zwei Noten werden keine automatischen Pausen eingefügt !
-
Um eigene Melodien zu "komponieren", konnte in der 'guten alten Zeit'
von Windows 98 und Windows XP der Simulator im Terminal-Programmiertool
verwendet werden ("View"..."Test Command Window"). Töne wurden dann
per 'PC-Speaker' erzeugt. Unter späteren Windows-Versionen sind direkte
Hardware-Zugriffe per I/O-Register allerdings 'tabu', so daß die
Tonwiedergabe per PWM, Hardware-Timer und internem Laustsprecher
beim PC leider nicht mehr funktioniert.
- Beim Umsetzen von Melodien aus dem Notensystem mit Violinschlüssel
in die entsprechenden Halbton-Codes für "play" bzw. "system.play_notes" (Script)
hilft die folgende Tonleiter (leider nur für "C-Dur", english "C major" scale):
Note for english readers: The "musical note names" shown above are the german names.
"c1" ("eingestrichenes C", 262 Hz) is "C4" (middle C) in english, etc.
Only the tone frequencies in Hertz are not subject to these confusions.
Beispiele für das "play"-Kommando (Abk. pl)
-
pl("5m4o5qo2 5rq4ol5m")
(deutsche Nationalhymne)
-
pl("!v9!d7!s0 6qmo9h6 hoq9m")
(Westminster-Klang bzw. "Big Ben"-Melodie mit voller Lautstärke)
-
pl("!v3!d7!s0 6qmo9h6 hoq9m")
(das Gleiche mit geringerer 'Lautstärke').
Hinweis: Da der PWM-Ausgang nur ein Signal mit konstanter Amplitude liefern
kann, wird für die 'Lautstärkeänderung' ein niedrigeres
Tastverhältnis verwendet, was dazu führt dass die Töne zwar
etwas leiser erscheinen, aber auch anders klingen.
Weitere Beispiele für das Kommando 'play' finden Sie im Installationsarchiv
unter programs/BeepTest.cvt .
Der Befehl ist als system.play_notes auch in der Script-Sprache verfügbar.
Zur Übersicht
Siehe main manual.
Letzte Änderung: 5. September 2002
Zur Übersicht