• Welcome to the Pipe Organ Forum! This is a part of the open community Magle International Music Forums focused on pipe organs (also known as "church organs"), organists, organ music and related topics.

    This forum is intended to be a friendly place where technically advanced organists and beginners (or even non-organists) can feel comfortable having discussions and asking questions. We learn by reading and asking questions, and it is hoped that the beginners (or non-organists) will feel free to ask even the simplest questions, and that the more advanced organists will patiently answer these questions. On the other hand, we encourage complex, technical discussions of technique, music, organ-building, etc. The opinions and observations of a diverse group of people from around the world should prove to be interesting and stimulating to all of us.

    As pipe organ discussions can sometimes become lively, it should be pointed out that this is an open forum. Statements made here are the opinion of the poster, and not necessarily that of the forum itself, its administrator, or its moderators.

    In order to post a new topic - or reply to existing ones - you may join and become a member by clicking on Register New User. It's completely free and only requires a working email address (in order to confirm your registration - it will never be given away!). We strive to make this a friendly and informative forum for anyone interested in pipe organs and organ music.

    (Note: If you wish to link to and promote your own website please read this thread first.)

    Many kind regards
    smile.gif

    Frederik Magle
    Administrator

    Krummhorn
    Co-Administrator

GO ODF creation best practices

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:
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
 

L.Palo

New member
Hi!

Thanks for the work on this. How is it possible for the user to switch off the stop effect but keep the "normal stop" to allow it's pipes to sound? In the example above the Stop204 is not reacting in any way on it's own, after applying the lines above only the switch is the one that will respond to any user action.

I'll try to test asap !

Do note Martins line above stating that you need to change one line in GrandOrgueFile.cpp to activate the switch code. Which means that you'll either need to compile it yourself or get someone else to do that for you... This is still testing!

P.S. The title in the title bar works fine now! Thanks a lot!

Kind regards

Lars P
 
Last edited:

Ghekorg7 (Ret)

Rear Admiral Appassionata (Ret)
I saw that Lars thanks :) I cannot do it myself , not now at least (requires homework) > I'm processing pipe samples for the upcoming Historic organ for GO which by the way will be big wet, around 4.2sec releases. There will be 3 x :) AND as I have here ALL FX and stuff sampled, even the tiniest crack, it would be nice to be able to apply them by the time of the release. But, either way I can use the shortcut solution till we got a steady one. :-D
 

e9925248

New member
How is it possible for the user to switch off the stop effect but keep the "normal stop" to allow it's pipes to sound? In the example above the Stop204 is not reacting in any way on it's own, after applying the lines above only the switch is the one that will respond to any user action.

This is not possible in my example.

If you want to be able to shut off the effect stop, you can add second switch for "noise on/off" and add it add as second input to the effect stop [as described in my initial post]. You will probably also want to hide the real+effect stop and display the stop switch as real drawstop instead.

Switches can be used in various ways (even as hidden logical element), so you can create even more complex setups.
 

L.Palo

New member
Ok, I'll experiment with it further then. I guess it would be possible to create another switch for disabling all stop noises on/off too at once, and a switch for all the manual/pedal action noises combined? But will it be possible to combine them so that the switches won't override other switches states (ie if the switch that disables the effect stop is set off then one doesn't want the switch that activates both stop and effect to override it and activate it again)? I'll see if it behaves as one would expect or not and then report and/or come with more qustions.

Kind regards

Lars P
 

e9925248

New member
You have AND, OR and NO - this allows to model any kind of stateless logical function.

If you have a "all noice on" and a "noise for X on" switch, you can eg. add a OR switch of both and use that instead.
 

L.Palo

New member
When adding a switch (defined on main panel) to an additional panel the noise effect stop is also shown without being asked for and is actually not possible to hide even if one adds it to the panel and try to set it with Displayed=N which then is reported as unused (the referenced effect stop is of course hidden on main panel).

Kind regards

Lars P
 

e9925248

New member
When adding a switch (defined on main panel) to an additional panel the noise effect stop is also shown without being asked for and is actually not possible to hide even if one adds it to the panel and try to set it with Displayed=N which then is reported as unused (the referenced effect stop is of course hidden on main panel).

I have troubles reproducing your problem. Can you mail me your example and point out, which elements are problematic?
 

L.Palo

New member
Hi!

So, the problem was that I had the stops added to the panel and not only the switch. If I remove the stops (both pipe and effect) from the additional panel and only add (reference) the switch it works fine. But the strange thing was that if I added the stop to the additional panel and tried to hide them (displayed=N) then the odf reader said that it was unused and showed them anyway even if the target stops on the main panel was hidden too, so something is not working logically as it should (or at least how I would expect it to do).

Anyway, once I removed the stops from the additional panel it seems to work fine. But now I'll have to try to get a global switch on another panel that will when de-activated make all the effect stops silent even if the other switches that use them (together with the pipes) will be activated/de-activated. I'll report on the progress when I have anything to report...

Kind regards

Lars P
 

e9925248

New member
But the strange thing was that if I added the stop to the additional panel and tried to hide them (displayed=N) then the odf reader said that it was unused and showed them anyway even if the target stops on the main panel was hidden too, so something is not working logically as it should (or at least how I would expect it to do).

You can't hide anything on the additional panels - they just contain the visible elements. Displayed=N/J just works for the main panel.
 

L.Palo

New member
Ok, that explains it. One learns new things all the time! Thanks, we should somewhere point out that for additional panels only elements that are intended for showing should be added. All tricks are done on the main panel.

Kind regards

Lars P
 

L.Palo

New member
Now another issue. The switches I add on an additional panel won't recognize extra drawstop rows/cols, and not the DispLabelText, DispLabelFontSize or other properties like them. It almoast seems to me that the switches only inherit from the drawstop but not from the button (that the drawstop itself should inherit from). Is this intended behaviour or a bug?

Kind regards

Lars P
 

e9925248

New member
Now another issue. The switches I add on an additional panel won't recognize extra drawstop rows/cols, and not the DispLabelText, DispLabelFontSize or other properties like them. It almoast seems to me that the switches only inherit from the drawstop but not from the button (that the drawstop itself should inherit from). Is this intended behaviour or a bug?
In my option more likely an incorrect section name. They use the same schema as eg. Generals: Switch003 <-> Panel999Switch003
 

L.Palo

New member
Right you are! Thanks, it seems to work if I write (on an additional panel)

NumberOfSwitches=3
Switch001=013
Switch002=011
Switch003=012

and then have sections like

[Panel001Switch013]
...
[Panel001Switch011]
...
[Panel001Switch012]
...

Where the Switch identifying numbers are the same as on the main panel no matter what the order of the switches on the additional panel is.

So far I've managed to recreate the Kalvträsk odf using switches so that all the stop noises now works (both from main panel and the larger stop panel) and the existing disabling buttons on the Noises extra panel also work. Now the next thing will be to figure out how I can disable all the stop noises at will with another (new) noise button (Stop noises) that when de-activated will still allow the pipes from the normal stop to play when the switches (visible drawstops) operating both pipes and noise are toggled (either from main panel or from large stop panel)...

Kind regards

Lars P
 

Ghekorg7 (Ret)

Rear Admiral Appassionata (Ret)
I'm reading with great interest your discussion here. So with switches and additional panel we can have the desired drawstop fx ? I lookin' forward to test this latest Kalvtrask version (odf) when ready !
 

L.Palo

New member
Hi!

Yes, the switches can be used for drawstop fx but also for many other things. I'm trying to explore it more in depth to learn what we can do with it. So far, except for drawstop fx (actually a case of combining multiple stops - in that case the normal pipe containing stop with the effect stop that contain just the draw-attack with a silent loop and a push-in-release), I know that we now can re-create the true french appel d'anches combination system by using switches. I also think that it will be possible to model "wechselregister" that occasionally can be found in smaller organs. No doubt the switches can be used for other things too.

I'm working on an update for Kalvträsk that will use some of the features and also I think I'll add/extend the noise effects to the extended version too. However it won't be possible to use until we get out builds of GrandOrgue that have the switches activated.

Kind regards

Lars P
 

Ghekorg7 (Ret)

Rear Admiral Appassionata (Ret)
Hi Lars ! Thanks for the info. I'm working full time for this Historic Sicilian and indeed I got all those noises ready here. I still doing process of samples with 3 xreleases, so even if I had a build with switches on I couldn't test right now... well possibly after 10 days or so. LOL or....... IMEDIATELY ??????? !!!!! LOL LOL Silent loops are essential in GO yes. Right now we must do them for tracker noises if we split them in att/rel folders. I mean silent loop on att samples. else no joy :) This is how drawstop worked on 1261 too (with the 'wrong" double placement) - or we can do the classic one sample file containing all (att>silent loop>cue>rel).
 

e9925248

New member

wehtam721

New member
I downloaded the installer (64 bit) from the link above. I've done this before without any problems for previous builds. After downloading, the install went fine on Windows 7. Opening GrandOrgue doesn't result in any problems, but loading an organ does. Loading an organ causes GrandOrgue to stop responding on my machine. It will load all of the samples and displays the GUI for the set, but hangs right afterward. Loading a sample set with Task Manager running shows that too much physical memory is being used. I tested first with a set which (when fully loaded) used about 60% of my physical memory. Watching the set load in 1303, physical memory usage got up to about 75% by the end of the loading of the samples and when the GUI showed, memory usage jumped to 99% and GrandOrgue stopped responding. I then tested with a tiny sample set that I use for testing various ranks/effects. This sample set usually loads with about 20% of physical memory used, but the same thing happened when loaded in 1303. The samples loaded (so quickly that I couldn't see if it was at higher than 21% at the end of the process), GrandOrgue stopped responding when the GUI showed up, and then physical memory usage was showing at 99%.

I don't know what might be causing this or what other information might be helpful. There haven't been any other changes to my system and re-installing 1289 solves all of the problems again; all sets, once again, load without issue. If you need additional information, let me know what that might be. If there's an error log that might be helpful, let me know where to find it or how to generate it and I'll pass that along.

All of that being said, thanks as always to the developers for all of the time you commit to making GrandOrgue better and better every day. It is very much appreciated!

Take care,
Matt
 
Top