GrandOrgue / grandorgue

GrandOrgue software
Other
149 stars 39 forks source link

Multiple Issues with MIDI setups #1762

Closed pipe-organ-enthusiast closed 2 months ago

pipe-organ-enthusiast commented 6 months ago
  1. When configuring the pedal board and manuals by using "Detect complex MIDI setup", everything used to work correctly. Now when I do that and try to play, the notes remain depressed. I have to then go back into the midi settings and change the minimum velocity to 1 to fix it. Please fix this bug so that when the "Detect complex MIDI setup" is used, the proper values are given for the necessary parameters.

  2. When using "Detect complex MIDI setup" for the stops on ANY sampleset, after toggling them to my Novation Launchpads, the event comes up as "9x Note" when it should come up as "9x Note On Toggle" as it did in previous versions of GrandOrgue. Please FIX THIS!

  3. I raised this as an issue before and it was brushed off. I should be able to specify different NOTE-ON and NOTE-OFF values for my stops so the colours are displayed on my Novation Launchpads so I know what pads contain stops, couplers, combinations, etc. I should also be able to have NOTE-OFF values of 0 programmed into the "ON" button in Master Controls to OVERRIDE the NOTE-OFF values in my stops, couplers, combinations, etc, so that when I switch samplesets or shut down GrandOrgue, that my launchpads shouldn't be lighted. This used to work way back in version 3.11.2-1 and quit working in version 3.12.0-1. When I last raised this issue, I was told that MIDI events are sent at random when G.O. was shutdown. This in fact is incorrect, as prior to 3.12.0-1, my Novation Launchpads would "turn-off" with Note-Off values of 0 in the "ON" button and NON-ZERO values in the Note-Off for stops, couplers, combinations, etc. PLEASE FIX THIS!

oleg68 commented 6 months ago

@pipe-organ-enthusiast please enable "Log midi events" in grandorgue and post here the exact midi events that your lounchpad sends in each case you tried with "detect complex midi setup" with your comments what is the case exactly.

pipe-organ-enthusiast commented 6 months ago

@oleg68 on my keyboards and launchpads, when I use "Detect complex MIDI setup", the channel and note values are correct for the corresponding key or pad, 2 events are always given for each press equating to press and release of the notes or pass and those values are 0 and 127. In previous versions of GO, my keyboards would work correctly with those values given for "lowest velocity" and "highest velocity". Now, when using a "lowest velocity" of 0, the notes on the keyboard remain "ON" despite the event for the keyboards displaying "9x Note" and the MIDI events being sent to GO from the keyboards showing a NOTE-ON and NOTE-OFF event. To fix this, I have to manually change the "lowest velocity" to 1.

The issue with the Launchpads I am currently dealing with I raised here and labelled as "wontfix" https://github.com/GrandOrgue/grandorgue/issues/1555. I think that when shutting down GO there should be some protocol of precedence of MIDI OFF signals being sent. As I said, and please review the linked issue, this was NOT a problem before the May 26th update. Prior to May 26, my lighted launchpads would "shut off" when I shut down GO or switched samplesets IF I PROGRAMMED NOTE-OFF VALUES OF ZERO IN THE SEND FORM OF EACH SAMPLESETS "ON" BUTTON. Whatever was done in the May 26th update changed that. Meaning, I can no longer reliably have NON-ZERO Note-Off values for my stops on the launchpads. I'm using Launchpad Mini's and I have a small console and use more than 1 sampleset on a regular basis. I colour my launchpads based on Stop Family and Control Type (Tremulants, Couplers, etc) so that when I start a sampleset, I just have to look at my launchpads to know exactly where my Stops and Controls are. I have no way to mount plastic pre-marked overlays on these launchpads, plus the names of each stop would have to be too small to read for that to work, hence why I colour code everything. I might be a rare case, but I do know of others that use launchpads as well for their organs for the same reason I do. They're cheap, easy to set up and visually appealing for a small console. Please fix this. If I knew C++ (unfortunately I only know a bit of Python), I would offer up my help in fixing these issues myself.

oleg68 commented 6 months ago

@pipe-organ-enthusiast You are describing fine the result of "Detect complex MIDI setup" and why this result is wrong. But I still don't understand WHY this result appears. So I asked you to provide me the original midi events that your keyboard and lounchpads send. I can not fix the "Detect complex MIDI setup" behavior without that information. So Audio/Midi -> Log Midi events content is highly necessary.

pipe-organ-enthusiast commented 6 months ago

This is the picture of my midi even log for syncing my lowest manual:

20231231_090227

Just in case it isn't clear or doesn't show: MIDI event: note channel: 2 key: 96 value: 0 MIDI event: note channel: 2 key: 96 value: 127 MIDI event: note channel: 2 key: 36 value: 0 MIDI event: note channel: 2 key: 36 value: 127

pipe-organ-enthusiast commented 6 months ago

This is my organ set-up with the GO demo set, stops off: 20231231_095053

This is showing same set up with some stops selected: 20231231_095302

And with GO shut down: 20231231_095329

All pads are programmed with MIDI OFF value of 0 for the "ON" Button for the samplesets.

oleg68 commented 6 months ago

Just in case it isn't clear or doesn't show: MIDI event: note channel: 2 key: 96 value: 0 MIDI event: note channel: 2 key: 96 value: 127 MIDI event: note channel: 2 key: 36 value: 0 MIDI event: note channel: 2 key: 36 value: 127

You mentioned three use cases in the starting post. What of them does this midi log belong to? 1, 2 or 3?

oleg68 commented 6 months ago

All pads are programmed with MIDI OFF value of 0 for the "ON" Button for the samplesets.

I can not see any difference on the launchpad between three photos.

If you are talking about the third case, please install QMidiRoute, select it as the midi output device, close the GrandOrgue an post here the log from QMidiRoute.

pipe-organ-enthusiast commented 6 months ago

For issue Number 3, I played around a little bit to see what midi message belonged to the stop and the ON button. Here are the pictures:

Midi Set-up for Contrebasse 16' and corresponding MIDI number for send information on the "ON" button: 20231231_135914

MIDI Output after shutting off GO: 20231231_140044

MIDI Output after shutting off GO with MIDI disabled on the Contrebasse: 20231231_141353

It would appear that the MIDI for the ON button gets sent BEFORE the MIDI for the organ stop itself.

I have two proposed solutions, not sure if either would be easier or better.

  1. If possible, when shutting down GO, can a blanket Note Off velocity 0 be sent to ALL connected MIDI controllers that are enabled to receive MIDI? That would save a lot of time on our end when setting up Launchpads.

  2. If easier than option one, can MIDI signals be sent by the ON button AFTER MIDI signals are sent by the stops on shutdown?

I'm just asking because option 2 was working beautifully before the May 26th update.

Just in case it isn't clear or doesn't show: MIDI event: note channel: 2 key: 96 value: 0 MIDI event: note channel: 2 key: 96 value: 127 MIDI event: note channel: 2 key: 36 value: 0 MIDI event: note channel: 2 key: 36 value: 127

You mentioned three use cases in the starting post. What of them does this midi log belong to? 1, 2 or 3?

These events belong to the 1st use case.

pipe-organ-enthusiast commented 6 months ago

Here's supporting pics for use case 2.:

20231231_142918

20231231_142925

20231231_142935

20231231_142943

oleg68 commented 6 months ago

Please post here the event log for the use case 2

pipe-organ-enthusiast commented 6 months ago

This is the Midi log for use case 2:

20231231_165512

pipe-organ-enthusiast commented 6 months ago

Oh another thing I noticed in regards to case 3, The ON button isn't specifying a velocity number for Note Off. Check the pics in the previous comment.

oleg68 commented 6 months ago

This is the Midi log for use case 2:

Is it a midi log for one stop? Please post here also the midi log from another stop.

pipe-organ-enthusiast commented 6 months ago

Here is the MIDI log from the entire Pedal Division with corresponding MIDI being sent from the "ON" button in Master Controls:

20240101_090656

As you can see, the MIDI for the ON button is being sent BEFORE the MIDI from each stop, AND the velocity numbers for the "ON" Button are not being sent like they should be.

oleg68 commented 2 months ago
  • When using "Detect complex MIDI setup" for the stops on ANY sampleset, after toggling them to my Novation Launchpads, the event comes up as "9x Note" when it should come up as "9x Note On Toggle" as it did in previous versions of GrandOrgue. Please FIX THIS!

If I understand your event log of switching a stop ON and OFF correctly, your lounchpad sends the NoteOn event for the key 11:

Then detecting the event as 'Note' is all right, and the stop switching operates correctly.

If GrandOrgue detected the event as Note On Toggle, a Note On event would change the current state of the stop from OFF to ON and from ON to OFF. Would it be the desired behavior?

pipe-organ-enthusiast commented 2 months ago

In regards to turning on and off stops, everything is working correctly. The issue is when shutting down GO. What's happening is, when I shutdown GO, it's sending out all the NOTE OFF velocities for the ON button in Master Controls BEFORE sending the NOTE OFF velocities for the stops. So I think the solution to the would be that if there's any NOTE OFF events being sent by the ON button, they should be sent last after any NOTE OFF events are sent by the individual stops. I hope that makes sense.

On Tue, Apr 9, 2024, 12:57 p.m. Oleg Samarin @.***> wrote:

  • When using "Detect complex MIDI setup" for the stops on ANY sampleset, after toggling them to my Novation Launchpads, the event comes up as "9x Note" when it should come up as "9x Note On Toggle" as it did in previous versions of GrandOrgue. Please FIX THIS!

If I understand your event log of switching a stop ON and OFF correctly, your lounchpad sends the NoteOn event for the key 11:

  • with velocity 127 when you switch the stop ON
  • with velocity 0 when you switch the stop OFF

Then detecting the event as 'Note' is all right, and the stop switching operates correctly.

If GrandOrgue detected the event as Note On Toggle, a Note On event would change the current state of the stop from OFF to ON and from ON to OFF. Would it be the desired behavior?

— Reply to this email directly, view it on GitHub https://github.com/GrandOrgue/grandorgue/issues/1762#issuecomment-2045664693, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFATKLI73LIYDPKAEA4PRULY4QMW7AVCNFSM6AAAAABBHZNBLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBVGY3DINRZGM . You are receiving this because you were mentioned.Message ID: @.***>

oleg68 commented 2 months ago

In regards to turning on and off stops, everything is working correctly.

Does it mean that there is no issue (2)?

oleg68 commented 2 months ago

3. I should be able to specify different NOTE-ON and NOTE-OFF values for my stops

Are you talking about Recv or about Send?

pipe-organ-enthusiast commented 2 months ago

Sorry, my bad, had to relook at issue #2. I'll double check this behavior once I get home from work and advise.

On Tue, Apr 9, 2024, 1:33 p.m. Oleg Samarin @.***> wrote:

In regards to turning on and off stops, everything is working correctly.

Does it mean that there is no issue (2)?

— Reply to this email directly, view it on GitHub https://github.com/GrandOrgue/grandorgue/issues/1762#issuecomment-2045750470, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFATKLN7S76KITZ7NWVUGH3Y4QQ6XAVCNFSM6AAAAABBHZNBLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBVG42TANBXGA . You are receiving this because you were mentioned.Message ID: @.***>

oleg68 commented 2 months ago

@pipe-organ-enthusiast Could you also test this intermediate build with your lounchpad? I've enchanced the Detect complex MIDI setup behavior but I haven't yet changed sending event order on shutting GrandOrgue down.

pipe-organ-enthusiast commented 2 months ago

I'm using arch linux, I'm not sure which option to choose for testing.

On Tue, Apr 9, 2024 at 2:24 PM Oleg Samarin @.***> wrote:

@pipe-organ-enthusiast https://github.com/pipe-organ-enthusiast Could you also test this intermediate build https://github.com/oleg68/GrandOrgue-official/actions/runs/8620443632 with your lounchpad? I've enchanced the Detect complex MIDI setup behavior but I haven't yet changed sending event order on shutting GrandOrgue down.

— Reply to this email directly, view it on GitHub https://github.com/GrandOrgue/grandorgue/issues/1762#issuecomment-2045830797, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFATKLLPN2Q3BXQXHNWFXQTY4QW63AVCNFSM6AAAAABBHZNBLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBVHAZTANZZG4 . You are receiving this because you were mentioned.Message ID: @.***>

oleg68 commented 2 months ago

@pipe-organ-enthusiast

I'm using arch linux, I'm not sure which option to choose for testing.

grandorgue-3.14.1-0.1.linux.x86_64.tar.gz or grandorgue-wx32-3.14.1-0.1.linux.x86_64.tar.gz depending on what wxWidgets version do you have installed on yor system.

pipe-organ-enthusiast commented 2 months ago

Unfortunately, both builds failed on my machine. I'm probably going to have to wait for the update in the AUR before I can test it.

On Thu, Apr 11, 2024 at 2:12 PM Oleg Samarin @.***> wrote:

@pipe-organ-enthusiast https://github.com/pipe-organ-enthusiast

I'm using arch linux, I'm not sure which option to choose for testing.

grandorgue-3.14.1-0.1.linux.x86_64.tar.gz https://github.com/oleg68/GrandOrgue-official/actions/runs/8620443632/artifacts/1398883200 or grandorgue-wx32-3.14.1-0.1.linux.x86_64.tar.gz https://github.com/oleg68/GrandOrgue-official/actions/runs/8620443632/artifacts/1398885186 depending on what wxWidgets version do you have installed on yor system.

— Reply to this email directly, view it on GitHub https://github.com/GrandOrgue/grandorgue/issues/1762#issuecomment-2050245889, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFATKLKGSS7J6IIZENGV7G3Y43HBJAVCNFSM6AAAAABBHZNBLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJQGI2DKOBYHE . You are receiving this because you were mentioned.Message ID: @.***>