Programmier- und Bedienungshandbuch – Umstimmungen und Verwandte

˙

A.3.  Umstimmungen und Verwandte

Eine Umstimmung verändert das aktuelle Tonsystem, indem einzelne Parameter der Fundamentaltonleiter geändert werden. So kann man die Verankerungstaste verschieben, die Breite oder das Periodenintervall ändern und einzelne Töne ändern. Dies sind die vier Grundmöglichkeiten, um ein Tonsystem zu ändern.

  UMSTIMMUNG  
     u1 = 51 [ ]               "Setzt Verankerungstaste neu"  
     u2 = [ << 5 >> ]          "Setzt die Breite auf 5"  
     u3 = [ << @ + 1 >> ]      "Verbreitert um einen Ton"  
     u4 = [ @, xy, @ ]         "Setzt den zweiten Ton neu"  
     u5 = [ @, @, @ - 3 cent ] "Erniedrigt den dritten Ton"  
     u6 = [ ] ganzton - 5 cent "Setzt das Periodenintervall neu"  
     u7 = [ ] @ + halbton      "Vergroessert das Periodenintervall"

Da eine einzelne Umstimmung im allgemeinen nicht ausreichend ist, kann man auch mehrere Umstimmungen auf einmal durchführen.

  UMSTIMMUNG mehrfach = { u1, u3, u7 }

Wenn jetzt die Umstimmung mehrfach durchgeführt wird, so werden der Reihe nach die Umstimmungen u1, u3 und u7 durchgeführt. Sollte zusätzlich zu den drei Umstimmungen noch eine Nachricht an den Synthesizer geschickt werden, so schreibt man:

  UMSTIMMUNG mehrfach = { u1, u3, u7, MidiOut (#C0, 17, 22) }

und schon bekommt der Synthesizer eine drei Bytes lange MIDI-Nachricht geschickt, sobald die Umstimmung mehrfach durchgeführt wird. Bei der Angabe von Verankerungstaste und Breite darf keine Kommazahl sondern nur eine ganze Zahl angegeben werden. Diese Zahl muss aber nicht konstant sein, sondern sie kann der Umstimmung auch als Parameter mitgegeben werden.

  UMSTIMMUNG  setze_anker (x) = x [ ]

Diese Umstimmung kann nun von verschiedenen Stellen aus mit unterschiedlichen Parametern aufgerufen werden.

    setze_anker (48)  
    setze_anker (36)  
    setze_anker (59)

Eine Umstimmung kann auch mehrere Parameter haben, und diese Parameter an andere Umstimmungen weitergeben.

   UMSTIMMUNG meier (x,y,z) = {   setze_anker (z),  
                                  setze_breite (x),  
                                  verschiebe (y),  
                                  midiout (#D0, 17, 4)  
                              }  
 
       setze_breite (x) = [ << x >> ]  
 
       verschiebe (j) = @ + j [ ]

Es ist auch möglich, in Abhängigkeit von einem Parameter eine Fallunterscheidung zu treffen. Hier soll die Verankerungstaste nur dann verschoben werden, wenn der Parameter ungerade ist.

    UMSTIMMUNG ungerade (x) = x {  
                                  -5 -> verschiebe (x)  
                                  -3 -> verschiebe (x)  
                                  -1 -> verschiebe (x)  
                                   1 -> verschiebe (x)  
                                   3 -> verschiebe (x)  
                                   5 -> verschiebe (x)  
                                   7 -> verschiebe (x)  
                                   9 -> verschiebe (x)  
                                 }

Man kann auch je nach Parameter verschiedene andere Umstimmungen oder MIDI- Nachrichten auslösen:

     UMSTIMMUNG super (x) = x {  
                               0 -> u1 , midiout (#c0, 0, 0)  
                               1 -> u2, u3, verschiebe (4)  
                               2 -> midiout (#b0, 2, 5), u4  
                       ansonsten -> midiout (#b0, 0, 127)  
                    }

Es ist allerdings verboten, dass Umstimmungen sich gegenseitig aufrufen. Das würde zu einem unendlichen PingPong von Umstimmungen führen und ist nicht sinnvoll. Sinnvoll ist jedoch, dass eine Umstimmung ein komplettes Tonsystem aufruft. In diesem Fall wird das angegebene Tonsystem eingestellt. Es ist sogar möglich in einer Umstimmung eine andere Logik aufzurufen. In diesem Fall wird in diese Logik gewechselt und, falls vorhanden, deren Einstimmung durchgeführt.

˙

Deutsch English
©2006
Letzte Veröffentlichung auf dem Server:
Mittwoch, 29. März 2006, 11.51 Uhr Weltzeit