Page 1 of 1
Posted: 25 Jul 2007, 13:33
by nofish
Until now, I have used a third party midi range filter plugin to create keysplit patches (say midi notes C0 to C2 trigger Vst1 and C#2 to C4 trigger Vst2). But I'm sure, I can do it just using Usine's modules?
Posted: 26 Jul 2007, 00:44
by moody33
I've post an add-ons to show you how to do.
Midi In-> Midi Filter -> Code 1 attach to :
-Logical module (>=) pin A --->Stop Event Flow (in=midi input) --> Midi Out 1
Fader ( Note number 1-127) pin B
-Logical module (<) pin A --->Stop Event Flow (in=midi input) --> Midi out 2
Fader ( Note Number 1-127) pin B
Posted: 26 Jul 2007, 08:20
by senso
just a suggestion:
Try to activate the "Unpack" option in the MIDI In module.
Posted: 27 Jul 2007, 14:21
by nofish
senso wrote:just a suggestion:
Try to activate the "Unpack" option in the MIDI In module.
Not sure what you are meaning. Could you elaborate a bit more on it, please?
Posted: 28 Jul 2007, 10:30
by bsork
The unpack switch splits messages in to one per block execution (AKA cycle) (at least note messages - not sure about the other), so that logical and mathematical operations (like a key split) can be done on one message at the time. Manually played MIDI would almost never contain more than note message within one cycle, but that's of course not the case with sequenced, quantized MIDI.
In effect the unpacking creates a "mini-arpeggio". MIDI going through a cable is also a serial message, so that a chord would also be split up and sounded during some milliseconds. The resolution of the unpacking will be a bit slower or faster than a MIDI signal through a cable, depending on your block size and sampling rate.
Posted: 28 Jul 2007, 11:57
by senso
Yes Bsork, I just add a small comment.
Even if you play a chord with the best precision, MIDI msg never arrive exactly at the same time.
For many reasons:
1)The Human precision is very bad compare to the computer timing...
2) Midi Drivers and latency.
So, with a buffer size of around 256 (or less), or if the Asio buffer size is a multiple of 128 (128,256,512) the unpack option has no audible consequence. The "arpeggio" is too fast.
Anyway, the best way to create a key splitter is to make script!
Posted: 29 Jul 2007, 11:18
by Vincent
Hey guys,
The split question has been a small pb for me, so I can perhaps suggest some solutions...
For splitting patching, I gave up using exclusively Usine's modules (except for the final script that can remap midi notes and change velocities). You can do many things with Usine, including hosting VST. For that reason, Senso does not develop already existing plugs.
For MIDI proposes, you can try
NDC plugins. They work fine. To split keyboard and filter MIDI notes, I've done a very small and very simple plug with
Synthedit.
The best way to patch in Usine is to use the best thing in each domain and to combine them. This is a part of Usine power and flexibility.
Posted: 30 Jul 2007, 09:52
by bmoussay
Hello,
I'm learning the script language, and I've just made a simpe midi split script, posted in the add-ons.
Maybe Senso and/or Bsork coumd have a look at it to see if it can be improved.
I haven't tested it thoroughly, but for simple purposes it seems to be working.
Rgds,
B.
Posted: 31 Jul 2007, 09:22
by bsork
Hi bmoussay,
I've taken a look at your patch, and it looks almost ok to me. There's one thing missing though - and I think that's an error most of us have done the first time we've done something like this - you treat all the MIDI messages, not only the note messages.
The simplest way to fix it would be to filter before entering the script. You should use two MIDI Filter modules with NOTE ON and NOTE OFF respectively, but if you don't plan on using the pitch wheel, you can however use one filter with the ON/OFF/BEND setting.
Happy scripting!
Posted: 01 Aug 2007, 04:26
by bmoussay
Thank Bsork,
Good idea ideed, it'll make things lighter!
Rgds,
B.
Posted: 01 Aug 2007, 08:20
by bsork
If by lighter you mean lighter on the CPU when other types of messages are present; that's true since the script will not have to to deal with them. The important thing though is that other types of messages aren't affected.
You could of course also create some sort of filtering inside the script for all types of messages, and for instance send CC messages to out1 and pitch bend to out2 or whatever.
Hm - maybe an idea for a generic midi splitter add-on patch? Splits/zones for not only note messages, but also CC, pitch, aftertouch might be useful for those who like to stack a lot of VSTs and/or external MIDI instruments.
Posted: 05 Aug 2007, 23:04
by nofish
Thanks for all the replies. Actually I was a bit surprised at first that Usine has no "pre-build" Midi-Split function, because stacking sevaral VSTs over different keyboard ranges is one of the most important functions for me when creating patches for Live gigs. But people work differently of course. Anyways, as I'm not yet a gold member, I cannot D/L from the addon-section at the moment.
So, Vincent, would you perhaps be so kind to send me your Synthedit plug for checking it out?
Posted: 06 Aug 2007, 08:54
by senso
The solution posted by moody works fine. You don't have to download a special vst.
Posted: 06 Aug 2007, 12:43
by Vincent
Hi guys,
Unfortunately, I did not manage to do something working perfectly fine. It comes maybe from my MIDI setup which is using USB ports.
Using Stop Events Module seems to be the simplest, but it does not work fine. The Synthedit plug I did does not work perfectly ether but I'll try to find it on my disk and leave it some day on some link I'll give here.
As nofish said, stacking several VSTis over different keyboard ranges is one of the most important functions.