Hi,
[EDIT: See a correction in the thread below]
I have a problem with SSS and MIDI: When using the built-in Montage keyboard and switching between performances which have SSS enabled, I can sustain the old sound with the sustain pedal. When I let go of the pedal the old sound stops sounding. That's as it should be. When controlling the Montage from another MIDI keyboard this does not work. The sustain pedal normally works fine. When switching to another sound the old sound still sounds. That's fine. But it does not react to the release of the sustain pedal anymore. That's a problem for me, because the sound just hangs. Only way to cure is to switch to a third sound and then back to the 2nd. It happened to me several times during a live performance. I currently work around this by adding an element in the upper half of the performance which disables the SSS feature. But of course I would like to use the SSS. So I would like to see that fixed. I am using OS 1.50.
SSS is working exactly as it should. It is your expectation that your external controller could participate in this that is faulty. You have simply changed MIDI channels leaving the Sustain function On (127) - MIDI is also working exactly as it should. The last sent value persists until you send a new value on that channel.
Bad Mister wrote:
SSS is working exactly as it should. It is your expectation that your external controller could participate in this that is faulty. You have simply changed MIDI channels leaving the Sustain function On (127) - MIDI is also working exactly as it should. The last sent value persists until you send a new value on that channel.
Dear Bad Mister! This the usual BM answer. There is never a bug, the expectation of the user is faulty. I beg to differ. Actually I have to correct you. It does work, so my expectation was spot on, yours is faulty! There is no difference between the behavior with an internal controller and an external one. Also please note if there was a change of MIDI channels the behavior would absolutely be expected. And I have developed quite a few MIDI controllers, so I know what I am talking about. But then this would not only apply to the pedal. In this case releasing the keys held during the switch would not trigger the release of the notes. We would see a hang there as well. But that's not the case. It's exclusive for the pedal.
But the bug (or feature?) is actually there even with the internal controller. Just for some sounds. So I also have to correct myself. Sorry for the wrong report. Here is a corrected one.
Please do the following experiment:
- Go to the Live Set "Best of Montage 1".
- Select CFX + FM EP.
- Play some notes with the pedal pressed.
- Switch to "Seattle Sections".
- You'll hear the notes sustaining.
- Release the pedal, the sustaining does stop.
- Now do it the opposite way. Still the same. Everything works as expected.
- Do the switch from "Seattle Sections" to "FM Linear Synth".
- Release the pedal. You get hanging notes from the "Seattle Sections".
- Do the switch from "All 9 Bars!" to "FM Linear Synth".
- Release the pedal. You get nohanging notes from the "All 9 Bars!" performance.
So maybe there is no bug, but it is a feature. I was just unfortunate to run into that case during a live performance. Got me into a moment of panic :(. Note that I did not use the mentioned sounds, but my own, this is just an easy reproduction case. I took the time to search for an easy case where this happens.
If it is no bug it would be great, if you could explain what traits of the combination "Seattle Sections" / "FM Linear Synth" trigger this behavior. Which is at least unexpected. Why I think it is a bug: As a user I expect consistent behavior. The behavior is certainly inconsistent to other sounds. And getting hangs is never nice.
But it might be a feature if there is a logical explanation for the behavior and even a reason behind that. And a way for me to avoid that and still have SSS. Do you have such an explanation???
Thanks in advance!
NOTE: I corrected the title of the thread accordingly.
Cannot reproduce using earlier firmware. Perhaps there has been a change in response with newer firmware. I tested everything you outlined including something you did not: FM Linear Synth back to Seattle Sections (and also FM Linear Synth back to All 9 Bars!).
It would be good for Yamaha to double-check just to confirm your observations.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Thanks a lot for checking, Jason. I tested again and actually I have to correct myself again: The pedal was still connected over MIDI. So it only happens, when the pedal is attached over MIDI. But it only happens in some cases. Very weird.
MIDI may very well be different since SSS might be implemented using internal hooks rather than a pure MIDI implementation - so who knows.
I wonder if Wax And Wane has the same issue as FM Linear Synth using a pure MIDI-message (not direct-connect) sustain. I ask this because FM Linear Synth is AWM2+FM and Wax And Wane is FM only. So the point is to narrow down if the "problem" combination is AWM2-to-(AWM+FM AND FM only) or just AWM2-to-(AWM+FM).
Since the only obvious difference in your 2nd SSS performance is the inclusion of FM - I'd guess that FM is the culprit (either AWM+FM or FM only having issues) - but that's just a hypothesis that could be crushed by your testing.
With all the "oops" kind of feedback - I also have to trust your testing, which of course trust level ratchets down as the "oops" count ticks up.
I'm not sure what your MIDI connected sustain pedal is doing in terms of channels. A Montage direct-connected pedal shows (when Seatle Sections, which has 7 parts is the "from" or 1st SSS performance - and filtering only sustain events):
STATUS, DATA1, DATA2, CHAN, NOTE, EVENT
B0, 40, 7F, 1, ---, CC: Pedal (Sustain)
B1, 40, 7F, 2, ---, CC: Pedal (Sustain)
B2, 40, 7F, 3, ---, CC: Pedal (Sustain)
B3, 40, 7F, 4, ---, CC: Pedal (Sustain)
B4, 40, 7F, 5, ---, CC: Pedal (Sustain)
B5, 40, 7F, 6, ---, CC: Pedal (Sustain)
B6, 40, 7F, 7, ---, CC: Pedal (Sustain)
B0, 40, 00, 1, ---, CC: Pedal (Sustain)
B1, 40, 00, 2, ---, CC: Pedal (Sustain)
B2, 40, 00, 3, ---, CC: Pedal (Sustain)
B3, 40, 00, 4, ---, CC: Pedal (Sustain)
B4, 40, 00, 5, ---, CC: Pedal (Sustain)
B5, 40, 00, 6, ---, CC: Pedal (Sustain)
B6, 40, 00, 7, ---, CC: Pedal (Sustain)
So after switching to a different part which has less parts - the sustain OFF messages still match the sustain ON messages in terms of channel (1-7).
It probably wouldn't hurt anything if the MIDI connected sustain pedal was somehow setup to always send Bx 40 00 where x=all channels 0-7 or even 0-F for that matter - but 0-7 would cover you.
I'm starting to doubt the whole FM theory - since CFX+FM has 5 PARTs and Seattle has 7 parts - of which not all get activated unless you're playing the right note AND you have superknob turned to a certain position AND you - while holding down those - press [ASSIGN 1] then strike another note. Only then will Seattle use all 7 parts. So doing a test where you hold the A just below middle C on Seattle Sections, then switch to CFM+FM then release your MIDI-connected sustain pedal - this may show a problem with insufficient sustain OFF pairings.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Hi Jason,
yes, there is quite a bit of oops in there. The issue seems to be pretty complex, that's why.
I now know what the trigger for the issue is (and this also is somewhat in line with your suspicion) : It happens for those parts of the performance which are not used in the new performance I am switching to. Let's say I have a performance which sounds 2 parts (parts 1-2). If I switch to a performance with 1 part (part 1) while holding the pedal, then the part 2 of the old performance will hang.
To replicate, create an init AWM-2 performance from scratch and store it. Then replicate part 1 to 2. Store the new performance. When switching from the 2 part performance to the 1 part performance while holding a MIDI connected pedal, the part 2 of the old performance will hang.
This may be connected with the fact that the MIDI pedal (which is connected to my Nord) only ever sends on channel 1. It does not send the release on all parts. But well it also sends the pedal press only on channel one. But the note on it only sends on channel 1. Same for the note off which it also sends only on channel one. But the note off does trigger the release of the sustaining sound. And of course if both performances use the same parts then nothing hangs.
So I guess there is some internal routing of the MIDI commands coming in on channel 1 to all sounding parts. The note off coming in over MIDI is clearly routed to all parts of the old performance. The pedal release is for whatever reason not routed to all parts of the old performance but only to those parts which are also in the new performance. I think that's simply a bug.
(Just for the fun of it: Before the Montage I used to use a self-developed MIDI controller to couple the Nord and an Integra. The controller could emulated SSS. When I switched the sound from the Nord, the performance on the Integra did not necessarily change. In those cases with SSS enabled (which I of coursed called differently) it simply switched to sending on different channels. Of course when I released the keys or the pedal it did send that event on the old channels as well. So there is a special case that when notes are still sounding on the old channels, all note offs and the pedal release are sent to the old channels as well. The handling of the note off and the pedal off is of course in a different part of the code 😉 ...).
If a sustain pedal connected to a MIDI-connected device, when released, does not send the sustain OFF message to all parts it needs to (meaning the channels Montage expects) then this is a deficiency of the MIDI-connected device, as the rules are clear of what Montage needs to be successful. I'm not sure I'd call this a bug - but a compatibility issue. You can stick software between if you're OK with adding a laptop to your rig. There is software that can "scan" the MIDI bus for a message - then "script" a response. So if your MIDI-connected device will only send sustain OFF on Ch1 - you can scan for this and add the Ch2-8 sustain OFF messages ("inject these"). This will fix the issue if there's not a way to make this happen on the MIDI-connected device.
The other option is to leave the sustain on Montage and it will send sustain on/off messages on all MIDI channels that have active parts (unless zones+MIDI ch are used - then it will send, for those PARTs with zoned MIDI channels will match that config vs. the PART #).
There are other options which have a greater compromise on your PART usage / versatility.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Jason wrote:If a sustain pedal connected to a MIDI-connected device, when released, does not send the sustain OFF message to all parts it needs to (meaning the channels Montage expects) then this is a deficiency of the MIDI-connected device, as the rules are clear of what Montage needs to be successful.
So what are those rules? "You need to send pedal down, note on and note off on only one channel. You need to send the pedal up only on one channel, unless there is the following special case: If the old and new performance have parts which are used in the old but not in the new AND the old parts still are sustained through the pedal, then you need to send the pedal up on all parts." Sorry those are not very useful rules in my opinion. I strongly believe that there are two different places in the Montage's source code which handle the note off and the pedal up. And the latter one misses a fix which was applied to the note off handling.
I'm not sure I'd call this a bug - but a compatibility issue. You can stick software between if you're OK with adding a laptop to your rig. There is software that can "scan" the MIDI bus for a message - then "script" a response. So if your MIDI-connected device will only send sustain OFF on Ch1 - you can scan for this and add the Ch2-8 sustain OFF messages ("inject these"). This will fix the issue if there's not a way to make this happen on the MIDI-connected device.
I am not okay adding a laptop at all. But I would have my little midi controller which could fix the issue easily (although I am still not sure that sending on all channels would actually fix the issue, have to check that).
The other option is to leave the sustain on Montage and it will send sustain on/off messages on all MIDI channels that have active parts (unless zones+MIDI ch are used - then it will send, for those PARTs with zoned MIDI channels will match that config vs. the PART #).
There are other options which have a greater compromise on your PART usage / versatility.
The easiest workaround for me (now that I know the trigger for the problem) is to simply change all performances which are part of a song to have a non sounding part in all slots used in earlier performances used in the same song. I have only 6 of those, so it's an easy change. I still think this kind of a workaround should not be necessary. And I think that other users might also be surprised by that. So maybe documenting the rule set mentioned above in the manual would "fix" the issue ;).
BTW: I did not mention it explicitly, but I am running it in single channel mode. So multiple channels would not help.
moved to new discussion
MIDI mode as single channel makes a big difference to me - I'm only able to test multi-channel, so my comments are assuming multi until now (stated otherwise). Since I cannot test that mode, I'll let others help.
The only comments I'll make regarding MIDI mode = single are:
1) This feature is only officially documented in the version 1.10 new features document (which is reprinted in subsequent documents). And this documentation does not clearly show that receive channels are routed to the assigned MIDI channel for mode MIDI-Single. The documentation clearly "spells out" transmit is routed to this MIDI channel. In my opinion, having a category as "I/O" (which yes, the "I" means input and "O" means output) followed by a description that only expresses the output does leave something to be desired in terms of documentation clarity.
Discussion here (and request to add clarity to published/official documentation): https://yamahasynth.com/forum/zone-and-single-mode
Due to this ambiguous documentation - perhaps internal documentation is as ambiguous and therefore led to some problems in interpretation by the programming team(s). Your "lines of code" comment makes more sense to me now I know your mode is MIDI-single-channel.
... also, since the link above (previous discussion about documentation ambiguity) - new documentation has been released with the firmware v1.50 since that discussion. The other document that could have been updated to reflect how MIDI mode=single works is the data list. The data list from v1.10 until now still does not reflect any mention of this mode. Which makes portions of the "MIDI Data Format" incorrect/incomplete due to the omission of how the MIDI channel is affected by this setting.
In other words, although the documentation has been "flagged" as incomplete prior to release - the latest data list, although updated after raising the "flag", did not attend to this feature and left the documentation the same as if no midi=single channel setting feature was added. Thus relying on the already hilighted incomplete (or "poorly articulated") "new features" document.
2) I know you're using presets - so this doesn't apply - but keep in mind that for MIDI mode=single, if you use part zone control and change the MIDI channel, then this will override your channel, for that PART, and will not use the MIDI-mode=single assigned channel. This is more of a potential "gotcha" if you took the time to assign MIDI channels using PART zone channel settings - then, after-the-fact, tried to manage MIDI channels by setting the mode to Single channel.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Just to bring a conclusion to this thread: Firmware update 1.60 fixed the issue for me. Thanks a lot @badmister, I assume you reported the bug and it was fixed now.
So it only happens, when the pedal is attached over MIDI. But it only happens in some cases. Very weird.
Don't thank me... I never could reproduce your issue. Glad you figure it's a non issue now... I don't know what fixed it, but don't thank me, I didn't report it because I couldn't reproduce it. But if it makes you happy, your welcome!
Bad Mister wrote:
So it only happens, when the pedal is attached over MIDI. But it only happens in some cases. Very weird.
Don't thank me... I never could reproduce your issue. Glad you figure it's a non issue now... I don't know what fixed it, but don't thank me, I didn't report it because I couldn't reproduce it. But if it makes you happy, your welcome!
Okay, I just thought that because the bug fix is specifically mentioned in the readme: "Fixed a problem in which playback would continue without stopping if you switched a Performance with received Sustain messages from external equipment in the MIDI single channel mode.". Anyway it's great that it is fixed!