EINFÜHRUNG |
Du kannst den Computer auch an Stelle eines Experimentalsystems verwenden, beispielsweise um mit dem Soundsystem das menschliche Hören zu untersuchen. Dies ist nicht nur billiger, sondern gibt dir auch eine ungeheure Flexibilität, insbesondere wenn du die Experimente mit einem selbstgeschriebenen Programm durchführst. |
STIMMEN EINES MUSIKINSTRUMENTS, SCHWEBUNG |
Das Gehör kann zwei Töne mit fast gleichen Frequenzen, die allein gespielt werden, nicht unterscheiden. Werden diese aber gleichzeitig gespielt, so ergibt sich ein An- und Abschwellen der Lautstärke, das sehr gut hörbar ist. Um dies selbst erleben, spielst du mit deinem Programm zuerst während 5 Sekunden den Standard-Kammerton a (440 Hz) und nachher während derselben Zeit einen um nur 1 Hertz höheren Ton. Es ist kein Unterschied feststellbar. Beim Abspielen beider Töne hörst du aber ein deutliches Schwebungsphänomen. import time
playTone(440, 5000)
time.sleep(2)
playTone(441, 5000)
time.sleep(2)
playTone(440, 20000, block = False)
playTone(441, 20000)
|
MEMO |
Die globale Funktion playTone() hat verschiedene Parameter-Variationen, die du in der TigerJython Hilfe unter APLU Dokumentation (Koordinatengrafik) nachlesen kannst. Hier verwendest du den benannten Parameter block, mit dem du wählen kannst, ob die Funktion blockiert, bis der Ton zu Ende gespielt ist, oder ob sie nach Beginn des Abspielens sofort zurückkehrt. Um mehrere Töne gleichzeitig zu spielen, musst du die nicht-blockierende Variante verwenden. Um Instrumente in einem Orchester, aber auch die Töne eines einzelnen Instruments (Saiteninstrument, Klavier, usw.) zu stimmen, spielt man zwei Töne gleichzeitig und achtet auf Schwebungen. |
TONLEITERN |
Die wohltemperierte Tonleiter geht vom Standard-Kammerton mit der Frequenz 440 Hz aus und teilt die Oktave (Frequenzverhältnis 2) in 12 Halbtöne mit dem gleichem Frequenzverhältnis r. Demnach gilt Du kannst damit leicht die C-Dur-Tonleiter spielen, die gemäss der Notenschrift aus Ganz- und Halbtönen besteht. Der Kammerton entspricht der Note a. In der reinen oder natürlichen Tonleiter werden die Tonfrequenzen durch Multiplikation mit einfachen Brüchen aus dem Grundton gebildet. Für die 8 Töne einer Oktave lauten sie: oder als Zahlenreihe 24, 27, 30, 32, 36, 40, 45, 48. Um sie abzuspielen, kannst du die Frequenzen in einer Liste speichern und diese playTone() übergeben. Nachdem du beide Tonleitern einzeln abgespielt hast, hörst du dir zwei verschieden gestimmte Instrumente an, welche die Tonleiter zusammen spielen. Wie du feststellen wirst, tönt es schrecklich. r = 2**(1/12) a = 440 scale_temp = [a / r**9, a / r**7, a / r**5, a / r**4, a / r**2, a, a * r**2, a * r**3] scale_pure = [3/5 * a, 3/5 * a * 9/8, 3/5 * a * 5/4, 3/5 * a * 4/3, 3/5 * a * 3/2, a, 3/5 * a * 15/8, 3/5 * a * 2] playTone(scale_temp, 1000) playTone(scale_pure, 1000) playTone(scale_temp, 1000, block = False) playTone(scale_pure, 1000) |
MEMO |
Bei der wohltemperierten Tonleiter haben benachbarte Halbtöne immer dasselbe Frequenzverhältnis (also nicht etwa gleich Frequenzdifferenzen!). Der Vorteil der wohltemperierten gegenüber der reinen Stimmung ist, dass die Frequenzverhältnisse für alle Tonarten (C-Dur, D-Dur, usw.) immer gleich gross sind. [mehr... Akkorde in der reinen Stimmung klingen aber "rein", da es keine Schwebungen der Obertöne gibt.] |
MELODIEN SPIELEN |
Mit playTone() kannst du auch zum Spass eine einfache Melodie spielen. Für sich folgende Töne mit gleicher Länge verwendest du ein Tupel mit Tonhöhe und Geschwindigkeitsangabe und packst diese Tonreihen in eine Liste. Zuletzt ist es noch möglich, ein Musikinstrument zu wählen. Beispielsweise erkennst du in deinem Programm sicher eine Kindermelodie. Erkennst du sie? v = 250 playTone([("cdef", v), ("gg", 2*v), ("aaaa", v//2), ("g", 2*v), ("aaaa", v//2), ("g", 2*v), ("ffff", v), ("ee", 2*v), ("dddd", v), ("c", 2*v)], instrument="harp") |
MEMO |
Es ist zwar erstaunlich, wie einfach du mit playTone() eine Melodie spielen kannst. Allerdings tönt diese verglichen mit einem Musikinstrument sehr synthetisch. |
AUFGABEN |
|