Autor Thema: Reine Stimmung (JI)  (Gelesen 2574 mal)

erich

  • Gast
Reine Stimmung (JI)
« am: Donnerstag, 11. Februar 2016, 21:32 »
Hallo,

ich habe zu LilyPond ein Script stimmung_rein.ly erarbeitet, mit dem man Musik in Reiner Stimmung schreiben kann und als MIDI ausgeben kann.

Ich  habe alles unter https://meyerich.pythonanywhere.com/Reine_Stimmung dokumentiert.

Gruß
Erich

fugenkomponist

  • Gast
Re: Reine Stimmung (JI)
« Antwort #1 am: Sonntag, 28. Februar 2016, 10:55 »
Mir ist gerade eingefallen, dass Urs Liska vor kurzem etwas über dieses Thema im  LilyPond-Blog „Scores of Beauty“ geschrieben hat; Urs ist Musiktheoretiker und auf der englischen Mailingliste aktiv (soweit ich weiß aber nicht hier im Forum), ich kann dir aber auch seine Mailadresse zukommen lassen.

krach21

  • Gast
Re: Reine Stimmung (JI)
« Antwort #2 am: Montag, 7. März 2016, 02:33 »
Lieber Erich,

hier auch noch ein Link zum Thema. Graham Breed hat gerade einige gängige Notationssysteme für reine Stimmung in Lilypond implementiert (er hat auch auf den Artikel geantwortet, den Fugenkomponist genannt hat):

https://bitbucket.org/x31eq/microlily/downloads

Gruß
Kostja

PS:
Zu erwähnen ist in diesem Zusammenhang auch die Helmholtz-Ellis-Notation: http://www.marcsabat.com/pdfs/notation.pdf
Bin interessiert bezüglich dieses Themas in Kontakt zu bleiben.
« Letzte Änderung: Montag, 7. März 2016, 02:45 von Kostja »

Arnold

  • Gast
Re: Reine Stimmung (JI)
« Antwort #3 am: Montag, 4. April 2016, 10:09 »
Hallo,

anbei ein rudimentäres Beispiel, wie ich eine »Reine Stimmung« im »gleichschwebend temperierten Notensystem« darstellen kann.
Ich habe einfach eine Obertonreihe als Musik-Schnipsel definiert. Für die Notenschriftdarstellung runde ich die Pitch-Werte auf den nächstgelegenen Viertelton und schreibe die Rundungsdifferenz (als Fingersatz untergeschoben) zu den Noten hinzu.

\version "2.18.2"
RPT = % Rational Pitch Transpose
#(define-music-function
  (parser location ratio semitones whole-step-precision m)
  (rational? rational? integer? ly:music?)
  (let
   ((delta (inexact->exact (round (* whole-step-precision
      (- (* (/ ($log ratio) ($log 2.0)) 6.0) (/ semitones 2)))))))
   (ly:music-transpose m (ly:make-pitch 0 0 (/ delta whole-step-precision)))))

Musik = {
  \clef bass
                                c,1     _"1"
                                c1      _"2"
  \clef treble
  \RPT #3/2     #7   #200000000 g1      _"3"
                                c'1     _"4"
  \RPT #5/4     #4   #200000000 e'1     _"5"
  \RPT #3/2     #7   #200000000 g'1     _"6"
  \RPT #7/4     #10  #200000000 bes'1   _"7"
                                c''1    _"8"
  \RPT #9/8     #2   #200000000 d''1    _"9"
  \RPT #5/4     #4   #200000000 e''1    _"10"
  \RPT #11/8    #6   #200000000 fis''1  _"11"
  \RPT #3/2     #7   #200000000 g''1    _"12"
  \clef "treble^8"
  \RPT #13/8    #8   #200000000 as''1   _"13"
  \RPT #7/4     #10  #200000000 bes''1  _"14"
  \RPT #15/16   #-1  #200000000 b''1    _"15"
                                c'''1   _"16"
  \RPT #17/16   #1   #200000000 cis'''1 _"17"
  \RPT #9/8     #2   #200000000 d'''1   _"18"
  \RPT #19/16   #3   #200000000 dis'''1 _"19"
  \RPT #5/4     #4   #200000000 e'''1   _"20"
  \RPT #21/16   #5   #200000000 f'''1   _"21"
  \RPT #11/8    #6   #200000000 fis'''1 _"22"
  \RPT #23/16   #6   #200000000 ges'''1 _"23"
  \RPT #3/2     #7   #200000000 g'''1   _"24"
  \RPT #25/16   #8   #200000000 gis'''1 _"25"
  \RPT #13/8    #8   #200000000 as'''1  _"26"
  \RPT #27/16   #9   #200000000 a'''1   _"27"
  \bar "|."
}

% Diese musicMap-Funktion nur mit \layout{} verwenden,
% nicht mit \midi{} (würde die Pitch-Bends in der MIDI-Datei verfälschen)!
#(define (bend-to-next-quartertone e)
  (let ((eventtype (ly:music-property e 'name)))
   ;;; (for-each display (list "\n name(eventtype) = " eventtype " "))
   (if (eq? eventtype 'NoteEvent)
    (let* ((art (ly:music-property e 'articulations '()))
           (p (ly:music-property e 'pitch))
           (alt (ly:pitch-alteration p))
           (okt (ly:pitch-octave p))
           (pnn (ly:pitch-notename p))
           ;; (cents (* 200.0 (exact->inexact alt)))
           (qtns (round (* 4 alt)))              ;;; Naeherung in Vierteltoenen - eine sehr einfache Rundungsmethode
          )
     ;;; (for-each display (list "\n  pitch = " p " ( " okt " " pnn " " (format #f "~3,1@f" (* 200.0 (exact->inexact alt))) " ) ->" qtns " "))
     (ly:music-set-property! e 'pitch (ly:make-pitch okt pnn (/ qtns 4)))
     (let* ((remaining-cents (- (* 200 alt) (* 50 qtns)))
            (delta-text (format #f "~3,1@f" (exact->inexact remaining-cents))) ;;; eine Nachkommastelle, immer mit Vorzeichen
           )
      (if (= remaining-cents 0) (set! delta-text "±0.0"))
      ;;; (for-each display (list "\n  delta = " (ly:number->string (exact->inexact remaining-cents)) " -> " delta-text " "))
      (ly:music-set-property! e 'articulations (cons
        (make-music 'FingeringEvent
        'text (markup #:whiteout (#:normal-text delta-text)))
        art))
   )))
   e))

\score {
  { \musicMap #bend-to-next-quartertone \Musik }
  \header {
    piece = \markup \justify {
      Obertonreihe, auf Vierteltöne gerundet, und die verbleibende Differenz (in Cent) als »Fingersatz-Text« hinzugefügt
    }
  }
}

Auch habe ich noch ein paar Text-Ausgaben (zum Debuggen) als Kommentare in der musicMap-Funktion stehen gelassen.

Arnold

erich

  • Gast
Re: Reine Stimmung (JI)
« Antwort #4 am: Dienstag, 5. April 2016, 09:03 »
Hallo Arnold

Eine Modulation von C-Dur nach F-Dur kann man zerlegen in eine von C-Dur nach A-Moll und eine weitere von A-Moll nach F-Dur
(siehe dazu: https://de.wikipedia.org/wiki/Modulation_bei_reiner_Stimmung)
Im 1. Schritt wird das D um das syntonische Komma erniedrigt: die Frequenz also um den Faktor 80/81. Dieser Faktor entspricht 21.5 Cent.
In dieser Größenordnung fallen aber auch Abweichungen aus, die Du in Deinem Beispiel erzeugst; insofern vermag ich darin keine Approximation an die reine Stimmung zu sehen.

Gruß
Erich

Arnold

  • Gast
Re: Reine Stimmung (JI)
« Antwort #5 am: Mittwoch, 13. April 2016, 09:40 »
Hallo Erich,

verstehe das Beispiel »mit dem Runden auf den nächsten Vierelton« nicht falsch.

Es wird keine »Notation in reiner Stimmung« gedruckt, vielmehr behalten alle angezeigten Notenpositionen (auch mit Vorzeichen) die gleichschwebend temperierte Stimmung.

Die Intervalle in der Musik (im Beispiel ja nur die Naturtonskala) habe ich über Frequenzverhältnisse definiert, und dann (zwangsläufig mit Rundung nach dem Logarithmieren) in die Pitch-Werte eingebracht. Somit haben die Pitch-Werte der Noten durchaus die Eigenschaften einer reinen Stimmung.

Als Ergebnis zeige ich dann für jeden Ton an:
  • die definierte (Rein-Seimmungs-) Tonhöhe liegt ungefähr bei dem dargestellen Ton der gleichschwebend temperierten Stimmung,
  • aber davon ist er noch um den angegebenen Cent-Betrag zu korrigieren, um in reiner Stimmung zu spielen.

Man kann also diese Methode auch zur Veranschaulichung nutzen, wie weit die reine Stimmung von der gleichschwebend temperierten Stimmung abweicht.

Arnold

erich

  • Gast
Re: Reine Stimmung (JI)
« Antwort #6 am: Mittwoch, 13. April 2016, 14:22 »
Hallo Arnold

Zitat
Als Ergebnis zeige ich dann für jeden Ton an:

    die definierte (Rein-Seimmungs-) Tonhöhe liegt ungefähr bei dem dargestellen Ton der gleichschwebend temperierten Stimmung,
    aber davon ist er noch um den angegebenen Cent-Betrag zu korrigieren, um in reiner Stimmung zu spielen.


Man kann also diese Methode auch zur Veranschaulichung nutzen, wie weit die reine Stimmung von der gleichschwebend temperierten Stimmung abweicht.

so hab ich es auch verstanden. Du erhältst Abweichungen bis zu 18.8, 20.8, 21.7 oder auch 22.6 Cent . Wenn man jedoch bedenkt, dass bei einer Modulation von C-Dur nach A-Moll in reiner Stimmung nur das D um 21.51 Cent zu verändern ist, dann liegen doch die Abweichungen, die Du erhältst in dieser Größenordnung.
Deshalb meine ich, dass Du im Allgemeinen keine Approximation an eine reine Stimmung erhältst, dass schließt jedoch nicht aus, dass dieses für einige Tonarten gelingt; welche das dann sind wäre zu ermitteln.

Gruß
Erich