GrandOrgue / grandorgue

GrandOrgue software
Other
175 stars 43 forks source link

Multiple Issues With Crescendo Override Off #1935

Closed larspalo closed 1 month ago

larspalo commented 4 months ago

When I turn Crescendo Override Off (aka. Add mode) I get the following results

I would expect that, when in Add mode, the on/off states of other combinations still would work when crescendo override is off and that the manually added stops would be respected no matter if I'm going up or down the crescendo. (Currently the manually added stops/couplers/switches etc. would be respected if going up but when going back down passing the number where they were added they would go away)

In the crescendo add mode I'd actually expect only the on/off states of programmed/stored items to be affected at all, but this can of course be achieved in other ways (for instance by setting scope/scoped).

Steps to reproduce first issue:

Steps to reproduce second issue:

hnb2907 commented 2 months ago

Hi folks,

This is behaviour described by @larspalo "second issue" is also something I've noticed, and have been planning to discuss.

I don't have experience of how a crescendo pedal on a Classical organ would work. However, on a Theatre organ, the behaviour is slightly different to GO.

  1. The crescendo doesn't change the status of actual stop switches on the console. In GO, this is represented by the stops on the GUI; here on GO they do change state with the crescendo pedal. A Theatre organ crescendo never changes the status of the actual stop tabs.
  2. On a Threatre organ, inside the electrical "action", the status of each stop tab is internally OR'ed with the stops set at any given crescendo pedal step
  3. Increasing the crescendo step number is additive. As the crescendo step number increases, more stops are added to those already added at previous crescendo steps. Maybe this explains it http://www.nightbloomingjazzmen.com/NBJ_Organ/Schantz_Expanded_Crescendo.jpg
  4. Decreasing the crescendo step number, removes the same stops that were added at the same step number. For example, if transition from step 10 to 11 switch on Stop021 & Stop050, then transition from 11 to 10 would switch off Step021 & Stop050.
  5. As a caveat to point 3, I can only think of 1 occasion (on Compton organs in the UK), where the last crescendo stage would switch off the tremulants. But this could be easier handled in GO by another method, maybe using negative logic on the the tremulant stops.

I'm not sure of the internal architecure of GO. My thought is it could be easy to have an internal duplicate copy of all [Stopnnn],which is controlled by the crescendo. Each stop in the internal copy is OR'ed with the equivalent stop on the GUI, the result is then passed into the sound generator? Here's a simplified diagram of what I'm thinking. crescendo

Hopefully this behaviour could be implemented, either to fix the issue reported by Lars, or as a new "Theatre Organ" mode please? Would it also be possible to create a new crescendo configuration page that looks like this please? http://www.nightbloomingjazzmen.com/NBJ_Organ/Schantz_Expanded_Crescendo.jpg It would be so much easier to use :)

Many thanks, Chris.

oleg68 commented 2 months ago

2009 fixes the first issue.

Unfortunally, correcting the second issue is not so simple. It would require adding an internal OR switch to each stop. The stop pushbutton state would be the first entry of the switch, the crescendo would be the second entry. The Midi Out would be the sent only from the manual part.

@larspalo do you have any other ideas of implementing the fix?

hnb2907 commented 2 months ago

2009 fixes the first issue.

Unfortunally, correcting the second issue is not so simple. It would require adding an internal OR switch to each stop. The stop pushbutton state would be the first entry of the switch, the crescendo would be the second entry. The Midi Out would be the sent only from the manual part.

@larspalo do you have any other ideas of implementing the fix?

Actually, in my diagram I incorrectly showed "&". You are correct, it should be "Inclusive OR".

I hadn't considered MIDI out, as it's not part of my use case. This would not be a problem for me, because I don't use GO MIDI out to control external stops status (real ones on the console).
The MIDI recorder function could probably capture the "OR" output. It is probably acceptable for MIDI playback would show the stops changing on the GUI, which is probably an acceptable trade-off.

It would be really good if this functionality could be fixed/implemented somehow. It is one of the few features/bugs in GO that can be problem to work around while playing :)

C.

hnb2907 commented 1 month ago

Hi,

Great news thankyou :) I'd like to try this out, and confirm it works for you, but I didn't find the linux binary and I'm not clever enough to build it from source!

Best wishes, Chris.

oleg68 commented 1 month ago

I didn't find the linux binary

https://github.com/oleg68/GrandOrgue-official/actions/runs/11262040486