I need to know how to switch between smart articulations.

Official support for: bitwig.com
RELATED
PRODUCTS

Post

I can reproduce the issue with 5.1.3, if the notes are quick enough it isn't changing layer in time and the behaviour is inconsistent. It's kinda weird as initially everything is in sync and going to the right layer, then if the loop timing is changed at all while playback is ongoing then the note layer suddenly becomes inconsistent, but if transport is restarted it's back to consistently working. It feels like the automation loop and the note loop coming out of sync.

@Enrize definitely worth a report to bitwig support!

Post

pikey wrote: Mon Feb 12, 2024 8:21 pm That's just the way that midi notes work. Would expect any key switch system to be the same, you need to know what mode to be on at the start of a note so that the proper articulation can be loaded in time. All kontakt instruments I'm familiar with work in this way, if you sound a note then press a keyswitch it'll only apply to subsequent notes.

Can you explain what behaviour you are looking for instead?

If you want things to change mid-way through a note are you sure that BBC Symphonic Orchestra is even able to respond to that change? You'd be best to look at using modulation/automation of parameters instead, as those can happen mid-way through a note.

EDIT: Never just seen your video that's something different to the reddit thread. Just looks like a bug to me, send it to bitwig and see what they say.
Could you please try to reproduce?

Post

pikey wrote: Mon Feb 12, 2024 8:30 pm I can reproduce the issue with 5.1.3, if the notes are quick enough it isn't changing layer in time and the behaviour is inconsistent. It's kinda weird as initially everything is in sync and going to the right layer, then if the loop timing is changed at all while playback is ongoing then the note layer suddenly becomes inconsistent, but if transport is restarted it's back to consistently working. It feels like the automation loop and the note loop coming out of sync.

@Enrize definitely worth a report to bitwig support!
Yes i will do! Could you please also report it?

Post

pikey wrote: Mon Feb 12, 2024 8:30 pm I can reproduce the issue with 5.1.3, if the notes are quick enough it isn't changing layer in time and the behaviour is inconsistent. It's kinda weird as initially everything is in sync and going to the right layer, then if the loop timing is changed at all while playback is ongoing then the note layer suddenly becomes inconsistent, but if transport is restarted it's back to consistently working. It feels like the automation loop and the note loop coming out of sync.

@Enrize definitely worth a report to bitwig support!
Yes i will do! Could you please also report it?

Post

Enrize wrote: Mon Feb 12, 2024 8:52 pm
pikey wrote: Mon Feb 12, 2024 8:30 pm I can reproduce the issue with 5.1.3, if the notes are quick enough it isn't changing layer in time and the behaviour is inconsistent. It's kinda weird as initially everything is in sync and going to the right layer, then if the loop timing is changed at all while playback is ongoing then the note layer suddenly becomes inconsistent, but if transport is restarted it's back to consistently working. It feels like the automation loop and the note loop coming out of sync.

@Enrize definitely worth a report to bitwig support!
Yes i will do! Could you please also report it?
As a general rule I don't report issues that others have found that haven't actually affected me in a project.

- Number one because I don't particularly enjoy writing good bug reports, I'm a bit lazy and if I've already helped someone figure out a bug that doesn't directly impact me then I feel I've done enough work for one day :P
- Number two because it's redundant data to bitwig support and wastes their time reading the same thing twice, and may be misleading as I'm not actually impacted by this bug at this time

If you reply that this write up about not submitting a bug report would have taken the same amount of time as writing a bug report, then you'd be right... :ud:

Post

Yo this thread is brilliant! Eureka!!!

I've been able to set up something similar using note# keyswitching and applying some of the concepts I've learned/read in this thread.

What you do is create a Note FX layer, then within that create a Note FX selector on one of the layers. Then in each FX selector slot, simply create a Note Grid, set it to "Mono/True analog," and create a Constant Pitch device outputting the desired pitch of your keyswitch. Rinse and repeat Note Grids in selector slots for all your keyswitch note #'s and label them accordingly.

What this accomplishes is it allows the sample mapped MIDI performance data on a track to "pass through" and it ADDS the addition of the lower range constant keyswitch data via the FX layer containing the FX selector devices with Note Grids.

Setup and label everything, and BOOM! All your keyswitches are now automatable and clearly labeled via that Note FX Selector on your track.

What this also seems to be accomplishing for the quick testing I've done so far, is you can input your keyswitch automation right on the grid and there is no need to input it prior to a note! I've been able to randomly start playback mid-notes and it always is playing back the proper articulation. I think it's because the constant pitch in the Note Grid updates before midi note playback from the track, so your sampler sees the keyswitch before the note on message from the clip on your track?

All I know is this seems to be MUCH BETTER than the drum machine method I figured out last week, and frankly this is just about as good as integrated keyswitching IMO. Everything is labeled, it plays back from random linear timeline positions properly, even mid-note playback start is playing the correct articulations for me with this method. What also makes this a superior method to articulation mapping to the previous drum machine method I was using is this is all self-contained on a single track (the drum machine method needs two tracks). This is all recallable via a saved patch of course.

-edit- Okay the timing can "sometimes" not playback the articulation when it's right on the grid with a note on when I loop playback. It seems to do it 90% of the time, but occasionally it seems the sampler sees the note on msg before the constant pitch on looped playback. To solve this, open a note grid before the FX layer device, and insert a delay object in the Gate path, tweak the delay down to 0.03ms (< doesn't solve it 100%). This seems to ensure that the constant pitch is 100% seen by the sampler before the note on msg from your clip.

Cheers
"music is the best"

Post

Funk Dracula wrote: Tue Feb 13, 2024 6:00 am Yo this thread is brilliant! Eureka!!!

I've been able to set up something similar using note# keyswitching and applying some of the concepts I've learned/read in this thread.

What you do is create a Note FX layer, then within that create a Note FX selector on one of the layers. Then in each FX selector slot, simply create a Note Grid, set it to "Mono/True analog," and create a Constant Pitch device outputting the desired pitch of your keyswitch. Rinse and repeat Note Grids in selector slots for all your keyswitch note #'s and label them accordingly.

What this accomplishes is it allows the sample mapped MIDI performance data on a track to "pass through" and it ADDS the addition of the lower range constant keyswitch data via the FX layer containing the FX selector devices with Note Grids.

Setup and label everything, and BOOM! All your keyswitches are now automatable and clearly labeled via that Note FX Selector on your track.

What this also seems to be accomplishing for the quick testing I've done so far, is you can input your keyswitch automation right on the grid and there is no need to input it prior to a note! I've been able to randomly start playback mid-notes and it always is playing back the proper articulation. I think it's because the constant pitch in the Note Grid updates before midi note playback from the track, so your sampler sees the keyswitch before the note on message from the clip on your track?

All I know is this seems to be MUCH BETTER than the drum machine method I figured out last week, and frankly this is just about as good as integrated keyswitching IMO. Everything is labeled, it plays back from random linear timeline positions properly, even mid-note playback start is playing the correct articulations for me with this method. What also makes this a superior method to articulation mapping to the previous drum machine method I was using is this is all self-contained on a single track (the drum machine method needs two tracks). This is all recallable via a saved patch of course.

-edit- Okay the timing can "sometimes" not playback the articulation when it's right on the grid with a note on when I loop playback. It seems to do it 90% of the time, but occasionally it seems the sampler sees the note on msg before the constant pitch on looped playback. To solve this, open a note grid before the FX layer device, and insert a delay object in the Gate path, tweak the delay down to 0.03ms (< doesn't solve it 100%). This seems to ensure that the constant pitch is 100% seen by the sampler before the note on msg from your clip.

Cheers
Could you please share a preset?

Post

Enrize wrote: Tue Feb 13, 2024 7:47 am
Could you please share a preset?
I'm a bit busy right now but I will type up a post/tutorial with pics later on tonight/tomorrow and add it to the "Did you know tips/tricks" sticky in this sub.

Here is a quick screengrab of what it looks like. It's actually really simple.

Image

The first note grid has a delay inserted into the gate path set to 0.03ms to ensure the sampler sees the constant pitch we are going to generate first before note on/off from a clip. It delays the incoming midi on/off from clips, not the constant pitch we are going to set up later on down the signal flow. 0.03 ms is nothing and imperceivable but it is enough of a delay to fix a bit of an inconsistent timing problem Bitwig apparently has.

Then the Note FX Layer needs two layers. One is doing nothing and is a "pass through" for your note data coming from clips in arranger. The 2nd layer is for our Note FX selector that has all the Note Grids outputting the constant pitches for keyswitching. See that one lone constant pitch module I added in that Note Grid? It's set to C0, so when that Note Grid is selected, it is just constantly adding a C0 pitch to the sampler along with the performance notes that are passing through via the other FX Layer. Make sense? So the Note Grids in the slots below it are set to C#0, then the next one D0, and so on. Label them accordingly, and once all set up, you can automate the Note FX selection slots to keyswitch your articulations. Make sure the Note Grids are set to "mono/true analog" otherwise the constant pitch module won't output anything. Make sense? It works! haha

Cheers
"music is the best"

Post

Enrize wrote: Tue Feb 13, 2024 7:47 am Could you please share a preset?
Here is a copypasta from the tutorial/post I just made in the sticky.

An even better method for articulation mapping in Bitwig (v5.1.3)


This method involves a Note Grid -> a Note FX Layer Device -> a Note FX Selection Device hosting a number of Note Grids -> your sampler in need of articulations.


The signal flow looks like this:

Image


First we insert a Note Grid to apply a minuscule amount of delay to the MIDI on/off performance data playing back from your clips in the arranger window. We insert a delay module into the Gate path to ensure the sampler see's the keyswitch note data we are going to generate later on down the signal flow before it sees the notes coming from clips. The delay is set to 0.03ms. This also allows us to automate our articulations directly on a note, and start and stop playback from anywhere in a session and have the correct articulations playing back 100% of the time. You can even start playback mid-note, and it will update and playback that note's correct assigned articulation.

Image


Next we insert an FX Layer Device. This device in Bitwig that allows us to parallel process Note FX instead of serially. We are going to create two layers. One layer is going to be blank and act as our "pass through" that passes the MIDI on/off performance notes through right to the sampler for playback as usual. The second layer is going to be our "keyswitching" layer.

Image


The keyswitching layer is going to generate constant single note pitches equal to whatever pitches our sampler uses for articulation switches. We are going to accomplish switching between the generated pitches by using a Note FX Selector device in this layer, and selecting between Note Grids we insert into that device's slots, we will set up each Note Grid to generate it's own keyswitch pitch data.

Image


And the setup for these Note Grids is very simple. You just insert a Pitch module and define it's pitch to the desired note #. So in this example, my instruments keyswitch layout begins at C0. The first Note Grid is outputting C0, the next Note Grid is outputting C#0, the next one D0, and so on. Rinse and repeat until all your keyswitches are defined. You label these slots accordingly in their Inspector panel, and these clear labels are what we are going to see in Bitwigs automation lane when we go to automate our articulations for a performance. Make sure the Note Grids are set to "mono/true analog" because the pitch module will not output anything in poly mode.

Image


And that's it!

So what is happening here, is we are passing through our performance MIDI, and then in parallel there is a constant keyswitch note being added along with the arranger MIDI playback. What keyswitch note is added depends on which layer we select in the Note FX Selector Device, which we will select via automation. You can automate this in the arranger window, or even better, you can automate this in the Piano Roll, and it looks like this;

Image

As you hover over an area, the articulation name appears and you just click to pencil it in. It is nicely stepped and as you drag up and down you go through all the articulations you defined.

I've been testing this all night, and it works really well! Linear start/stop playback from anywhere in the timeline of a session, including starting somewhere mid-note, always play back the correct articulation defined for that note. It's because the keyswitch pitch data we are generating hits the sampler 0.03ms before the performance on/off note does, so no more "playing back the last defined keyswitch" problems.

Once you have your sampler's keyswiching layed out and defined, this is of course savable as a patch and you can easily recall it project to project.


Cheers
"music is the best"

Post

I have also been looking for a solution on how to switch articulation on my Vienna Ensemble Pro servers.
Your version works for me too...
Thanks for your time to publish this good workflow solution.

Post

dotzspee wrote: Mon Apr 29, 2024 10:00 am I have also been looking for a solution on how to switch articulation on my Vienna Ensemble Pro servers.
Your version works for me too...
Thanks for your time to publish this good workflow solution.
This has been updated to use only two Note Grids. This old version is VERY cpu intensive because Grid's use alot of CPU, even if they are only adding a single note to things.

The update is posted here in the "tips and tricks no chat" thread stickied in this subforum.

viewtopic.php?t=446739&start=240

Also there is a slight update to that. Do not connect the velocity to the delay in the first note grid. Everything else is good to go.

Cheers
Last edited by Funk Dracula on Mon Apr 29, 2024 2:32 pm, edited 1 time in total.
"music is the best"

Post

delete.
"music is the best"

Post Reply

Return to “Bitwig”