Welcome to %s forums

BrainModular Users Forum

Login Register

How to create keysplits?

I need help on a Patch
Post Reply
nofish
Member
Posts: 114
Contact:

Unread post by nofish » 25 Jul 2007, 13:33

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?

moody33
Member
Posts: 338
Contact:

Unread post by moody33 » 26 Jul 2007, 00:44

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

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 26 Jul 2007, 08:20

just a suggestion:
Try to activate the "Unpack" option in the MIDI In module.

nofish
Member
Posts: 114
Contact:

Unread post by nofish » 27 Jul 2007, 14:21

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?

bsork
Site Admin
Posts: 1334
Location: Asker, Norway
Contact:

Unread post by bsork » 28 Jul 2007, 10:30

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.
Bjørn S

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 28 Jul 2007, 11:57

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!

User avatar
Vincent
Member
Posts: 317
Location: PACA
Contact:

Unread post by Vincent » 29 Jul 2007, 11:18

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.
vincent michel
composer & novelist

bmoussay
Member
Posts: 130
Contact:

Unread post by bmoussay » 30 Jul 2007, 09:52

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.

bsork
Site Admin
Posts: 1334
Location: Asker, Norway
Contact:

Unread post by bsork » 31 Jul 2007, 09:22

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!
Bjørn S

bmoussay
Member
Posts: 130
Contact:

Unread post by bmoussay » 01 Aug 2007, 04:26

Thank Bsork,
Good idea ideed, it'll make things lighter!
Rgds,

B.

bsork
Site Admin
Posts: 1334
Location: Asker, Norway
Contact:

Unread post by bsork » 01 Aug 2007, 08:20

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.
Bjørn S

nofish
Member
Posts: 114
Contact:

Unread post by nofish » 05 Aug 2007, 23:04

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?

User avatar
senso
Site Admin
Posts: 4424
Location: France
Contact:

Unread post by senso » 06 Aug 2007, 08:54

The solution posted by moody works fine. You don't have to download a special vst.

User avatar
Vincent
Member
Posts: 317
Location: PACA
Contact:

Unread post by Vincent » 06 Aug 2007, 12:43

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.
vincent michel
composer & novelist

Post Reply

Who is online

Users browsing this forum: No registered users and 14 guests