Programmieren eines Crescendopedal für Grandorgue

    • Offizieller Beitrag

    Alles schon klar.

    In der Exceltabelle gehe ich vorzugsweise über Stops. Die kann man z.B. in einer Walzenstufe für ein Register einschalten und bei Decresc wieder abschalten. Dann muss man das Register in den höheren Stufen nicht weiter berücksichtigen. Das spart Arbeit und macht die Verwirklichung einfacher ( hoffe ich )

    Bin weiter dran.

    Immer noch macht mir die Ansteuerung Kopfschmerzen. 32 Stufen mit Drawstops einrichten und mit MIDI verknüpfen bedeutet für die Walze 32 MIDI-Controler und Einrichten eines "Cresc. Stop jamb"

    Ob man das unsichtbar hinbekommt? Noch habe ich dafür keine Idee. Mit meinen vielen Ideen kommt vielleicht ein Forenmitglied auf einen Blitzgedanken.

    Momentan bastel ich an einer Binärfunktion.

    Dann bräuchte man für 31 Stufen nur 5 Drawstops für MIDI.

    Am besten ist in der ODF eine Auf- und Abschaltung zu konstruieren, die durch mehrfachen Betätigen einer "Cresc-Taste" hochschaltet und umgekehrt bei der "Decresc.-Taste' runterschaltet. Ähnlich der GO eigenen Crescendofunktion.

    Bin am tüfteln. Wenn das klappt kann man auf einem Panel noch zwei Drawstops einfügen. Das wäre eine Erleichterung.

    Schwellpedal habe ich noch einmal getestet und das Poti auf Endanschlag eingerichtet und eingepackt.

    Geht morgen zur Post. Hab ich leider nicht eher geschafft. Viel Freude damit.

    Ich selbst freu mich wenn ich jemand damit helfen und eine Freude machen kann

    Gruß Rainer

  • Wir tüfteln hier mit unterschiedlichen Ansätzen, Das ist interessant.

    Rainer, wird die Matrix in die ODF geschrieben oder lässt du die Befehle in Excel erzeugen und importierst sie dann in die ODF?

    Das ist ja mein Ansatz bisher

    Gruß

    Bernd

    • Offizieller Beitrag

    Die Matrix in die ODF schreiben finde ich unübersichtlich. Meine Idee ist den Einschaltpunkt und Ausschaltpunkt eines Registers in der Exceltabelle mit "x" zu kennzeichnen. Dann benötigt man keine weiteren Markierungen eines jeweiligen Registers. Würde man logische Verknüpfungen über die Tabelle vornehmen, müsste man für jedes Register in jeder Walzenstufe "x" oder "" markieren.

    Mehrarbeit und Anzahl Switches

    Dann mit einer "Wenn"-Abfrage einen Text auf Blatt 2 formatiert generieren, der jeweils immer ein und denselben Grundbefehl mit unterschiedlichen Stopnummern, Switchnummern enthält.

    Blatt 2 wird dann in die ODF kopiert. Wegen der festen Kombinationen und der mit ihnen verbundenen And, sowie HR und Cresc mit Or verknüpft benötigt man dafür einen zweiten Stop.

    Ich hab gedanklich noch zwei Funktionen zu prüfen und umzusetzen

    1) die Ansteuerung mit wenigen MIDI-Befehlen

    2) zu erreichen, dass bei Verwendung von Register-Tastern im Spieltisch diese auch die im Cresc plus HR wirksamen Register anzeigen. Finde ich besser als eine Cresc-Anzeige.

    Bei deiner Orgel wird ja die Anzeige mechanisch gesteuert. Dazu evtl LEDs über den Wippen als Rückmeldung. Die LEDs stören auch nicht so sehr den Stil des Spieltisches

    Gruß Rainer

  • Ho riletto dall'inizio tutto quanto, ed ora, a costo di sembrare inopportuno e antipatico, volevo fare una precisazione:

    Personalmente inseguo il sogno di un Crescendo fin dalla prima installazione di MyOrgan,

    e anche la versione semplice e poco curata che esiste oggi su GrandOrgue per me è comodissima. Ma è ovvio che non basta.

    Riflettendo sulle prove descritte con gli interruttori la prima cosa che mi viene in mente è che negli organi reali la staffa del crescendo è attivata a step,

    otto o volte dieci step , ma comunque si passa da una posizione fissa ad un 'altra,

    quindi diciamo un numero di posizioni più uno per il silenzio di fermo a pedale abbassato.

    Nel nostro programma invece abbiamo già il grande problema delle 32 posizioni del controllo continuo,

    data dai valori del potenziometro del pedale di espressione che gestisce i 127 dati midi.

    Per scavalcare questo problema ho sempre memorizzato una posizione identica per 4 valori del crescendo (32) fino ad ottenere un silenzio a pedale abbassato e 7 livelli passo passo fino ad arrivare al valore 32.

    tutto funziona alla perfezione, ma è difficile gestire piccoli movimenti del pedale, gli spazi tra un livello e un altro sono troppo brevi e tutto risulta instabile.

    Pensavo allora che GrandOrgue non riconosce dei veri e propri passi di livello ma una piccola variazione di corrente che cambia nel potenziometro del pedale.

    E qui il mio ragionamento si è fermato perché di fatto esiste una differenza fisica fra la fattezza costruttiva di un pedale crescendo reale che funziona a valori fissi con resistenze di vari KOhm e la variazione di piccolissime correnti date dal controllo continuo del pedale d'espressione (midi) che noi usiamo come crescendo.

    a tutto questo si aggiunge anche il problema che la variazione del crescendo distrugge la programmazione dei registri...

    ed allora stavo pensando che sembra sbagliato l'approccio nei ragionamenti che ho letto fin qui, perché fisicamente, in una consolle di un organo a canne reale,

    esiste una doppia e separata connessione per attivare un registro, ci si arriva sia dal crescendo che dalle placchette o tirante,

    Allora pensando alla composizione di un ODF per avere un crescendo che non distrugga la programmazione dei registri esistenti

    io inserirei un manuale gemello ed invisibile con gli stessi registri (invisibili ma gemelli con quelli reali con la funzione AND) impostati come "riferimento" (cosi non aumentiamo la ram) in modo da usare nel crescendo i registri del manuale invisibile ed avere nessuna variazione sul display riguardo i registri già attivi.

    il solo problema sembra essere che il crescendo dovrebbe escludere, durante la discesa, i registri già precedentemente attivi come accade nella logica cablata degli organi reali.

    Non sono sicuro di essere riuscito a spiegarmi bene, tuttavia ho un'idea della programmazione per invertire la funzione on / off non sia così semplice.

    Spero che a qualcuno sia utile la mia riflessione.

    Ein Finger zeigt auf den Mond.

    Schade für den, der auf den Finger schaut.

    • Offizieller Beitrag

    Mein Gedanke ist: Wenn man die gesamten in GO definierten Stops in Excel Blatt2 ff kopiert und dann in GO löscht hat man schon eine Grund-Datei in Excel stehen.

    Die jeweiligen Programmzeilen eines jeden Registers:

    [Stopxxx]

    Rank001=xxx

    SwitchCount=xxx

    Switch001=xxx

    Switch002=xxx

    werden vom kopierten Text gelöscht, von Hand in Felder definiert und durch die "wenn"-Abfrage der jeweiligen mit "x" gekennzeichneten

    Koordinate: Register / Walzenstufe automatisch eingetragen.

    So ähnlich denke ich ist auch dein Ansatz

    Das spart m.E. viele switches und die Exceldatei ist "simpel clever" (s. Citroen)

    Zum Schluss Blatt 2 ff anstelle der ehemaligen [Stopsxxx] in die ODF kopieren.

    Mit der Ansteuerung bin ich schon vorangekommen. Teste jetzt noch eine Idee, Stops mit kombinierter Logik (z.B. für Zungen an, Orage etc) zu versehen.

    Bleib locker dran und hab Spaß

  • ma è difficile gestire piccoli movimenti del pedale, gli spazi tra un livello e un altro sono troppo brevi e tutto risulta instabile.

    Pensavo allora che GrandOrgue non riconosce dei veri e propri passi di livello ma una piccola variazione di corrente che cambia nel potenziometro del pedale.

    Mit mehr als 32 Stufen glaube ich auch das es fast unmöglig sein wird Instabilitäten zu vermeiden... aber auch bei sehr wenige Stufen kan die Diskretization von analoge Signalen immer solche Probleme geben. Zum Beispiel, wenn der Übergang von Stufe 3 auf Stufe 4 bei 1.000 Volt geschehen soll, ist 0.999 Volt noch Stufe 3 und 1.000 Stufe 4. Eine kleine Störung auf dem Signal macht das man vielmals zwischen Stufe 3 und 4 hin und zurück gehen kann in kurzer Zeit.

    Die Lösung heisst Hysteresis. Man macht es so dass die Übergang von Stufe 3 auf 4 bei 1.100 Volt geschieht, die Übergang zurück von 4 auf 3 aber bei 0.900 Volt, zum Beispiel.

    Eine solche Funktionalitet habe ich in GrandOrgue noch nicht gefunden.

    Mann sollte das also im Midi-interface einbauen (bzw. einprogrammieren).

    Einfach das Signal filtrieren (oder wie man jetzt in GrandOrgue machen kann, ein "Debounce time" einstellen) ist keine ausreichende Lösung.

    Eine andere Lösung ist das man nicht ein Potentiometer sondern Schaltern benuzt - und wie Rainer zwei Schalter zu nehmen mit einer Verschiebung. Dann kann man die Bewegungsrichtung detektieren, und auch da ein Hysteresis realisieren. Auch das muss man im Midi-interface lösen, nicht in GrandOrgue.

    Sonnst gibt es auch noch mechanische Lösungen. Ein Beispiel findet man in die Einstellungen von Kameras, wo man diskrete Posizionen für Diafragma und Zeit hat. Da macht man eine Arretierung mit Hilfe eines Feders und einer kleiner Kugel.

    • Offizieller Beitrag

    Aus meiner Sicht ist das Maximum mit 32

    ( davon Stufe 0 = Walze aus ), also 31 aktive Stufen ausreichend.

    Walzenapparate der FA. Heuss ( hab ich früher verwendet - riesen Teil - ) haben aus meiner Erinnerung 15 - 20 Kontakte. Damit werden Instrumente mit 80 Register gesteuert. Also sollten wir mit max 32 Kontakten auskommen.

    Meine Walze hat gesamt 20 aktive Stufen.

    Würde man tatsächlich die Walze in

    1 Sekunde von "0" auf "32" drehen, dann beträgt die Zeit von einer zur nächsten Stufe

    32,12 Millisekunden. Bei Verwendung eines Potis mit nachgeschaltetem AD-Wandler von einem zum nächsten errechneten Digitalwert die Gleiche Zeit.

    Also sollte GO das mit der Annahme von MIDI-Befehlen für die Walze schaffen.

    Bräuchte GO 32,12 Millisek. zur sicheren Annahme und Umsetzung eines MIDI-Befehls, könnte man überhaupt nicht mehr spielen.

    Ich habe mit einem elektronischen Kontaktgeber in der MIDI-Ansteuerung mit steigender Frequenz im Cresc- Panel zwischen den Tasten "+" und "-" hin und her geschaltet.

    Das haben die Cresc-Sufen in GO sicher verarbeitet. Gleicher Test bei hin und herschalten zwischen Tutti (56 Register) und HR-Absteller. Gleiches Ergebnis.

    Es ging auch noch deutlich schneller. Die in meiner Orgel gespeicherten HR werden mit ca, 6 Millisekunden der angesteuerten Cresc-Stufe hinterher geschaltet und bleiben damit unhörbar in jeder Stufe stehen. Bisher ohne jeden Fehler.

    Die Walze wird aber wesentlich langsamer als o.a. bewegt, sodass ich keine Bedenken bzgl gestörter Funktion hätte.

    Ich empfehle auch mehr, wenn man ein Poti verwendet, dass über einen nachgeschalteten DA-Wandler zum Ansteuern zu tun.

    Der erzeugt dann über 5 Ausgänge 1, 2, 4, 8, 16,

    31 aktive Walzenstufen.

    Dazu kreiert man in GO 5 Drawstops und dekodiert sie in der ODF.

    Davon mehr, wenn ich meine Idee bzgl Matrix vorstelle. Braucht noch etwas Zeit. Ich bin gespannt, wie Bernd das löst.

    Besteht ja dann auch die Möglichkeit aus beiden Vorschlägen ein intelligentes Konzept zu schmieden.

    Wenn alles nicht ginge hatten wir eine sinnvolle Beschäftigung und unser Gehirn ein wenig trainiert. Ist ja auch gut.

    • Offizieller Beitrag

    Idee ist, max 32 nicht displayed Drawstops als Switches definieren. Diese müssen über sichtbare Drawstops mit MIDI angesteuert werden.

    In der Tabelle über die Markierung mit jeweils "x" und der "wenn" Definition die entsprechenden Switches in die vorbereiteten Felder Blatt 2 ff als Abfrageergebnis zu setzen.

    Geht einfach. Die Eintragungen in einem jeweiligen Stop sind durch die "x" Markierungen automatisch erfolgt.

    Man kann den gesamten Ausdruck auf Blatt 2 in die Position der ehemals in der ODF eingetragenen und gelöschten Stops einfügen.

    Fertig.

  • Habe etwas rumprobiert.

    Die Original Crescendo-Funktion lässt sich auch mit Switches programmieren. Das Problem taucht auf, sobald die nächste programmierte Stufe angesprochen wird scheint ein GC-Befehl gegeben zu werden der alles Stops und Switches löscht. Dadurch werden auch die Switches gelöscht die nicht zum Beispiel in einem General definiert sind gelöscht.

    In einem General lassen sich die Switches definieren die gesetzt oder gelöscht werden. Hier nicht aufgeführte Switches oder Stops werden beim bbetätigen nicht gelöscht.

  • Meine Idee ist derzeit, auf einem Crescendo-Panel eine Kopie der Switches für die einzelnen Register anzuzeigen, und dann zusätzlich 32 Generals die nur für das Crescendo benutzt werden.

    Ich sehe meine ODF schon explodieren.......

    Dieses Panel hat dann nur zugriff auf die "Schattenswitches" also das Duplikat der REgister und speichert diese nur in den Crescendo-Generals.

    Jedem General muss nun ein MIDI-Befehl inklusive Value , also über Extended detection zugeordnet werden. Beim Wechsel in den Generals werden auch nur diese Switches gelöscht und die Erste REihe der Switches bleibt stehen. Da diese in den Stops über OR verknüpft sind bleibt der Stop aktiv.

    Ich hoffe , dass ich mich nicht verrannt habe in meinen Überlegungen

    Gruß Bernd

    • Offizieller Beitrag

    Hallo Bernd

    Schreib doch bitte mal die ODF-Einträge für einen Switch auf dem kopierten panel.

    Ich probier das dann aus. Hatte die gleiche Idee, nur noch nicht getestet. Das würde z.B. bei einer Matrix die Ansteuerung leichter machen.

    Die Excel-Tabelle wird umfangreich in der Wenn-Abfrage.

    Dann alle Register eintragen.

    Die logische Zusammenwirkung von festen Kombinationen (And) und freien Kombinationen (Or) lässt sich über Switcheintragungen realisieren. Man benötigt keine doppelte Funktion in den Stops. Dies zu verwirklichen ist über einen zweiten Stop o.ä. aufwändiger.

    Sorge macht mir wenn dass mit deiner Idee der Schatenswitches nicht klappen sollte (ich hoffe, es funktioniert) immernoch die Ansteuerung.

    Hoch und runterschalten ist noch einfach. Zum Schalten brauche ich auf dem selben Drawstops ( als Switch) für an und ab immer jeweils einen Impuls.

    Bin ich im Cresc. auf z.B. Stufe 10 angekommen und gehe ins Decresc wird mit dem nächsten Impuls Stufe 9 angesprochen und abgeschaltet. Man muss also mit einer Logik dafür sorgen, dass die Stufe 10 vor der Stufe 9 abgeschaltet wird. Das ist in der ODF schwer zu verwirklichen.

    Macht Spaß, verbraucht aber viel Gehirnschmalz.

    Wenn man dadurch sichtbar abnehmen und den Bauchumfang verkleinern könnte bräuchte ich noch mehr solcher Aufgaben

    • Offizieller Beitrag

    Die MIDI-Ansteuerung analog (Poti und AD-Wandler über 5 Kanäle ginge einzig mit einer Latch-Funktion hinter dem AD-Wandler. Die würde dann beim Zurückschalten von 10 auf 9 für die notwendigen Steuerimpulse sorgen.

    Die Dekodierung wird in der Exceltabelle durch Eintragung der benötigten Switches vorgenommen.

    Dann bräuchte man nur 5 kleine Drawstops als Switches in einem der Panele einrichten und über Warte auf Ereignis mit dem jeweiligen MIDI-Befehl verknüpfen

  • Das Crescendo Register wäre bei meiner Lösung in Generals verwirklicht. Was benutzt du? Als Midi Ansteuerung wollte ich den Valuewert benutzen, das muss ich aber noch ausprobieren-

    Bin noch am testen, sobald ich sowas geschrieben habe poste ich es hierher

    Gruß

    Bernd

    • Offizieller Beitrag

    Ich habe mich darum noch nicht gekümmert weil ich an solche Grenzen nicht gestoßen bin. Ich muß erstmal in Excel forschen wieviel geschachtelte "wenn"-Abfragen machbar sind.

    Für jedes Register bei 32 Stufen sind ebenso viele nötig.

    Ansonsten muß man noch ein Zwischenfeld einrichten.

    Bei der MIDI-Ansteuerung bin ich völlig frei.

  • Wenn ich es richtig weiß, zumindest in älteren Excel Varianten konnte man 7 ineinander verschachtelte Wenn -Abfragen machen

    Ich habe mir das gespart und trage in die Felder einfach den pos. oder negativen WErt ein, dann wird der übernommen

    • Offizieller Beitrag

    Hallo Bernd

    Dass es max 7 "Wenn"-Abfragen sind habe ich inzwischen auch festgestellt.

    Aus meiner Sicht ist die Abfrage durch Eintragen von "x" einfacher. Meine Tabelle ist soweit fertig.

    Ich muss jetzt nur noch für eine intelligente Lösung zur automatischen Eintragung der zur Cresc-Stufen jeweilige Switchauswahl in die von der ODF kopierten und in Excel eingeführten Stop-Definitionen sorgen. Ich sende dir dann die Datei zur Ansicht persönlich und stelle sie noch nicht ins Forum ein.

    Das können wir machen, wenn wir Vor und Nachteile der Entwürfe beleuchtet und einen guten Konsens geschmiedet haben

    Bin auf die Ergebnisse gespannt.

    Schönes Wochenende

    Gruß Rainer