Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Proper "Midi killer\reviver" on preset change

For general discussion related FlowStone

Proper "Midi killer\reviver" on preset change

Postby kortezzzz » Mon May 20, 2019 10:30 am

Something that disturbs me for a while: Is there any solution for "killing" midi signal properly before preset changes and reviving it back successfully without ending with stack notes during the switch? I've tried some solutions, but non of them is 100% safe. The situation in mind is when the user plays notes while he's switching presets with midi control change at the same time. For instance, the famous live hardware work station behenoths do it very smoothly. What kinda workaround they use? Can it translated correctly in FS?
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Proper "Midi killer\reviver" on preset change

Postby Spogg » Mon May 20, 2019 10:46 am

I think you might need some sort of Ruby-based MIDI buffer solution. The trigger “Before preset change” could tell the Ruby code what to do and preserve the data for when the code gets an “After preset change” trigger. Then the code could re-send the MIDI data.
Far beyond my capabilities I’m afraid, but the approach may work.

Just in case you haven’t looked yet, the Preset Manager prim has an “Opts” options input which lets you tell it how to behave on preset changes.

Cheers

Spogg
User avatar
Spogg
 
Posts: 3323
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Proper "Midi killer\reviver" on preset change

Postby kortezzzz » Mon May 20, 2019 11:08 am

Thanks spogg,

Yes, setting the options to 4 is making things much better (not a smooth switch, since it kills the voices with a hard axe blow) but there would be still some intruding stack notes here in there.

Taking into account that Trog has made a quite smooth and solid notes change in your Midimus, I aim thinking that this kind of method would work in this case as well, but as you said, It's far beyond the capabilities of most of us. However, if this kind of workaround is possible, it will be then a"must have" feature in every synth that will be ever developed with FS.
Last edited by kortezzzz on Mon May 20, 2019 11:16 am, edited 1 time in total.
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Proper "Midi killer\reviver" on preset change

Postby Spogg » Mon May 20, 2019 11:16 am

I see there’s a MIDI buffer prim (R&D) in FS 3.06 but no information other than it collects MIDI data which can be flushed or cleared by triggers.
Might be worth checking out?

Cheers

Spogg
User avatar
Spogg
 
Posts: 3323
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Proper "Midi killer\reviver" on preset change

Postby kortezzzz » Mon May 20, 2019 11:38 am

I don't think the midi buffer has something to do with this. My logic tells me that what is needed here is a simple as possible midi mechanism that will freeze the midi signal for about 100-200 milliseconds (until the preset changes) and then will give the already pressed note a new life automatically with a fresh "note on" message. Maybe I'm wrong. I have no idea if it even close to solve this problem, but it seems quite logical to me...
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Proper "Midi killer\reviver" on preset change

Postby kortezzzz » Mon May 20, 2019 11:41 am

Any way, here is my best setup so far. Hope it helps until something better will come up
Attachments
(midi killer) 32bit.fsm
(50.22 KiB) Downloaded 754 times
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Proper "Midi killer\reviver" on preset change

Postby Spogg » Mon May 20, 2019 11:49 am

This certainly kills the notes!

But it doesn’t seem to re-send them after the preset change, which is what I thought you wanted.

Or maybe I misunderstood something…

Cheers

Spogg
User avatar
Spogg
 
Posts: 3323
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Proper "Midi killer\reviver" on preset change

Postby kortezzzz » Mon May 20, 2019 12:19 pm

Yes, you are right. My set-up only gets rid of one problem: The stack notes :|
The other mission most likely needs Ruby rescue. In the meanwhile I've checked up how the famous brands deal with it.
Arturia's "Pigments" kills the sound and the voices. So do AAS synths and even Dune3. BUT... there is sylenth that makes a perfect preset switch, lightening fast and continues the sustained note amazingly, so there is a hope 8-)
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Proper "Midi killer\reviver" on preset change

Postby Spogg » Mon May 20, 2019 12:36 pm

Fascinating!

I think it may be down to the architecture of the synth itself. When a preset changes, a whole bunch of parameters can change instantly which could be levels, routings, selections etc. This would lead to clicks at least, and possibly unexpected sounds when the preset changes. For example, a selector that switches between sine and square, on preset change, would definitely click often. You would need soft-switching using de-zipped multipliers, but then you’d get a CPU hit because all the oscillators would be in the stream, even if muted.

This potential stream interruption is the reason I normally include a Clear Audio prim for preset changes (before change or load), so everything is initialised ready for the new preset parameters. If the routing is fixed it may be possible to de-zip the changes of parameter values for a softer shift. But that’s decided at the design stage.

Cheers

Spogg
User avatar
Spogg
 
Posts: 3323
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Proper "Midi killer\reviver" on preset change

Postby trogluddite » Mon May 20, 2019 12:54 pm

kortezzzz wrote:Yes, setting the options to 4 is making things much better (not a smooth switch, since it kills the voices with a hard axe blow)

Note that the options are bit-wise flags, so you can add them together to combine modes - e.g. No-recompile (4) + No-voice-kill (2) = 6. As I've never really been a synth builder, I'm not sure whether that would get you any closer to a smooth change-over. The 'no-recompile' option may need to be used with care. If a preset change alters routing of streams through selectors etc., then a recompile would be necessary. I'm not sure if 'no-recompile' handles this intelligently - it may be that it's just an optimisation for cases where you know that presets never alter the routing.

If full MIDI shut-down/restore is required, then Ruby can certainly handle it, and you're on the right track with your note buffer schematic. However, I'd investigate all of the combined preset-manager options in detail first, as the actions of the buffer might need to be matched to the preset manager options for a truly "universal" solution (the "don't kill voices' option in particular).
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
User avatar
trogluddite
 
Posts: 1730
Joined: Fri Oct 22, 2010 12:46 am
Location: Yorkshire, UK

Next

Return to General

Who is online

Users browsing this forum: No registered users and 42 guests