Workshop: ODF-Erweiterung

    • Offizieller Beitrag

    Diesen Workshop hatte ich vor Kurzem an anderer Stelle schon durchgeführt. Ziel war dabei, ausgehend von einer bestehenden ODF einer kleinen Orgel, nämlich der St. Maria Nordheim (Prospectum Weihnachtsorgel) eine größere virtuelle Orgel zu erzeugen. Aus dem einmanualigen Truhenpositiv sollte eine zweimanualige Orgel mit Pedal entstehen.

    Dieses Beispiel kann als Einstieg in die ODF-Programmierung benutzt werden. Ausgehend von der bestehenden ODF, kann man sich so relativ rasch mit der Materie vertraut machen.

    Man darf diesen Workshop aber nicht als erkärendes Programmierhandbuch missverstehen !

    Warum überhaupt?

    Ich denke, es gibt schon ein paar Leute wie z.B. mich, die so vor sich hinwursteln und im Verborgenen was austüfteln. Erste Ansätze zum Erfahrungsaustausch gibt es auch, aber entweder eher in englischer Sprache, oder eher auf privater Mailbasis. Diese Erfahrungen sollten breiter gestreut werden, um GrandOrgue noch schneller voranzubringen.

    Also wollen wir hier zunächst mal versuchen zum Thema ODF-Erstellung gemeinsam zu diskutieren, anhand des praktischen Beispiels der Prospectum Weihnachtsorgel St. Maria Nordheim.

    Die Arbeitsmittel:

    • Zunächst mal ein Link zur Herstellerseite, wo man dieses Hauptwerk-Sampleset gratis herunterladen kann: Prospectum Weihnachtsorgel
    • Dann nochmal der Download Link zu meiner schon funktionsfähigen GO-ODF: St. Maria Nordheim ODF
    • Als weiteres Arbeitsmittel brauchen wir dann natürlich GrandOrgue in einer aktuellen Version und vor allem dessen Hilfefunktion !!! die doch gerne übersehen wird !!!
      Diese kann man sich auch hier ansehen und herunterladen.
    • Offizieller Beitrag

    Erst möchte ich noch eine ganz kurze Einführung für mitlesende Einsteiger voranstellen.

    ODF ist zunächst die Abkürzung für Organ Definition File - auf Deutsch also in etwa Orgel-Beschreibungs-Datei. Hier wird festgelegt, welche Einzelteile eine Orgel enthalten soll, z.B. welche Pfeifen, Register, wieviele Manuale, wieviele Windladen, Koppeln, Tremulanten usw., sowie die Art des Zusammenwirkens dieser Einzelteile.

    Es ist wie bei einem Orgelbauer, der eine Orgel plant, die Einzelteile anfertigt oder auch fertig von speziellen Teilelieferanten dazukauft (z.B. Metallpfeifen, Klaviaturen) und daraus dann eine funktionsfähige, individuelle Orgel zusammenbaut und intoniert. Nur ist unser Instrument eben eine Virtuelle Orgel, deren Pfeifen in Form von Einzelsamples vorliegen, und deren Gehäuse nur aus ein paar digitalen Grafiken besteht.

    Solch eine GrandOrgue ODF-Datei (.organ) ist üblicherweise in mehrere Abschnitte (sogenannte Sections) gegliedert.

    Ich versuche mal für Einsteiger die grundsätzliche Struktur einer GO-ODF-Datei zu skizzieren:


    ;---------- Organ Section ----------
    Hier wird die Orgel grundsätzlich beschrieben. Es gibt Angaben zum Originalinstrument, sowie Festlegungen für das virtuelle Abbild, wie z.B. die Größe des Bildschirmfensters, Anzahl der Klaviaturen, Anzahl der Windladen, Register, Tremulanten, Schwellwerke usw.

    ;---------- Manual Section ----------
    Die Klaviaturen werden einzeln aufgeführt, die Größe (Tastenanzahl/Tonumfang) festgelegt und diese der jeweiligen Windlade und den dazugehörigen Registern zugeordnet.

    ;---------- Windchest Group Section ----------
    Die Windladen werden hier einzeln definiert. Sie werden den Teilwerken der Orgel zugeordnet. Jeder Windlade werden ggf. Tremulanten und Schweller zugeordnet.

    ;---------- Enclosure Section ----------
    Hier werden die Schwellwerke, sofern vorhanden, definiert und die Intensitätswerte festgelegt.

    ;---------- Tremulant Section ----------
    Falls Tremulanten vorhanden sind, werden diese in ihren Eigenschaften und in ihrem Erscheinungsbild am Spieltisch festgelegt.

    ;---------- Coupler Section ----------
    Die Anzahl und Art der Koppeln wird hier definiert und ebenfalls ihr Erscheinungbild am Spieltisch festgelegt.

    ;---------- Stop Sections ----------
    Hier werden alle Register der Orgel definiert. Dies geschieht nochmal in getrennten Unter-Sections für jedes Werk.
    Die einzelnen Pfeifensamples werden den Windladen zugeordnet, klangliche Eigenschaften festgelegt und das Aussehen jedes Registers am Bildschirm definiert.
    Auf Grund der Fülle der Pfeifen/Samples einer Orgel, ist dieser Abschnitt in der Regel mit Abstand der Längste einer ODF.

    ;---------- Label Section ----------
    Hier werden Beschriftungen in Form von zusätzlichen Schildchen am Spieltisch definiert und an die gewünschte Position gesetzt.


    AUFGABEN:

    • Lade die ODF-Datei Nordheim.organ in einen Texteditor deiner Wahl

    • Öffne die Hilfefunktion von GrandOrgue

    • Versuche im Editor die einzelnen Sections in der Datei Nordheim.organ zu finden

    • Suche in der Hilfefunktion die Befehle zu jeder Section und versuche nachzuvollziehen was jeder Befehl bewirkt


    Je intensiver und je öfter du darüber nachliest, umso eher wirst du hier in diesem Workshop mitarbeiten können!

    • Offizieller Beitrag

    So - nach dieser Einführung und den gemachten Hausaufgaben müsste sich ja jeder in einer ODF einigermaßen auskennen und einen Großteil der Befehle beherrschen :lol:
    Ich schlage vor, wir bearbeiten nun punktuelle Fragestellungen zu den einzelnen Sections in der Reihenfolge wie wir es für richtig halten, bzw. welche Probleme gerade von aktueller Relevanz sind. Dabei können wir uns durch die Angabe der Section-Namen einigermaßen zurechtfinden. Wir sollten uns vielleicht bemühen, nicht zu sehr in der Thematik in den einzelnen Beiträgen zu springen.

    Als erstes sollten wir die von mir erstellte ODF nochmal auf sinnvollen Inhalt überprüfen!

    Hintergrund:


    In der Regel wird eine ODF für ein neues Set nie von Grund auf neu geschrieben. Man benutzt eine bereits vorhandene ODF und modelt diese solange um, bis eine neue daraus geworden ist für das gewünschte Sampleset. In diesem Fall habe ich die ODF der Marcussen_Demo_compact benutzt. Allerdings hatte auch diese schonmal eine andere ODF als Grundlage usw. usf. letztlich war es mal eine Hauptwerk 1 ODF von vor Jahren gewesen, die die ursprüngliche Grundlage gebildet hat 8)

    Die Befehle haben sich aber seit Hauptwerk bis GrandOrgue teilweise verändert, sodaß es passieren kann, daß noch Befehle im Programm enthalten sind, die nicht mehr unterstützt werden bzw. unnötig sind. Hier hat martin schon an anderer Stelle im Forum entscheidende Hinweise gegeben. ( Bei einem ODF-Creator-Programm wird sowas zukünftig wohl keine Rolle mehr spielen )

    Aufgaben:

    • Finde im Forum die Beiträge zu diesem Thema und merke Dir diese veralteten Befehle.

    • Durchsuche die ODF nach ungültigen bzw. unnötigen Befehlen.

    • Sollte nichts davon zu finden sein, so baue diese Befehle probeweise in die ODF ein und versuche sie so laufen zu lassen. Achte dabei auf die Warnmeldungen oder Fehlermeldungen die GrandOrgue beim Laden ausgibt.

    • Offizieller Beitrag

    Ziel der Übung war vornehmlich, sich nochmal mit dem Aufbau der ODF zu beschäftigen, sowie allmählich ein Gespür für die Fehlermeldungen und Warnhinweise zu entwickeln.
    Es kommt nämlich beim sukzessiven Erstellen einer ODF immer wieder vor, daß nach Änderungen eine oder mehrere Fehlermeldungen angezeigt werden. Je besser man diese zu Deuten versteht, umso schneller kann man das Problem beseitigen und weiterkommen.

    Der Wunsch zu Beginn war ja, aus dieser kleinen Orgel eine große Orgel zu machen, mit zwei Manualen und Pedal!

    Ich könnte mir das so vorstellen, daß wir

    • das bestehende Werk mit den 4 geteilten Registern auch zunächst so beibehalten wie es ist und es als Positiv verwenden
    • zusätzlich ein Hauptwerk ohne Schleifenteilung einbauen, das zunächst nur aus den 4 gleichen Registern bestehen wird
    • an dieses Hauptwerk per Koppel ein Pedal anhängen
    • dieses Pedal dann im Folgenden mit einem eigenständigen Subbaß 16´ versehen
    • das Positiv mit einem Tremulanten und einem Schweller zum Schwellwerk erweitern
    • wir im weiteren Verlauf noch andere abgeleitete Register integrieren
    • zu guter Letzt auch noch ein Setzersystem einbauen
    • in einem separaten Abschnitt versuchen, das Sampleset in möglichst originalgetreuer Fassung in GO abzubilden, also auch mit der Originalgrafik

    Um für das alles auch Platz zu haben, müssen wir zunächst das Spieltischfenster größer machen.
    In der "Organ Section" ändern wir dazu zwei Zeilen:

    DispScreenSizeHoriz=620
    DispScreenSizeVert=375

    Hier wird im Moment die Fenstergröße in Pixeln angegeben. Horizontal 620 war der kleinst mögliche Wert, damit im umgebenden GrandOrgue-Fenster noch alle Menüpunkte lesbar werden. Bei noch kleineren Werten wird sonst abgeschnitten und man kann GO kaum noch bedienen.

    Eine Einstellung mit weniger als ca. 375 Pixeln vertikal war leider auch nicht ohne Abbruch mit Fehlermeldung möglich, sonst hätte ich das Fenster nämlich noch kleiner gemacht. Vermutlich reserviert hier GO Platz für das nicht vorhandene Pedal ?!

    Wir ändern diese Zeilen wie folgt:

    DispScreenSizeHoriz=Small
    DispScreenSizeVert=Small

    Aufgaben:

    • Schlage diese Einstellungen in der Hilfe-Funktion auf und experimentiere mit den Pixelgrößen und auch mit den Standardformaten.

    • Die Labels werden nun an einer unglücklichen Stelle sitzen. Versuche selbständig diese auf eine sinnvolle Position zu verschieben. Sie befinden sich in der "Label Section" und ihre Position ist dort ebenfalls in Pixeln angegeben

    • Offizieller Beitrag

    Im nächsten Schritt bauen wir ein 2. Manual ein!

    Dazu verändern wird die folgende Zeile in der "Organ Section":

    NumberOfManuals=1
    in
    NumberOfManuals=2

    In der "Manual Section" müssen wir auch gleich dieses neue Manual definieren, sonst kommt eine Fehlermeldung.
    Dazu nehmen wir den ganzen Abschnitt [Manual001] mit allen darauffolgenden Befehlen, markieren ihn mit der Maus, kopieren ihn in die Zwischenablage, setzen den Cursor wieder unterhalb des Abschnitts neu und fügen ihn aus der Zwischenablage wieder ein. Der Abschnitt [Manual001] sollte also nun doppelt vorhanden sein, direkt untereinander in der "Manual Section" mit 2 bis 3 Leerzeilen Abstand.

    Diesen soeben darunterkopierten neuen Abschnitt nennen wir dann um in [Manual002]. Die Namen ändern wir für Manual1 in Name=Hauptwerk und Manual2 in Name=Positiv.
    Das sollte dann so aussehen:

    ;------------------------------------------------------------------------------
    ; Manual section
    ;------------------------------------------------------------------------------

    [Manual001]
    Name=Hauptwerk
    NumberOfLogicalKeys=56
    FirstAccessibleKeyLogicalKeyNumber=1
    FirstAccessibleKeyMIDINoteNumber=36
    NumberOfAccessibleKeys=56
    MIDIInputNumber=001
    Displayed=Y
    NumberOfStops=8
    ;Gedeckt 8' Bass
    Stop001=001
    ;Gedeckt 8' Diskant
    Stop002=002
    ;Rohrflöte 4' Bass
    Stop003=003
    ;Rohrflöte 4' Diskant
    Stop004=004
    ;Principal 2' Bass
    Stop005=005
    ;Principal 2' Diskant
    Stop006=006
    ;Quinte 1 1/3' Bass
    Stop007=007
    ;Quinte 1 1/3' Diskant
    Stop008=008
    NumberOfCouplers=0
    NumberOfDivisionals=0
    NumberOfTremulants=0
    DispKeyColourInverted=Y


    [Manual002]
    Name=Positiv
    NumberOfLogicalKeys=56
    FirstAccessibleKeyLogicalKeyNumber=1
    FirstAccessibleKeyMIDINoteNumber=36
    NumberOfAccessibleKeys=56
    MIDIInputNumber=001
    Displayed=Y
    NumberOfStops=8
    ;Gedeckt 8' Bass
    Stop001=001
    ;Gedeckt 8' Diskant
    Stop002=002
    ;Rohrflöte 4' Bass
    Stop003=003
    ;Rohrflöte 4' Diskant
    Stop004=004
    ;Principal 2' Bass
    Stop005=005
    ;Principal 2' Diskant
    Stop006=006
    ;Quinte 1 1/3' Bass
    Stop007=007
    ;Quinte 1 1/3' Diskant
    Stop008=008
    NumberOfCouplers=0
    NumberOfDivisionals=0
    NumberOfTremulants=0
    DispKeyColourInverted=Y


    ;------------------------------------------------------------------------------
    ; Generals sections
    ;------------------------------------------------------------------------------


    Hiermit haben wir ein neues Manual erzeugt und können sogar ab sofort zweimanualig spielen. Die beiden Manuale können getrennt in Midi zugewiesen werden, verhalten sich aber von der Registrierung her noch wie zwei gekoppelte Manuale. Jede Pfeife kann nur einmal ertönen, der selbe Ton auf beiden Manualen gespielt ist also nicht doppelt, sondern erklingt nur einmal.
    < Nachtrag: Das ist so nicht korrekt und führt bei neueren GO-Versionen zu einer Fehlermeldung - siehe im weiteren Verlauf hier >

    Die Registerknöpfe kleben noch etwas unschön direkt über dem oberen Manual. Da wir ja nun mehr Platz haben, können wir den Abstand etwas vergrößern. In der "Organ Section" wird deshalb noch folgende Zuweisung geändert:

    DispTrimAboveManuals=N
    in
    DispTrimAboveManuals=Y

    Nächstes Mal werden wir dem Hauptwerk eine eigene Windlade mit eigenen Registern und eigenen "Pfeifen" spendieren.

    • Offizieller Beitrag

    Ich hatte ehrlich gesagt auch garnicht damit gerechnet, daß das so schon funktioniert, sondern eine Fehlermeldung erwartet. :) Aber als Zwischenschritt fand ich es dann ganz praktisch, damit die Lektion nicht so groß wird. Bisher habe ich immer alle nötigen Schritte auf einmal umprogrammiert und dann erst neu gestartet und evtl. Fehler beseitig.

    Zitat

    Die Suche nach einer musikalisch sinnvollen Aufteilung bleibt eine Fleissaufgabe. :)


    Ich plädiere für ein "Baßmanual" und ein separates "Diskantmanual" ist doch logisch :D

    • Offizieller Beitrag

    Fortsetzung Workshop

    Zitat

    Hiermit haben wir ein neues Manual erzeugt und können sogar ab sofort zweimanualig spielen.


    Also das mit dem Spielen sollten wir uns vorerst noch verkneifen, denn es könnte zu üblen Fehlermeldungen führen! ;)

    Wir bauen nun stattdessen die Hauptwerkswindlade ein:

    In der "Windchest Group Section" kopieren wir ähnlich wie beim Manual, die vorhandene Windlade und setzen die Kopie wieder einfach unter die erste Windlade. Die Namen ändern wir dabei auch analog zu den Manualbezeichnungen. Das sieht dann etwa so aus:

    ;------------------------------------------------------------------------------
    ; Windchest group section
    ;------------------------------------------------------------------------------

    [WindchestGroup001]
    Name=Hauptwerk
    Comment=Windlade Hauptwerk
    NumberOfEnclosures=0
    NumberOfTremulants=0


    [WindchestGroup002]
    Name=Positiv
    Comment=Windlade Positiv
    NumberOfEnclosures=0
    NumberOfTremulants=0


    ;------------------------------------------------------------------------------
    ; Stop sections
    ;------------------------------------------------------------------------------

    • Offizieller Beitrag

    Vorbereitung des Hauptwerkmanuals auf die eigenständige Aufgabe:

    Im Hauptwerk wollen wir nun unsere 4 Register ohne Schleifenteilung verwenden. Es fällt also die Aufteilung in Baß und Diskant fort. Außerdem stellen wir auf die vorbereitete Hauptwerkswindlade neue, zusätzliche Pfeifen, das heißt wir haben dann auch neue Register (=Stops). Im Positiv verwenden wir bereits die Registernummern 001 bis 008 (Siehe Zuweisungen: Stop001=001 usw.). Die selben Registernummern dürfen aber nur einmal vorkommen.

    Um auch die Unterscheidung zwischen Registern von unterschiedlichen Werken zu verdeutlichen, verwenden wir Registernummern die fürs Hauptwerk mit einer "1" Beginnen sollen. Wir nennen die 4 Register die jetzt ins Hauptwerk sollen also 101,102,103,104. Durch dieses System können wir auch später noch das Positiv nachträglich um weitere Register ergänzen und habe so immer einen fortlaufenden Nummernkreis für jedes Werk.

    In der "Manual Section" ändert sich also etwas wie folgt in Manual 1:


    ;------------------------------------------------------------------------------
    ; Manual section
    ;------------------------------------------------------------------------------

    [Manual001]
    Name=Hauptwerk
    NumberOfLogicalKeys=56
    FirstAccessibleKeyLogicalKeyNumber=1
    FirstAccessibleKeyMIDINoteNumber=36
    NumberOfAccessibleKeys=56
    MIDIInputNumber=001
    Displayed=Y
    NumberOfStops=4
    ;Gedeckt 8'
    Stop001=101
    ;Rohrflöte 4'
    Stop002=102
    ;Principal 2'
    Stop003=103
    ;Quinte 1 1/3'
    Stop004=104
    NumberOfCouplers=0
    NumberOfDivisionals=0
    NumberOfTremulants=0
    DispKeyColourInverted=Y

    • Offizieller Beitrag

    Erzeugen der neuen Register für das Hauptwerk

    Nachdem wir nun hoffentlich etwas Übung mit dem Editor erlangt haben und uns schon einigermaßen in der ODF zurechtfinden, kommt jetzt eine etwas anspruchsvollere Aufgabe auf uns zu!

    Im Prinzip ist es nichts Anderes, als das Verdoppeln der Manuale oder Windladen in den vorangegangenen Schritten. Wir verdoppeln den gesamten Bereich "Stop Section".

    Das erste Problem stellt die ungewöhnliche Länge dieses Abschnitts dar. Wir müssen uns dabei sehr konzentrieren und ganz genau den Bereich von Anfang bis Ende Markieren, Kopieren und dann unter dem bisherigen wieder Einfügen.
    Das zweite Problem folgt anschließend, da durch die Länge das ganze dann auch etwas unübersichtlich wird. Am Besten, wenn man vorher noch eine Sicherungskopie der ODF anlegt, falls etwas schief gehen sollte.

    Zu kopieren ist folgender Bereich innerhalb der "Stop Section" (sehr verkürzt dargestellt):


    ;------------------------------------------------------------------------------
    ; Klaviatur man. I Stop section
    ;------------------------------------------------------------------------------


    ;----- Gedeckt 8' Bass
    [Stop001]
    Name=Gedeckt 8' Bass
    DispLabelText=Gedeckt 8' Bass
    NumberOfRanks=1
    NumberOfAccessiblePipes=24
    FirstAccessiblePipeLogicalKeyNumber=001
    DefaultToEngaged=N
    DisplayInInvertedState=N
    DispDrawstopCol=1
    DispDrawstopRow=101
    :
    : ... usw.
    :
    :
    : ... bis
    :
    Pipe056=.\000456\quint113\long\091-G.wav
    Pipe056LoadRelease=Y
    Pipe056ReleaseCount=1
    Pipe056Release001=.\000456\quint113\short\091-G.wav
    Pipe056Release001CuePoint=0
    Pipe056Release001MaxKeyPressTime=70


    < ab hier beginnt dann die "Label Section" >

    • Offizieller Beitrag

    Anpassen der neu erzeugten Hauptwerkregister

    Den in der "Stop Section" nun unten neu eingefügten Abschnitt belassen wir wie gehabt als Positiv.
    Zur Kennzeichnung ändern wir lediglich dessen Überschrift:


    ;------------------------------------------------------------------------------
    ; Klaviatur man. I Stop section
    ;------------------------------------------------------------------------------
    in
    ;------------------------------------------------------------------------------
    ; Positiv man. II Stop section
    ;------------------------------------------------------------------------------

    Den oberen Abschnitt benennen wir analog dazu auch um:


    ;------------------------------------------------------------------------------
    ; Hauptwerk man. I Stop section
    ;------------------------------------------------------------------------------


    Wenn wir uns nun diese "Hauptwerk Stop Section" genauer ansehen, dann fällt auf, daß hier einerseits von "Stops" die Rede ist, und andererseits von "Ranks". Stops bezeichnen den Teil eines Registers, der dem Spieler zugewandt ist, also die "Registerknöpfe". Ein Rank dagegen ist der Teil eines Registers der der Windlade zugewandt ist, nämlich eine Pfeifenreihe. In vielen Orgeln ist eine Pfeifenreihe auch direkt einem "Registerknopf" zugeordnet, was man dann gemeinhin als Register bezeichnet. Dies muss aber nicht zwangsläufig so sein. Es gibt zahlreiche Beispiele von Orgeln, wo die Pfeifenreihen eben nicht unmittelbar einem "Registerknopf" zugeordnet sind. Klassisches Beispiel wäre eine sog. Multiplex-Orgel (Unit-Organ) oder, so wie in unserem Fall, auch ein Register mit geteilten Schleifen und damit zwei "Registerknöpfen" für eine Pfeifenreihe.

    GrandOrgue unterstütz diesen klassischen Fall Registerknopf=Pfeifenreihe mit einer vereinfachten Programmiermöglichkeit. Ein Rank kann unmittelbar in einem Stop definiert werden. In unserem Fall ist aber der Rank getrennt und wird mit zwei Stops angesteuert (Baß und Diskant). Siehe dazu auch die GrandOrgue Hilfe Rank/Stop

    Bisher greifen also jeweils zwei Stops (Baß/Diskant) auf ein Rank (Pfeifenreihe) zu:


    Stop001 + Stop002 ---> Rank001 (Gedeckt 8)
    Stop003 + Stop004 ---> Rank002 (Rohrflöte 4)
    Stop005 + Stop006 ---> Rank003 (Prinzipal 2)
    Stop007 + Stop008 ---> Rank004 (Quinte 1 1/3)


    Im Abschnitt "Hauptwerk Stop Section" müssen wir das nun ändern:


    Stop101 ---> Rank005 (Gedeckt 8)
    Stop102 ---> Rank006 (Rohrflöte 4)
    Stop103 ---> Rank007 (Prinzipal 2)
    Stop104 ---> Rank008 (Quinte 1 1/3)

    Wir löschen dazu zunächst alle 4 "Diskant-Stops" heraus (Bsp. Gedeckt 8):

    ;----- Gedeckt 8' Diskant
    [Stop002]
    Name=Gedeckt 8' Diskant
    DispLabelText=Gedeckt 8' Disk.
    NumberOfRanks=1
    NumberOfAccessiblePipes=32
    FirstAccessiblePipeLogicalKeyNumber=025
    DefaultToEngaged=N
    DisplayInInvertedState=N
    DispDrawstopCol=1
    DispDrawstopRow=100
    DispLabelColour=BLACK
    DispLabelFontSize=Large
    Displayed=Y
    DispImageNum=1
    DispKeyLabelOnLeft=Y
    Rank001=001
    Rank001FirstPipeNumber=25

    Dieser Abschnitt und analog die der anderen 3 Register werden gelöscht!


    Folgende Änderungen sind nun jeweils nötig um nach obigem Schema Stop/Rank die erforderlichen Verknüpfungen zu erreichen:
    Beispielhaft habe ich das Register Gedeckt 8 verändert und die Änderungen Rot markiert. Dies ist analog dazu auch für die übrigen drei Register zu machen.

    ;----- Gedeckt 8'
    [Stop101]
    Name=Gedeckt 8'
    DispLabelText=Gedeckt 8'
    NumberOfRanks=1
    NumberOfAccessiblePipes=56
    FirstAccessiblePipeLogicalKeyNumber=001
    DefaultToEngaged=N
    DisplayInInvertedState=N
    DispDrawstopCol=2
    DispDrawstopRow=5
    DispLabelColour=BLACK
    DispLabelFontSize=Large
    Displayed=Y
    DispImageNum=1
    DispKeyLabelOnLeft=Y
    Rank001=005


    [Rank005]
    Name=Gedeckt 8'
    FirstMidiNoteNumber=36
    NumberOfLogicalPipes=56
    AmplitudeLevel=100
    WindchestGroup=001
    Percussive=N
    HarmonicNumber=8
    Pipe001=.\000456\gedeckt8\long\036-C.wav
    Pipe001LoadRelease=Y
    :
    :
    :
    usw.

    Wichtig ist auch in den Ranks fürs Positiv den Befehl WindchestGroup auf 002 zu setzen, damit die neuen Pfeifen auch wirklich auf unterschiedlichen Windladen stehen!
    WindchestGroup=002

    Die Anweisungen
    DispDrawstopCol=2
    DispDrawstopRow=1
    beziehen sich auf die Anzeigeposition der "Registerknöpfe" wir wählen dafür:

    Spalte 2, Zeile 5 für Gedeckt 8
    Spalte 2, Zeile 4 für Rohrflöte 4
    Spalte 2, Zeile 3 für Prinzipal 2
    Spalte 2, Zeile 2 für Quinte 1 1/3

    Zum Schluß müssen wir auch in der "Organ Section" noch ein paar Einstellungen ändern:

    NumberOfWindchestGroups=2
    NumberOfRanks=8
    DispDrawstopRows=5

    Nun sollten wir endlich - sofern wir alles richtig gemacht haben - mit unserem neuen Hauptwerk 2-manualig spielen können! :D

    • Offizieller Beitrag

    Wenn alles richtig funktioniert, dann sollte es jetzt etwa so aussehen:

    Nordheim_2_small.jpg

    Heute habe ich schon ein wenig auf der neuen 2-manualigen Nordheim gespielt. Es ist erstaunlich, was man jetzt alles damit machen kann. Durch die Manualteilung im Positiv hat man beinahe die Möglichkeiten einer 3-manualigen Orgel. Der Klang ist auch wunderbar Wohnzimmertauglich. Stellt man die Lautstärke recht hoch, dann hat man fast schon ein authentisches Pfeifenpositiv unter den Fingern - ich bin hoch entzückt !!

    Also es lohnt sich wirklich, die Mühe auf sich zu nehmen und die ODF so umzuändern wie beschrieben !! :D


    Wer das bisher nicht so hinbekommen hat, der kann mir eine PN schicken, dann bekommt er genau die ODF mit diesem Zwischenstand hier zum weiteren Bearbeiten.

    Gruß Michael

    • Offizieller Beitrag
    Zitat von Mikelectric

    Auf die unterschiedlichen Möglichkeiten einen Subbass 16´ zu erhalten würde ich im Anschluss nochmal zurückkommen.

    Zuerst sollten wir noch das Pedal einrichten, damit das auch jeder zur Verfügung hat.

    In der "Organ Section" muss zunächst bekanntgegeben werden, dass ein Pedal vorhanden ist:

    HasPedals=Y

    Dann wird das Pedal in der "Manual Section" wie folgt eingefügt (rot)
    Dazu kann man z.B. den Abschnitt [Manual001] kopieren und verändern


    ;------------------------------------------------------------------------------
    ; Manual section
    ;------------------------------------------------------------------------------

    [Manual000]
    Name=Pedal
    NumberOfLogicalKeys=30
    FirstAccessibleKeyLogicalKeyNumber=1
    FirstAccessibleKeyMIDINoteNumber=36
    NumberOfAccessibleKeys=30
    MIDIInputNumber=001
    Displayed=Y
    NumberOfStops=0
    NumberOfCouplers=1
    ;Pedal+Hauptwerk
    Coupler001=001
    NumberOfDivisionals=0
    NumberOfTremulants=0
    DispKeyColourInverted=Y

    [Manual001]
    Name=Hauptwerk
    NumberOfLogicalKeys=56


    Im ersten Schritt wollen wir das Pedal an das vorhandene Hauptwerk ankoppeln können, um dessen Register mitzunutzen.
    Dazu benötigen wir eine Koppel, die wir in die bisher noch nicht vorhandene "Coupler Section" einfügen.
    Die "Coupler Section" erzeugen wir zwischen der "Windchest Group Section" und der "Stop Section":

    ;------------------------------------------------------------------------------
    ; Coupler section
    ;------------------------------------------------------------------------------

    [Coupler001]
    Name=Pedal+Hauptwerk
    DispLabelText=P + HW
    UnisonOff=N
    DestinationManual=001
    DestinationKeyshift=0
    CoupleToSubsequentUnisonIntermanualCouplers=N
    CoupleToSubsequentUpwardIntermanualCouplers=N
    CoupleToSubsequentDownwardIntermanualCouplers=N
    CoupleToSubsequentUpwardIntramanualCouplers=N
    CoupleToSubsequentDownwardIntramanualCouplers=N
    StopControlMIDIKeyNumber=100
    DispDrawstopCol=1
    DispDrawstopRow=5
    DispLabelColour=DARK BLUE
    DispLabelFontSize=Large
    Displayed=Y
    DispImageNum=1
    DefaultToEngaged=N
    DisplayInInvertedState=N
    DispKeyLabelOnLeft=N

    Nun haben wir eine Version mit angehängtem Pedal.
    Den Zwischenstand als ODF gibt es bei mir wieder auf Anfrage per PN !

    • Offizieller Beitrag

    Das Pedal soll nun zusätzlich eine eigene Pedal-Windlade mit einem Subbass 16´ erhalten.

    Wir benötigen also eine weitere Windlade und ein zusätzliches Rank für den Subbass.
    Änderungen in der "Organ Section":


    NumberOfWindchestGroups=3
    NumberOfRanks=9


    In der "Manual Section" für das Pedal wird der Subbass 16´ folgendermaßen eingetragen:


    [Manual000]
    Name=Pedal
    NumberOfLogicalKeys=30
    FirstAccessibleKeyLogicalKeyNumber=1
    FirstAccessibleKeyMIDINoteNumber=36
    NumberOfAccessibleKeys=30
    MIDIInputNumber=001
    Displayed=Y
    NumberOfStops=1
    ;Subbass 16'
    Stop001=201
    NumberOfCouplers=1
    ;Pedal+Hauptwerk
    Coupler001=001
    NumberOfDivisionals=0
    NumberOfTremulants=0
    DispKeyColourInverted=Y


    Die neue Pedal-Windlade wird in der "Windchest group Section" angelegt:


    [WindchestGroup003]
    Name=Pedal
    Comment=Windlade Pedal
    NumberOfEnclosures=0
    NumberOfTremulants=0

    Als Ausgangsbasis für den Subbass 16´ kopieren wir den Stop und den Rank vom Hauptwerk Gedeckt 8´ mit den ersten 30 Tönen (am Anfang der "Stop Section") und machen wieder ein paar kleine, notwendige Änderungen daran um daraus das neue Register zu erhalten, daß dann auf der Pedal-Windlade steht:

    ;------------------------------------------------------------------------------
    ; Stop sections
    ;------------------------------------------------------------------------------


    ;------------------------------------------------------------------------------
    ; Pedal Stop section
    ;------------------------------------------------------------------------------

    ;----- Subbass 16'
    [Stop201]
    Name=Subbass 16'
    DispLabelText=Subbass 16'
    NumberOfRanks=1
    NumberOfAccessiblePipes=30
    FirstAccessiblePipeLogicalKeyNumber=001
    DefaultToEngaged=N
    DisplayInInvertedState=N
    DispDrawstopCol=1
    DispDrawstopRow=3
    DispLabelColour=BLACK
    DispLabelFontSize=Large
    Displayed=Y
    DispImageNum=1
    DispKeyLabelOnLeft=Y
    Rank001=009


    [Rank009]
    Name=Subbass 16'
    FirstMidiNoteNumber=36
    NumberOfLogicalPipes=30
    AmplitudeLevel=100
    WindchestGroup=003
    Percussive=N
    HarmonicNumber=4

    Pipe001=.\000456\gedeckt8\long\036-C.wav
    Pipe001LoadRelease=Y
    Pipe001ReleaseCount=1
    Pipe001Release001=.\000456\gedeckt8\short\036-C.wav
    Pipe001Release001CuePoint=0
    Pipe001Release001MaxKeyPressTime=130
    :
    : usw.
    :
    :
    : bis
    :
    Pipe030=.\000456\gedeckt8\long\065-F.wav
    Pipe030LoadRelease=Y
    Pipe030ReleaseCount=1
    Pipe030Release001=.\000456\gedeckt8\short\065-F.wav
    Pipe030Release001CuePoint=0
    Pipe030Release001MaxKeyPressTime=130


    Und fertig ist das Pedal !

    • Offizieller Beitrag

    Nun möchte ich gerne die Diskussion über den Subbass 16´ wieder weiterführen!

    Die Basis zum Ausprobieren ist jetzt für jeden Workshopteilnehmer gegeben.

    Im Moment habe ich hier einen Subbass 16´ aus Gedeckt 8´ generiert mit der Änderung von nur einer einzigen Ziffer - kürzer und schneller dürfte kaum möglich sein ;) :

    HarmonicNumber=4

    Dies funktioniert so allerdings nur, wenn man in GrandOrgue eine andere Stimmung (Temperament) als die original Stimmung auswählt.
    Aber auf diese Weise kommt man in GO sogar ganz einfach auf einen gedeckten 32´:

    HarmonicNumber=2

    Die Funktion HarmonicNumber habe ich hier in der Nordheim ODF bei jedem Rank verwendet - vielleicht ist es dem einen oder anderen schon aufgefallen. Diese Funktion ist grundsätzlich immer erforderlich, wenn ein Sampleset mit unterschiedlichen Stimmungen eingesetzt werden soll. Bei der Änderung von "Original temperament" auf z.B. "Equal temperament" (Gleichstufige Stimmung) werden von GO alle Samples in der Tonhöhe geändert und auf die neue Stimmung angepasst. Allerdings muß GO zuvor auch für jede Pfeife wissen, welcher Fußlage sie zugeordnet ist. Dies geschieht eben über HarmonicNumber (siehe GO-Hilfe). Ist diese Zuordnung nicht angegeben, so geht auch diese Umstimmung voll daneben und die Orgel ist somit um bis zu mehrere Oktaven verstimmt!

    Besonders aufwändig ist diese Anpassung für Mixturen, da hier nicht das ganze Register einer bestimmten Fußlage zuzuordnen ist. Hier muß der Befehl HarmonicNumber sogar auf jedes Einzelsample mit unterschiedlichen Werten angewendet werden, um zu brauchbaren Ergebnissen zu gelangen. Hier ist mitunter auch nur durch Experimentieren weiterzukommen, wenn die genauen Fußlagen der repetierenden Mixturen nicht bekannt sind. Aber das vielleicht zu einem späteren Zeitpunkt.

    Es gibt nun sicherlich mehrere Wege, den Subbass 16´ zu erhalten. Die Möglichkeit die Samples einzeln extern in der Tonhöhe zu verändern ist eine weitere Möglichkeit, von der ich allerdings eher abraten würde. Wenn es sich nicht um eigene Aufnahmen der Pfeifen handelt, kann man sehr schnell Lizenzrechtliche Probleme bekommen, da mancher Hersteller die Veränderung der Samples nicht erlaubt. Zumindest begibt man sich bei Veröffentlichung solcher Dinge auf heißes Gelände!!

    Ziel soll bei der Umsetzung fremder Samplesets als GO-ODF bleiben, am Original-Set und dessen Dateistrukturen NICHTS zu verändern, sondern nur mit der eigen erstellten ODF, auf die man dann auch das Urheberrecht hat, darauf zuzugreifen!

    • Offizieller Beitrag

    Wenn man den Ton c' (Subbaß) mit dem Ton c (Gedackt) vergleicht, fällt ein Qualitätsunterschied auf.

    Das Pitchen ist natürlich eine ziemlich brutale Methode ein abgeleitetes Register zu erzeugen. Der im Sample vorhandene Hall wird ja auch komplett mit verändert. das gesamte Oberton-Gefüge stimmt eigentlich überhaupt nicht mehr! Aber für ein Subbass 16´-Gegrummel ist es hier noch gerade ausreichend, wenn man keine echten Samples dafür hat. Bei so wenig Hall wie bei der Nordheim, scheint der Effekt nicht sehr zu stören.

    Eine weitere, vielleicht elegantere Möglichkeit den Subbass zu erzeugen wäre, das Register Gedeckt 8´ zunächst um eine Oktave nach oben zu verlegen (zu Shiften, c0 wird zu c1 usw.), und nur für die dann fehlende unterste Oktave gepitchte Samples zu verwenden. D.h. bis auf die unterste Oktave bleiben alle Samples authentisch! Für die unterste Oktave überlegt man sich dann welche Samples man sinnvoll verwenden kann um noch möglichst wenig pitchen zu müssen. Im Prinzip müsste man dann das tiefe C für die gesamte Oktave als Pitch-Quelle verwenden - allerdings dürfte sich das auch wieder recht steril anhören.

    Hier wäre es gut, weitere Experimente zu unternehemen.

    • Offizieller Beitrag

    Weiterer Ausbau der Nordheim-Orgel:

    Nachdem wir jetzt einige Erkenntnisse über das Verändern von Tonhöhen der Samples gewonnen haben, würde ich gerne hingehen und das Positiv als Solowerk noch etwas weiter ausbauen. Zum einen könnten wir dort einen Tremulanten und einen Schweller einbauen und zum anderen noch ein weiteres abgeleitetes Register erzeugen. Ein zusätzliches Aliquotregister, nämlich eine Quint 2 2/3´ würde mehr Farbvarianten ins Spiel bringen und sogar die Möglichkeit eines zusammengesetzten Kornetts bieten.

    An diesem Register können wir auch gut unsere Kenntnisse zum Pitchen noch weiter vertiefen, denn in einer wesentlich höheren Tonlage ist vielleicht anderes Vorgehen nötig als beim relativ unkritischen Subbass 16.

    Zuvor meckert aber die aktualisierte GO Version 0.3.1.1248 noch ein paar Dinge an, die ich zuerst bereinige:

    messages01.jpg

    Die "Comments" sind Kommentare, die zu Urzeiten von HW1 mal eingführt wurden, aber eigentlich nie benutzt wurden. In den allermeisten Fällen waren sie zwar in den ODF´s enthalten, wurden dann aber nicht mit weiterem Text versehen. Auf solch unnütze Dinge kann man gut verzichten, zumal wir ja jederzeit die Möglichkeit haben an jeder Stelle eine Kommentarzeile einzufügen um wichtige Dinge im Programm zu erklären. Diese Kommentarzeilen beginnen in der ersten Stelle einfach mit einem Semikolon (";") und darauf folgt beliebiger Kommentartext. Wir entfernen also diese 3 Zeilen in der "Windchest Group" ersatzlos. Der Zusammenhang ergibt sich sowieso selbstredend aus der Bezeichnung des Windchest-Namens.

    Bei den übrigen Meldungen handelt es sich jeweils um ein Leerzeichen am Anfang einer Leerzeile, das bei den Editiervorgängen versehentlich da übriggeblieben ist. Diese entfernen wir einfach in den angegebenen Zeilennummern und haben nun wieder eine saubere ODF.

    Nicht vergessen dürfen wir natürlich, beim Subbass 16´ jetzt endgültig noch den Befehl PitchTuning einzufügen:


    [Rank009]
    Name=Subbass 16'
    FirstMidiNoteNumber=36
    NumberOfLogicalPipes=30
    AmplitudeLevel=100
    WindchestGroup=003
    Percussive=N
    PitchTuning=-1200
    HarmonicNumber=4
    Pipe001=.\000456\gedeckt8\long\036-C.wav
    Pipe001LoadRelease=Y
    :
    :

    • Offizieller Beitrag

    Wir bauen nun gleichzeitig einen Tremulanten und einen Schweller ins Positiv ein:

    In der "Organ Section" geben wir nun zunächst diese neuen Teile bekannt:

    NumberOfEnclosures=1
    NumberOfTremulants=1

    Zwischen "Windchest Group Section" und "Coupler Section" fügen wir die beiden neuen Sections ein:


    ;------------------------------------------------------------------------------
    ; Enclosure section
    ;------------------------------------------------------------------------------

    [Enclosure001]
    Name=Positiv
    DispLabelText=Positiv
    MIDIInputNumber=003
    AmpMinimumLevel=10

    ;------------------------------------------------------------------------------
    ; Tremulant section
    ;------------------------------------------------------------------------------

    [Tremulant001]
    Name=Tremulant
    DispLabelText=Tremulant
    Period=250
    AmpModDepth=15
    StartRate=80
    StopRate=80
    StopControlMIDIKeyNumber=99
    DispDrawstopCol=1
    DispDrawstopRow=4
    DispLabelColour=DARK BLUE
    DispLabelFontSize=Large
    Displayed=Y
    DispImageNum=1
    DefaultToEngaged=N
    DisplayInInvertedState=N
    DispKeyLabelOnLeft=N

    Dann müssen wir dem Manual des Positiv das Vorhandensein des Tremulanten mitteilen:


    < Manual Section, Manual002 >

    NumberOfTremulants=1
    Tremulant001=001

    Und die Windlade des Positiv müssen wir mit Schweller und Tremulant verbinden:


    < Windchest group Section >

    [WindchestGroup002]
    Name=Positiv
    NumberOfEnclosures=1
    Enclosure001=001
    NumberOfTremulants=1
    Tremulant001=001

    • Offizieller Beitrag

    Erzeugen des Aliquotregisters Quinte 2 2/3´ im Positiv

    Zunächst müssen wir im Display im Registerbereich über den Manualen Platz für weitere Register schaffen.

    In der "Organ Section" haben wir dafür bisher 4 Spalten je 2 Zeilen definiert. Wir erweitern die Spalten auf 5

    < Organ Section >

    DispExtraDrawstopRows=2
    DispExtraDrawstopCols=5

    Die Registerknöpfe unseres neuen Aliquotregisters sollen zwischen dem Prinzipal 2´ und der Quinte 1 1/3´ ihren Platz finden.
    Dazu verschieben wir die Registerknöpfe der Quinte 1 1/3´ um eine Spalte nach rechts:

    < Stop Section, Stop007 >

    DispDrawstopCol=5
    DispDrawstopRow=101

    < Stop Section, Stop008 >

    DispDrawstopCol=5
    DispDrawstopRow=100

    An der bisherigen Position Spalte 4 sollen nun die Registerknöpfe für die neue Quinte 2 2/3´ zu liegen kommen!

    Aufgabe:

    Erzeuge selbständig mit den bisher erworbenen Kenntnissen ein abgeleitetes Register Quinte 2 2/3´ im Positiv !!
    Hilfestellungen:
    Das Register wird zunächst aus einem anderen Register des Positiv kopiert und als Stop009 und Stop010, sowie Rank010 am Ende der bisherigen "Stop Section" eingefügt.
    Probiere mit mindestens 2 unterschiedlichen Varianten aus, ob man mit reinem Pitching oder mit Shifting und Pitching der unteren Oktave einen besseren Klang bekommt.
    Denkbare Ausgangsregister wären wohl Rohrflöte 4´, Prinzipal 2´ oder Quinte 1 1/3´. Was liefert die besten Ergebnisse??
    Das erzeugte Register muß unter Umständen auch im Lautstärkepegel für den Zweck angepasst werden (Siehe GO-Hilfe)
    Welcher Weg bringt das klanglich beste Ergebnis  :?:

    • Offizieller Beitrag

    Ich habe die Quinte 2 2/3´ jetzt mal aus der Rohrflöte 4´ erzeugt. Nur mit Pitching und Amplitude von 70 hört sich das schon garnicht mal so schlecht an. Aber vielleicht gibts ja noch eine bessere Lösung ?!


    Wir nennen die Quinte 2 2/3´ in Zukunft Nasat 2 2/3´

    Allerdings haben wir nun ein kleines Problem. Beim Shiften haben wir zwar den Vorteil die Qualität des Samples zu erhalten, aber wenn wir nicht genau um eine Oktave shiften (oder auch pitchen) möchten, dann verschiebt sich eben auch die Stimmtemperatur-Kurve des geshifteten Registers. In diesem Fall um eine Quinte. Das wäre nur unbedenklich, wenn die Orgel exakt gleichstufig gestimmt ist, also exakt 100 cent von Stufe zu Stufe. Bei jeder anderen Stimmtemperatur gibt es Differenzen von einigen cent.

    Mit HarmonicNumber=24 für einen 2 2/3´ bekommt man das von GO automatisch wieder gestimmt, sofern man eine andere als die originale Stimmung verwendet. Für die originale Stimmung hingegen ist mir bisher nur die Möglichkeit bekannt, jedes Einzelsample von Hand auf die gelegte Stimmung anzugleichen mit Pipe999PitchCorrection.

    Frage in die Runde: Gibt es zu dieser Problematik eine einfache Lösungsmöglichkeit die Samples auf eine unbekannte Stimmung zu pitchen, oder wenigstens z. B. um die Differenz zweier Samples in cent zu ermitteln?