e9925248
New member
This way you can modell an organ with all currently supported extras and complications:
* For each pedal/manual add a manual. Even if the manual has a short octave, keep the pipe definition chromatic. Either extend missing tones or add a silence sample for them. Remap them to short octave via MIDIKey999 and DisplayKey999.
* For subsemitons add an extra manual. Keep this manual chromatic: Add only samples for the sounding keys and silence for the rest. Style them via the new GUI function to look correct. They contain the same set of stops as their main manual.
* For the manual noises add an extra stop to each manual.
* For the blower noise add an extra effect stop (= stop with only one pipe). You can add it to any existing manual.
* For each register/coupler/tremulant, add a effect stop with its noise. Put it on the corresponding manual.
* All these stops does not need to visible - if they are visible, they only show the effective state.
* Add the effect stops to an extra windchest.
* For the blower, add a switch on a panel (GCState=-1)
* For the sound effects on/off, add a switch on a panel (GCState=-1)
* For each register/coupler/tremulant/..., add a switch on a panel.
* For each appel, add a switch on the panel (GCState=1 und DisplayInInvertedState=Y)
* Associate the necessary switches with its corresponding manual to get the divisionals work.
* The effect stop of register/couplers get the AND function of the following inputs:
- corresponding switch
- sound effects switch
* The real stops/register/coupler get the AND function of the following inputs:
- corresponding switch
- blower on switch (for real stop)
- appels (for real stops, if any)
* Subsemitone stops are defined as their main stops
* Blower stop get the AND function of the following inputs:
- blower on switch
PS: This covers the function of GO 1301 (or maybe even later), as the switch function has not been enabled yet. To start testing it, replace in GrandOrgueFile.cpp
unsigned NumberOfSwitches = cfg.ReadInteger(ODFSetting, group, wxT("NumberOfSwitches"), 0, 0, 0);
with
unsigned NumberOfSwitches = cfg.ReadInteger(ODFSetting, group, wxT("NumberOfSwitches"), 0, 999, 0);
PPS: Just a short, not very clean example for kalvtrask.organ:
* For each pedal/manual add a manual. Even if the manual has a short octave, keep the pipe definition chromatic. Either extend missing tones or add a silence sample for them. Remap them to short octave via MIDIKey999 and DisplayKey999.
* For subsemitons add an extra manual. Keep this manual chromatic: Add only samples for the sounding keys and silence for the rest. Style them via the new GUI function to look correct. They contain the same set of stops as their main manual.
* For the manual noises add an extra stop to each manual.
* For the blower noise add an extra effect stop (= stop with only one pipe). You can add it to any existing manual.
* For each register/coupler/tremulant, add a effect stop with its noise. Put it on the corresponding manual.
* All these stops does not need to visible - if they are visible, they only show the effective state.
* Add the effect stops to an extra windchest.
* For the blower, add a switch on a panel (GCState=-1)
* For the sound effects on/off, add a switch on a panel (GCState=-1)
* For each register/coupler/tremulant/..., add a switch on a panel.
* For each appel, add a switch on the panel (GCState=1 und DisplayInInvertedState=Y)
* Associate the necessary switches with its corresponding manual to get the divisionals work.
* The effect stop of register/couplers get the AND function of the following inputs:
- corresponding switch
- sound effects switch
* The real stops/register/coupler get the AND function of the following inputs:
- corresponding switch
- blower on switch (for real stop)
- appels (for real stops, if any)
* Subsemitone stops are defined as their main stops
* Blower stop get the AND function of the following inputs:
- blower on switch
PS: This covers the function of GO 1301 (or maybe even later), as the switch function has not been enabled yet. To start testing it, replace in GrandOrgueFile.cpp
unsigned NumberOfSwitches = cfg.ReadInteger(ODFSetting, group, wxT("NumberOfSwitches"), 0, 0, 0);
with
unsigned NumberOfSwitches = cfg.ReadInteger(ODFSetting, group, wxT("NumberOfSwitches"), 0, 999, 0);
PPS: Just a short, not very clean example for kalvtrask.organ:
Code:
@@ -26,6 +26,7 @@
NumberOfDivisionalCouplers=0
NumberOfImages=1
NumberOfPanels=2
+NumberOfSwitches=1
DispDrawstopCols=2
DispDrawstopRows=4
DispDrawstopColsOffset=N
@@ -70,6 +71,8 @@
FirstAccessibleKeyMIDINoteNumber=36
NumberOfStops=1
Stop001=001
+NumberOfSwitches=1
+Switch001=1
NumberOfCouplers=1
Coupler001=001
NumberOfTremulants=0
@@ -314,7 +317,7 @@
NumberOfAccessibleKeys=54
FirstAccessibleKeyLogicalKeyNumber=1
FirstAccessibleKeyMIDINoteNumber=36
-NumberOfStops=11
+NumberOfStops=12
Stop001=101
Stop002=102
Stop003=103
@@ -326,6 +329,7 @@
Stop009=109
Stop010=110
Stop011=111
+Stop012=204
NumberOfCouplers=0
NumberOfTremulants=0
NumberOfDivisionals=0
@@ -700,7 +704,33 @@
Pipe053=.\Gedackt8\088-E.wav
Pipe054=.\Gedackt8\089-F.wav
+[Switch001]
+Name=Fug
+DisplayInInvertedState=N
+Displayed=Y
+DefaultToEngaged=N
+DispDrawstopCol=2
+
+[Stop204]
+Function=And
+SwitchCount=1
+Switch001=1
+Name=Effect Fug
+Percussive=N
+DefaultToEngaged=N
+WindchestGroup=001
+FirstAccessiblePipeLogicalPipeNumber=001
+FirstAccessiblePipeLogicalKeyNumber=01
+NumberOfLogicalPipes=1
+NumberOfAccessiblePipes=1
+Pipe001=.\Noises\Stops\Fug8.wav
+DisplayInInvertedState=N
+Displayed=Y
+
[Stop104]
+Function=And
+SwitchCount=1
+Switch001=1
Name=FUGARA 8 fot
TextBreakWidth=0
NumberOfLogicalPipes=42