Programmieren eines Crescendopedal für Grandorgue

  • Hallo zusammen.

    Jetzt mal ne Frage an die Profis hier..

    kennt ihr eine ODF mit programmiertem Crescendopedal/Rollschweller incl. Bilddarstellung?

    Das ist meine nächste Aufgabe, bin bisher nicht fündig geworden beim Durchsuchen diverser ODF-Dateien

    Gruß

    Bernd

  • Ich fürchte dass das nicht geht. Sogar ohne programmierungsmöglichkeit glaube ich nicht dass man ein "analoges" signal vom Pedal in "Switch" Befehle umwandeln kann.

    Vielleicht eine Erweiterung für GO in der Zukunft?

    Aber... gibt es denn Leute die ein Crescendopedal tatsächlich benutzen?

  • Die Programmierung der REgister findet man unter "Anzeige-Crescendopedal". Das funktioniert auch alles schon.

    Mir geht es hier um die Programmierung der ODF, also Darstellung am PC mit Image Dateien für die Registeranzeige rtc.

    Gruß

    Bernd

  • Die Frage hatte ich auch schon mal gestellt, Crescendo-Pedal bzw. Rollschweller . Ich hatte danach (2018) Mail-Kontakt mit Crofelix, der mir auch seine Lösung gezeigt hat, aber das Ding ist seeehr aufwändig programmiert. Doch "Hut ab", das war ein nicht destruktives und programmiertes "Crescendopedal", das durch (wenn ich recht erinnere) 6 "Dioden" (switches) visualisiert wird. Da es nicht meine ODF ist, möchte ich es hier aber nicht tutti completti einstellen, es war damals sowieso noch nicht fertig und ich habe seit 2 Jahren davon auch nichts mehr gehört. Ein kleiner Ausschnittmöge genügen:

    [Stop039]

    Name=Flöte 2'

    FirstAccessiblePipeLogicalKeyNumber=1

    NumberOfAccessiblePipes=61

    FirstAccessiblePipeLogicalPipeNumber=1

    NumberOfLogicalPipes=61

    WindchestGroup=4

    Displayed=N

    Function=Or

    SwitchCount=4

    Switch001=039

    Switch002=083

    Switch003=084

    Switch004=088

    [...]

    [Switch088]

    Name=

    ;Crescendo IV. Stufe

    DefaultToEngaged=N

    Displayed=Y

    DisplayInInvertedState=N

    DisplayAsPiston=N

    PositionX=500

    PositionY=120

    ImageOn=.\ConsoleImages\LEDan.png

    ImageOff=.\ConsoleImages\LEDaus.png

    Funktioniert hat die Verbindung zu diesen Switches, indem man die Midi-Events vom Spieltisch-Schweller so genutzet hat, dass beim Öffnen des Schweller in einer bestimmten Position ein Switch anging und beim Schliessen wieder deaktiviert wurde.

    Da ein General-Piston eigentlich genauso funktioniert wie die o.g. selbstgebauten LED-Switche könntet Ihr auch ein paar Generals definieren als Stufen eines Crescendos. Die Generals haben immerhin den Charme, dass man die relativ einfach in der ODF zusammenbauen kann (siehe meine sample sets, und außer mir gibt's ja noch andere Excelisten hier...). Allerdings wäre das dann immer noch ein destruktives Crescendo, was auch der Grund war, dass ich damals das Interesse am Programmieren von Crescendo-Pedalen verloren habe, Der zweite Grund war, dass mein Spieltisch nur einen Schwelltritt hat (ich nutzte den unteren Werte-Bereich für den Lautstärkeschwelle und den oberen Werte-Bereich für die Crescendo-Funktion). Bin wie gesagt davon aber wieder ganz weg...

  • Ok, offenbar gibt es doch möglichkeiten, schön! Die Anzahl der benötigte Schalter wird aber sehr gross (Stops x Stufen x 2) oder so.

    Geht eigentlich nur wenn man der ODF mit Hilfe eines Programs generiert. Ich arbeite jetzt an PHP Funktionen um Billerbeck zu generieren - alle Schalter werden automatisch generiert... habe gerade die Schalter für Tremulanten-wahl gemacht. Das Crescendo-pedal hat für mich keine grosse Priorität, aber wenn alles sonnst funktioniert könnte ich ein Versuch machen. Ziel wäre es zu machen wie hier in HW: http://www.sonusparadisi.cz/media/Foto/Bil…k_Screen_3_.jpg

  • Dit Stops oder Generals lassen sich mit Excel ja ganz gut herstellen. Aber leider haben wir dann auch eine destruktive Variante die nicht die Handregister berücksichtigt.

    Ein Wiederaktivieren der gewählten Handregister kann ich problemlos durch rücksetzen der Midi-Hardware in dem entsprechenden Kanal erreichen. Das habe ich schon ausprobiert. Das wäre über eine Logik ansteuerbar mit der die Enable-Leitung des demultiplexers gesetzt bzw gelöscht wird. Deshalb habe ich auch zwei ReedKontakte in die Fußrasten eingebaut. Ich habe nur noch keine Lösüng wie ich dieses Verfahren mit dem Rollschweller der über ein Potentiometer arbeitet nutzen kann.

    Es bleivt spannend

    Gruß

    Bernd

  • Also, jetzt verstehe ich nicht genau wo dein Problem liegt.

    Variant 1.

    Potentiometer geht an midi Interface, midi Interface gibt Control Change messages (0-127).

    In GO konfiguriert man dann das Crescendopedal - aber dann hat man die destruktive Variante (mit 32 Stufen).

    Man kann aber diese "Control Change messages" auch benutzen um ein Switch zu steuern. Bis Heute wusste ich nicht wie (sowie ich oben schrieb...). Geht aber einfach. Switch selektieren (aber wie??? wenn der Switch nicht im GUI sichtbar ist...), und in "Midi-Settings for xxx" zum Beispiel:

    Event: Bx Controller

    Lower limit: 65

    Upper limit: 127

    Hat man z.B. 10 Crescendo-Stufen, macht man Lower limit: 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, und Upper limit immer 127, für 10 Switches. Diese Switches dann mit OR funktion an gewünschte Stops hinzufügen (Crofelix Lösung!). Einfach, nicht-destruktiv, aber nicht anwender-programmierbar. Um es programmierbar zu machen braucht man noch eine Menge Schwitches dazu. Geht aber. Man muss aber als anwender (nicht als ODF-macher) die Verbindung von Midi-mitteilungen auf Switch-aktivierung machen. Bei 10 Stufen geht das noch, aber bei 32 oder 64 wird es schon langweilig. Vieleicht zu automatisieren wenn man die .cmb Datei bearbeitet... Excel, oder wie ich es mache, PHP kan ja die Instruktionen generieren.

    Variant 2 wäre dass man vom midi Interface "Program Change" oder "Note On/Off" Mitteilungen bekommt. Auch dann muss man diese im Midi Settings für jede Switch (also einmal für jede Stufe) einstellen. Sonst alles wie in Variant 1.

    Ich programmiere mein midi Interface selbst (mache Elektronikdesign und Programmierung mit Arduino) und kan also machen was ich will.

    Ein ODF-Beispiel habe ich bis jetzt noch nicht - es wird wohl noch ein Par Wochen dauern bis ich alles andere fertig habe. Aber ich glaube zu wissen wie ich es machen kan.

    Wenn man aber alle Register von midi aus steuert, gibt es noch ein Variant 3, wobei GO gar nicht zu wissen braucht dass es ein Crescendopedal gibt. Man kan das ganze im midi Interface programmieren. Aber dann kan man als Benutzer (Organist) keine änderungen machen ohne die Programmiersprache des Kontrollers zu verstehen... Vorteil ist aber dan man nicht für jedes Orgel seine eigene ODF-Datei machen muss.

    Ideal wäre wenn die Funktionalitet in GO integriert würde...

    • Offizieller Beitrag

    Der General wird so programmiert, dass er beim Einschalten bestehende Register stehen lässt.

    Wenn man dann bei jeder Crescendostufe (die ja Register beeinflusst) und Decrescendostufe (die rigeros abschaltet) im Millisekunden Bereich den General dazuschaltet hat man immer die für jede Walzenstufe programmierten Register und die im General gespeicherten Handregister aktiv.

    Ich habe auch noch die Möglichkeit, die Register intern in der Orgel zu speichern und von dort aus dazu zu schalten, falls es im GO zu Problemen kommen sollte.

    Die Zeit, in der der General der jeweiligen Crescendo- Decrescendostufe hinterher geschaltet wird, habe ich ich in der Elektronik mit zwei Grenzwerten ermittelt:

    1) So lang, dass man das Zuschalten des Generals hört

    2) So kurz, dass GO das Zuschalten nicht mehr sicher annimmt.

    Danach das Zeitintervall als Mittelwert der beiden Zeiten wählen.

    Das funktioniert bisher zuverlässig.

    Ich bin gerne bereit, kostenlos Schaltungen inkl. Layout für Forenmitglieder zu entwickeln, die auf jede spezielle Gegebenheit zugeschnitten sind.

    Für bestückte und geprüfte Leiterplatten inkl. Schaltung, Stückliste und Anschlussplan entfallen nur vorher definierte Materialkosten. Im Forum einschl. Piotr Grabowski wird viel auf diese Weise getan, an die ich mich gerne anschließe.

  • Im ODF würde ich das so machen (nur das wichtigste). Nicht getestet... Schweller mit 3 Stufen.

    Ungefär wie Insulaner schon schrieb, aber erweitert mit Crescendoprogrammiermatrix wie in Billerbeck.

    [Stop00x]

    SwitchCount=4

    ; SwitchCount = Stufen + 1 (man könnte auch noch ein Tutti dazu machen, dan wäre es +2)

    Function=Or

    Switch001=100

    Switch002=1

    Switch003=2

    Switch004=3

    ; Switch100: Drawstop im Benutzerinterface (ein Switch für jeden Stop)

    [Switch100]

    DefaultToEngaged=N

    Displayed=Y

    ; Switch 1-3: 3 Stufen für Stop "x". Stop "y" hätte die gleiche werte für Switch002, aber andere für Switch001

    ; Diese Switches sind unsichtbar

    ; Anzahl Switches: Stops x Stufen

    [Switch001]

    SwitchCount=2

    Function=And

    Switch001=11

    Switch002=201

    [Switch002]

    SwitchCount=2

    Function=And

    Switch001=12

    Switch002=202

    [Switch003]

    SwitchCount=2

    Function=And

    Switch001=13

    Switch002=203

    ; Switch 11-13 Crescendoprogrammiermatrix - hier nur für Stop "x".

    ; Die Defaults hier machen das Stop "x" zugeschaltet wird in Stufe 2 und 3, nicht in 1

    ; Anzahl Switches: Stops x Stufen

    [Switch011]

    DefaultToEngaged=N

    Displayed=Y

    [Switch012]

    DefaultToEngaged=Y

    Displayed=Y

    [Switch013]

    DefaultToEngaged=Y

    Displayed=Y

    ; Switch 201-203 Crescendopedal inputs. 3 Stufen = 3 Switches.

    ; Diese Switches werden vom Schwellerpedal gesteuert. Also jede Switch über midi am Pedal koppeln.

    [Switch201]

    Displayed=Y

    [Switch202]

    Displayed=Y

    [Switch203]

    Displayed=Y

    ; Total Anzahl Switches: Stops + Stufen + 2 x Stops x Stufen

    • Offizieller Beitrag

    Stimmt. Die spezielle Elektronik habe ich entwickelt, ein Layout erstellt und die Platine bei Conrad in Auftrag gegeben.

    Dann bestückt, getestet und die Zeitdifferenz eingestellt.

    Das ist einmalig notwendig.

    Die Elektronik lässt sich auf einen Orgelinternen Speicher umstellen, der dann auch dazugeschaltet wird. Außerdem kann ich die Walze auch Orgelintern über die Setzer programmieren und steuern.

    Über Pistons Sequenzer auf / ab lässt sich dann die Walze steuern.

    Die Schaltung ist abhängig von den Gegebenheiten vor Ort

  • Für Billerbeck wären es also 90 + 63 + 2 x 90 x 63 (weil auch Couplers mit dabei sind) = 11493.

    http://www.sonusparadisi.cz/en/organs/germ…iter-organ.html

    GrandOrgue is bis jetzt auf 999 begrenzt.

    Ich finde das klasse, dass diese uralte Idee von euch aufgegriffen wurde, aber ihr merkt, dass dies m.E. zumindest derzeit eine Sackgasse ist. Selbst wenn die GO-Programmierer uns 100.000 Switches statt 1000 gönnen würden, ist das ein irrer Overhead in einem ODF, selbst wenn der ODF-Code dafür generiert würde.

    Stattdessen hoffe ich, dass das ja bereits in GO vorhandene Crescendopedal erweitert wird, wie das in Hauptwerk ja auch möglich ist: Zum einen, dass Handregister bei Nutzung des Crescendopedals nicht mehr abgewählt werden und zum anderen , dass man eine Belegungsmatrix für das Crescendo "einfach" an einer Stelle der ODF hinterlegen kann und es dann beim Programmstart von GO ausgelesen wird.

    Vielleicht könnte man für so was eine Daten- und Programmspezifikation schreiben, die wir dann an die GO-Entwickler schicken. Vor drei Jahren war Martin leider nicht auf meinen Vorschlag angesprungen, aber vielleicht hat ja von denen wieder jemand Zeit und Lust dies als neues Feature in einer neuen GO-Version unterzubringen...

  • Das sind ja schon ganz tolle Ansätze hier. Ich sehe dass hier sowohl Elektronik-Profis wie Programmierprofies am Werk sind.

    Vielen Dank Rainer auch für das Angebot bei der Platinenerstellung behilflich zu sein. Seit meinen Elektronikzeiten vor 40 Jahren, als ich Platinen mit Hand bemalt und mit Eisen-III-Chlorid geätzt habe hat sich vieles entwickelt. Meine Schaltungen werden derzeit maximal auf Rasterplatinen aufgebaut. Hier kommt man schnell an die Grenzen des sinnvoll machbaren. Ich arbeite mich gerade völlig unbedarft in diese Themen ein und bin froh schon so weit gekommen zu sein. Sowohl auf der Hardwre-Seite, z.B. das Rücksetzen der Demultiplexer, wie auch vor Euren Programm ansätzen in der ODF.

    Vor Eurer Arbeit ziehe ich schon mal den Hut...Chapeau

    Gruß

    Bernd

  • ... ist das ein irrer Overhead in einem ODF, selbst wenn der ODF-Code dafür generiert würde.

    Vielleicht. Ein ODF von Hand schreiben ist auf jedem Fall nicht machbar. Wenn es um ca. 20.000 .wav Dateien geht, mit einige Parameter für jede Datei, muss man eigentlich davon ausgehen dass kein Mensch ein ODF schreiben will oder kann. Dafür gibt es Rechner!

    Einerseits bin ich ganz damit einverstanden dass man die Funktionalität in GO erweitern muss.

    Andererseits:

    - Sampleset-entwickler (oder Übersetzer...) brauchen Flexibilität. Also, gerne Unterstützung für 100.000 Switches, und viel mehr Switch-ähnliche Funktionen. Zum Beispiel nicht nur digitale Schalter sondern auch Analoge, mitt Funktionen wie ADD, SUB, MUL. Digitale Schalter mit Speicher, Verzögerung.

    - Ohne Werkzeuge für ODF-generierung kommen wir nicht weiter. Im Moment konzentriere ich mich auf PHP-Funktionen die ODF-Code generieren. Ich bin ziemlich weit gekommen - wenigstens wenn im Sampleset nicht zu viele Ausnahmen dabei sind.

    Es wäre also schön wenn jemand GO auf 100.000 Switches erweitern würde... dann mache ich ein ODF der davon 12.000 braucht. Welche Erweiterungen man dann sonnst noch brauchte ist etwas worüber ich dan etwas später nachdenken werde.