Several Bugs with MIDI in VST3

Bugs in arrange, DAW, Reaper 7.35:
tested with scaler 3.0.0 and 3.0.1
#1) 1st track after main, “Performances”, Midi CH 2 selected

If mixer contains any internal sound, such as “Felt piano”, Scaler sends MIDI to ALL channels, instead of selected channel ( CH 2 ).

If internal sound (Felt piano) off, MIDI sent only to CH 2.

#2) Selecting motions (menu behind magnifying class): MIDI sent to channel of the “Main Track” not to the CH of the track from which selection was triggered.

#3) Many of the motions are cut in half. When previewing, they progress completely graphically (the white bars within the black note blocks), but stop producing notes after 50%. i.e. 2/4 midi notes come through, but the other 2/4 not. There are clearly some notes left, but they just vanish. Also they don’t come into the track in arrange tab. The other expressions in the same menus play full 4/4.
Examples:
Expressions->Performances->Expressivo->Come, Stringendo
Expressions->Performances->Moderato->Facile, Maestoso
Expressions->Performances->Vivace->Deciso, Stretto
There are more; these are just 6 examples.

#4) Incorrect note on/off is sent when playing some chord set progressions (main track / chord follow track). Example: Cinematic->Suspense 5

Midi logging with protocol below. Seems like Scaler accidentally makes incorrect noteOffs.

Edit: Possibly related to issues “Inconsistent MIDI output” and “Possible bugs (export and arrange window)” part 1.

Log part showing one problem:
TYPE(NOTE_ON) CHANNEL(2) DATA1(39) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(46) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(55) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(58) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(63) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(70) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(75) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(79) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(39) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(46) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(55) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(58) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(63) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(70) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(75) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(79) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(42) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(49) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(58) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(61) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(66) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(73) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(78) DATA2(127)
TYPE(NOTE_ON) CHANNEL(2) DATA1(82) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(39) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(46) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(55) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(58) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(63) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(70) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(75) DATA2(127)
TYPE(NOTE_OFF) CHANNEL(2) DATA1(79) DATA2(127)

Links to possibly related issues:

Running Scaler 3 in as vst3 in Reaper. Put Augmented Mallets on a track, and if I stop playback, there is evidently no note-off to the plugin and the panic button in Scaler3 doesn’t stop the sound from playback. Anybody else find this (or similar) behavior with other plugin instruments?

Yes. I guess you are at least 4th to report this kind of behavior. My post, issue#4:

I’ve had a few stuck notes - some with VSTs and some with built-in instruments. Sometimes the panic button in S3 worked, other times I had to use the panic button on the DAW (Studio One). I see it as a bug that will get squished sooner rather than later.

Seems like none of the issues I have reported have been understood? I think this way because a lot of topics before and after this has been commented etc… and I don’t see any of these in known issues.

Hi @fridayeve. Welcome to the forum and than you for the feedback here. Apologies for being slow to respond but we are trying to take everyone’s feedback and comments on board.

You raise a few points here, so it might be easier to address them one by one. First of all:

I have not been able to reproduce this in Reaper on Windows 11.

I have two instrument tracks. Scaler 3 on the first, other instrument plugin on the second. Using Reaper’s mixer I create a send on track #1 (Scaler 3) to send MIDI via MIDI channel 2 to track #2 (other instruments plugin). Audio send is set to none, to send only MIDI not audio.

In Scaler 3, with the Felt Piano sound on the main track or any additional tracks, with motions e.g. Performances on or off, and either track’s MIDI out channel set to channel #2, that track is only ever outputting MIDI on MIDI channel 2. Setting the track’s MIDI output channel to channel 3 for example stops MIDI from being sent to track #2 in Reaper.

Does this sound different to your experience?

Hi @Tristan and thanks for coming to this.

I must say that this is strange. I could not reproduce problem #1 anymore. I must assume I retested this with cached 3.0.0 instead of 3.0.1 or some other failure. I got this constantly and without effort when I started with S3…
I must mark #1 as resolved.

I went to test again my problems #2, #3 and #4. I was still able to reproduce all of them.

Simplified descriptions:
#2 motions previews are played on channel of the main track for all tracks.
#3 few of the motions lose/miss half of them.
#4 wild midi note on/off events for chord progression / chord follow.

Additional comments for #4: trace midi events for “suspense 5”. the note on/offs are wild; duplicate events for same notes on same millisecond for some of the chords . Some receiving instrument VST go messed up with this and notes remain on infinitely (easy to notice with instruments without decay). Also I’m not sure if the sequence of note on/offs go correctly (like if index/pointer is sometimes wrong). I assume similar behavior is elsewhere and fixing root cause will fix more than just “suspense 5”. My tracing setup: start protokol with virtual MIDI input enabled. Start reaper and put scaler track: Route->Midi hardware output->Protokol

Hi @fridayeve, thanks for the update. Yes #2 and #3 are confirmed and on the list the be addressed. #2 is simply how the preview system currently works but we do plan to change this so it uses the correct sound for the relevant track.

#4 I am confused about. I can’t think of any reason why a chord set such as suspense 5 would be affecting note on/off behaviour. These are just chords, so the actual MIDI note on/off activity is happening elsewhere. We’ve tested using a Chord Follow track with a variety of instrument sounds, including short decay/release sounds but all seems to be working OK.

I wonder if the issue could be coming from somewhere else. If you are able to provide a video of this it would be very useful to us. Otherwise we will certainly keep looking into this to see what we can figure out.

I should note that I am using a pre-release build of an updated version releasing later this week, but I do not believe this particular concern has been addressed. Regardless it might be worth waiting and installing this update when available and seeing if it improves this behaviour for you:

Hi @Tristan ! Thank you a lot for your response and good to know that things progress.

#4: I agree that the specific chord progression, or any chord progression by itself is causing the problem. But scaler is sending the midi events, so something happens between reading the configuration (chords, their arrangement, …) and sending the resulting events. I just gave the specific progression as example where I found the issue, a medium for communication, so that you could easily trace the same thing and then proceed to find the real issue behind it.

Anyway, I will make a more clear presentation of the issue. I will also try to minimize it; what is the minimum setup for the problem to show itself; for example how many chords is needed for it to show up. Is 2 enough? 4? How many notes in chord needed to get the problem? What if I add empty chords in between chords. Difference between drag&drop of each chord to the DAW and the sequence seen from midi events coming directly from S3.

If I can’t grab a video, I’ll take screenshots & render a mp3 of the sound. I’ll send you the raw traces and make a graph showing the peculiar on/off events on time scale.

I estimate I can provide these in about 10-14 hours from now.

My hunch is that the whatever problem is behind this, is the same one what boingy and calsax are experiencing. I will also test with ‘Augmented Mallets’ among some other examples.

If you see any benefit, I could beta test your coming release. Of course I’ll provide first what I promised above…

1 Like

(post deleted by author)

Hi @Tristan !
This #4 is an interesting problem. The minimum arrangement to repeat the problem:

  • any at least 5 chords (example progression seen on the attached pic)
  • launch play from reaper, not from scaler plugin
  • if you want to see the events coming from S3, see the picture for setting midi trace with protokol

Below midi note on/off events coming from scaler.
The events marked in bold should not be there. They do not appear if pressing play within scaler 3 plugin instead of launching play from DAW. (but then DAW is practically not paying anything from its tracks).

time, ms ON/OFF Note# chord
0 ON 48, 52, 55 Cmaj
2001 OFF 48, 52, 55 Cmaj
2001 ON 49, 53, 57 DbAug
4001 OFF 49, 53, 57 DbAug
4001 ON 52, 55, 58 Edim
6001 OFF 52, 55, 58 Edim
6001 ON 53, 57, 60 Fmaj
6001 OFF 52, 55, 58 Edim
6001 ON 53, 57, 60 Fmaj
8002 OFF 53, 57, 60 Fmaj
8002 ON 55, 58, 61 Gdim
8002 OFF 53, 57, 60 Fmaj
8002 ON 55, 58, 61 Gdim
10001 OFF 55, 58, 61 Gdim

Some VSTs get messed up with the 5th chord remaining on forever. The panic button does nothing, you need to reset receiving VST (for example change preset etc.).
Examples: Arturia Augmented Mallets, Arturia Matrix-12 V2.

I have a workaround for this: put JS: Midi note sanitizer after scaler 3, before sending midi forward to Augmented mallets.