Tags: posts polarity-music Bitwig Tutorial

Building a Simple Stochastic Sequencer in Bitwig Studio Grid

Tutorial | Nov 02, 2023

In this video, I demonstrate how to create a stochastic sequencer in Bitwig Studio's grid. By defining probabilities for different notes, rhythms, velocities, and other parameters, we can generate random sequences that can be used with various instruments or VST plugins. Additionally, I show how to record and playback these sequences using the grid's features, providing a comprehensive overview of this stochastic sequencer setup.

You can watch the Video on Youtube - support me on Patreon

Questions & Answers

Maybe you dont watch the video, here are some important takeaways:

What is the purpose of creating a stochastic sequencer in Bitwig Studio's grid?

The purpose of creating a stochastic sequencer in Bitwig Studio's grid is to have the ability to define the probability for each step of the sequence for certain notes, rhythms, velocities, and other parameters. This allows for a more randomized and dynamic sequence that can be used in various music production scenarios.

What are the main components used in creating a stochastic sequencer in Bitwig Studio's grid?

The main components used in creating a stochastic sequencer in Bitwig Studio's grid are the note grid, the pitches module for selecting the notes, a clock module for driving the sequencer, and a sample and hold module for randomizing the sequence. Octave shifts, velocity, pressure, and timbre can also be added to further modify the sequence.

How can the recorded sequence be used in Bitwig Studio or with other VST devices?

The recorded sequence can be used in Bitwig Studio by simply dragging it into a note clip or as a MIDI input for a VST device. It can also be recorded to a different track and then used to trigger other instruments or effects. The sequence contains all the information, such as pitch, velocity, and modulation, that can be further tweaked or manipulated.

What is the process of recording and playing back the created stochastic sequence?

To record the created stochastic sequence, a separate note grid can be used with recorders set up to capture the MIDI data, such as gates, pitch, velocity, pressure, and timbre. A trigger module is used to start and stop the recording process, and a playback button allows for replaying the recorded sequence from the buffer. The sequence can then be further modified or played back with different settings.


This is what im talking about in this video. The text is transcribed by AI, so it might not be perfect. If you find any mistakes, please let me know.
You can also click on the timestamps to jump to the right part of the video, which should be helpful.

[00:00:00] Hey folks, welcome back to another video.
[00:00:02] Today we want to create a stochastic sequencer inside of the grid of Bitwig Studio.
[00:00:07] I promise it's very simple, it's very easy.
[00:00:10] Trust me, okay?
[00:00:13] So a stochastic sequencer is basically where you define for each step of the sequence the
[00:00:19] probability of a certain note to occur or a certain rhythm to occur, right?
[00:00:24] So we want to dial in probabilities for the pitch, we want to dial in probabilities for
[00:00:28] the rhythm and the velocity and maybe pressure, timbre and so on.
[00:00:33] And then send everything out as a note for us to use on maybe to record this as a sequence
[00:00:40] and into a note clip or maybe we want to use it on a VST or on a Bitwig device, okay?
[00:00:46] So in Bitwig we want to open up here a note grid on an empty project.
[00:00:50] So let's go to a note grid because like I said, we want to use this on multiple instruments,
[00:00:57] different instruments, maybe VST devices or record this stuff.
[00:01:01] So we delete here basically the input, the note input and make sure here the note grid
[00:01:05] is on monophonic mode, voice is mono, it's very important.
[00:01:10] And in here we want to use a pitches module.
[00:01:17] And this one here, we select all the notes we want to use in our sequencer.
[00:01:22] You can use your chromatic notes or all the notes or maybe you pre-select a certain scale,
[00:01:28] what I do here, just want to select more or less D sharp minor.
[00:01:36] So depends on you, you can also change the step size, you don't need to use eight steps,
[00:01:41] you can use as many steps as you want.
[00:01:44] Then we disable here the pre-chord and we want to use a clock and drive basically at
[00:01:50] the step sequencer or this pitches module and we use probability module.
[00:01:57] The most important part is that you disable here the pre-chord and that you have the same
[00:02:03] step size.
[00:02:04] So this is eight steps and this is also eight steps.
[00:02:08] Okay, and then we use here a sample and hold and we connect these two, use here a quantizer
[00:02:16] so you can show you how it looks like.
[00:02:20] And now we increase here the speed of the clock to 32 hertz, the maximum speed.
[00:02:28] And now we can dial in, we want to have here basically in our sequence the note of D sharp,
[00:02:33] most of the times, you can see it selects note D sharp and we want to have a sharp in
[00:02:38] there sometimes.
[00:02:39] Let's go here.
[00:02:42] Now you can see it's switching here, flashing between D sharp and A sharp and sometimes
[00:02:48] you want to also have here, let's say F sharp in there, only sometimes or maybe most of
[00:02:55] the times, right?
[00:02:57] So it selects F sharp most of the times.
[00:03:01] But this is a signal you can't send out because it changes pitches pretty fast, right?
[00:03:07] So what we want to do is we want to use a sample and hold here and use a trigger module
[00:03:15] to update this pitch here basically 16 in a 16 note grid.
[00:03:22] So this is now something you can send out as a pitch and as triggers and you can use here
[00:03:28] a polymer or maybe some VST you want to use, maybe a convolution reverb, maybe delay two.
[00:03:46] So now we can say I want only to have D sharp in there or maybe C sharp, C sharp most of
[00:03:55] the times.
[00:03:56] And it creates basically a sequence for you based on these probabilities.
[00:04:01] So this is the main idea behind this and we flash this out now for all kinds of data and
[00:04:07] for all kinds of informations, not only for pitches.
[00:04:11] So we also want to have here octave shifts in there.
[00:04:14] So we use an octave.
[00:04:18] We use zero and then we use a step module so we can dial in some steps.
[00:04:23] We also want to have here minus octave so octave down.
[00:04:27] So we use your bipolar signal.
[00:04:30] So let's say use a modular modulator out here and use on value so we can test each value
[00:04:42] disabled the pre-code here so we can select something.
[00:04:44] So the first position is basically no octave shift and the second one is probably one octave
[00:04:49] higher but we dial in here two or three.
[00:04:53] Let's go for three.
[00:04:56] So here we dial in just a tad and this is selected here and this is modulated.
[00:05:04] When I hover over this, you can see down here in the bottom info bar, you can see there
[00:05:11] is octave shift zero, which is the current value and then plus one.
[00:05:16] This is the modulated value.
[00:05:18] So it's exactly what we want plus one.
[00:05:21] So we use out here, move on to the next one.
[00:05:24] This should be plus two.
[00:05:27] Yes.
[00:05:29] Then the next one is all the way.
[00:05:31] This is plus three.
[00:05:32] So three octaves higher.
[00:05:35] Then we do the same thing for down.
[00:05:39] So this is minus one, hopefully.
[00:05:41] Yes.
[00:05:43] This is minus two.
[00:05:46] Yes.
[00:05:47] This is nothing yet.
[00:05:51] This is minus three.
[00:05:53] Nice.
[00:05:54] Okay.
[00:05:55] So we have multiple octave shifts in there.
[00:05:57] Also at the end, you can leave this three or maybe make the step count lower to eight
[00:06:01] but I leave it at eight here.
[00:06:05] So now that we have this, we can remove the value here.
[00:06:08] We can drive this also with a clock.
[00:06:11] We want to use probably also a sample and hold here and to use probabilities.
[00:06:19] But first I use a display here and say this is the notes probability.
[00:06:27] Then we have here octaves.
[00:06:32] Octaves.
[00:06:37] And then we drive here basically the sample and hold.
[00:06:44] This is pitch.
[00:06:47] Okay.
[00:06:50] Cool.
[00:06:52] So now we can define here basically what kind of octave shift we want to have.
[00:06:57] Sometimes we want to have one octave higher.
[00:07:00] Sometimes we want to have one octave lower and rarely maybe two octaves or three octaves
[00:07:07] or this is actually two octaves higher.
[00:07:11] This is one octave down.
[00:07:14] So it depends on how you structure this.
[00:07:15] Maybe you can structure this differently.
[00:07:17] Maybe three up and three down is way too much.
[00:07:22] But just to show you this.
[00:07:36] So basically at the moment we only select two notes here.
[00:07:39] C# and D# but we have a lot of octave shifts in there.
[00:07:44] Maybe we want to have here A#.
[00:07:53] Okay.
[00:07:58] Works quite well so far.
[00:08:00] Now we want to move on to let's say velocity.
[00:08:06] We do basically the same thing here.
[00:08:10] We move this up.
[00:08:13] This is velocity.
[00:08:16] But here we don't need bipolar.
[00:08:17] We use unipolar and draw in some kind of ramp.
[00:08:21] So we have low velocity and high velocity.
[00:08:25] And then we select here this kind of thing here.
[00:08:31] So we can say we want to have low velocity or high velocity all the time or in the middle.
[00:08:38] Something in the middle here.
[00:08:40] And then draw kind of a line with this.
[00:08:43] And here I think we don't need to mutilate.
[00:08:45] We can just go into the out here velocity out.
[00:08:50] And we want to have also your sample and hold with the triggers.
[00:08:57] So we want to have basically for each note we trigger here.
[00:09:01] We want to have a right velocity setting.
[00:09:03] Oh, we have to go in this here.
[00:09:08] Okay.
[00:09:09] So now that we have this we can also do this for let's say pressure.
[00:09:17] And also tumble.
[00:09:28] Makes a lot of difference to use multiple modulation values here.
[00:09:35] So high pressure, high or low pressure, high pressure, low tumble, high tumble.
[00:09:42] And we go with the pressure in we have to expand this go with the pressure here in this
[00:09:49] one.
[00:09:50] We go into this one.
[00:09:54] We can also select gain and pen if you want to.
[00:09:57] Or you can do this if you want to.
[00:09:59] I just leave it here with these settings.
[00:10:03] Okay.
[00:10:04] So then we need also to expand here of course this to pressure and tumble.
[00:10:11] So this goes into that.
[00:10:24] Tumble goes into top one.
[00:10:27] Okay.
[00:10:31] So in this in the since now you can use velocity of course we already select or use velocity
[00:10:37] here with the velocity sensitivity and we can say pressure is maybe for the wave table
[00:10:42] position right.
[00:10:43] And then you can say I want to be with the wave table all the time at zero zero index
[00:10:50] and sometimes I want to select this position in the wave table right and so on.
[00:11:01] You can also increase this here to maybe I don't know 64 steps if you want to as we
[00:11:07] can dial in for each of our 64 table positions here the probability if you want to.
[00:11:15] But I just choose eight because I'm lazy.
[00:11:21] Also tumble maybe tumble we can use here for the modulation amount for the envelope
[00:11:27] modulation amount.
[00:11:53] And so this is basically how you paint in or you create sequences this way.
[00:11:59] The last thing you want to do is kind of the rhythm at the moment everything triggers basically
[00:12:06] in 60 note steps.
[00:12:07] So you want to change the rhythm for each note.
[00:12:13] So we do this here pretty simply by using a merge and then use multiple triggers.
[00:12:23] So we say we want to have maybe two notes we want to have four notes.
[00:12:29] We want to have eight notes of course we want to have 16 notes.
[00:12:39] It's 16 and maybe 32.
[00:12:44] Just for quick roles and we want to leave something empty so I have to have no trigger
[00:12:50] at all to make a pause basically in the sequence.
[00:12:54] I think that's also important.
[00:12:56] And we also drive this here with the clock signal and to use a sample and hold here in
[00:13:03] between that for this whole thing.
[00:13:11] And to use of course here triggers and we have here what do we have one two three four
[00:13:21] five six.
[00:13:22] So six positions we go step down to six and we use this here for the sample and hold for
[00:13:30] the trigger.
[00:13:31] So now we can select we want to have two notes all the time and sometimes we want to have
[00:13:37] four triggers and sometimes eight very rarely maybe 16 and even more rarely 32 notes and
[00:13:50] we have a lot of pause things.
[00:13:54] So now it selects these things here on on the merge and we want to have I think when
[00:14:04] we switch over switch pretty drastically between these things we want to slow this down with
[00:14:09] the sample and hold and use maybe 16 notes and we want to have the interpolation on nearest
[00:14:15] so we don't have in between things.
[00:14:20] So now you can see it switches between these things in the 16 note grid on this also the
[00:14:25] 16 note grid is basically the highest for updating here the everything in there.
[00:14:30] We also want to instead of using 16 notes to trigger the notes we use now the output
[00:14:35] of that and to use that for sampling here the pitch and all the other things.
[00:14:49] Something like that and basically the 16 note trigger is only there to change this basically
[00:14:55] the update rate the update rate of of changing the rhythm and the rhythm itself then is used
[00:15:02] to trigger the notes and trigger each value for the notes.
[00:15:07] So this this idea behind it.
[00:15:11] So let's see how this sounds now.
[00:15:16] So we want to have two notes pretty slow sequence sometimes a pause.
[00:15:34] Select high velocity here maybe four notes
[00:15:57] maybe different wave table.
[00:16:27] Yeah.
[00:16:50] That's quite okay I think.
[00:16:58] Okay so now we can create sequences and these kind of sequences are also kind of random.
[00:17:04] So what you want to have is basically you want to sample the sequence and repeat it in a
[00:17:08] way.
[00:17:09] So what you can do is you can first and foremost just record this to a different track.
[00:17:14] You can say and add this instrument track here and then use here the output of the notes
[00:17:25] grid and just sample this and then record the sequence and then use the sequence maybe
[00:17:34] for a different VST or just drag it over here and disable the thing and just let it
[00:17:41] play.
[00:17:45] And everything is in here.
[00:17:46] I can see we have different velocity settings.
[00:17:49] We have different timbre settings.
[00:17:51] We have different pressure settings.
[00:17:53] So everything is saved basically in this note clip that we created with the note grid.
[00:18:03] But we can also create inside of the grid some kind of recording device just to record
[00:18:09] everything.
[00:18:11] So I want to show you this here quickly.
[00:18:19] Or maybe you do this in a separate note grid to actually don't make this too complicated
[00:18:23] here.
[00:18:25] So I want to just save this.
[00:18:53] Save to the preset and then use a new note grid.
[00:18:59] And in this note grid we want to record all the MIDI data on note data we received from
[00:19:03] the first note grid into recorders.
[00:19:06] And for a moment here I just disabled the polymer.
[00:19:11] So we need a recorder here.
[00:19:12] The recorder is sadly not that long.
[00:19:14] We can only record I think up to three or four seconds or so.
[00:19:19] But here with these recorders we want to record of course the gates.
[00:19:25] We want to record the pitch informations.
[00:19:31] We want to record velocity.
[00:19:37] Also goes out.
[00:19:38] We also want to record pressure or timbre in this case here.
[00:19:46] And we want to record pressure.
[00:19:55] Okay so now we have the recorders in place.
[00:19:58] We need to create some kind of control structure.
[00:20:01] So we want to use a trigger and call this record.
[00:20:06] Every time we want to press this we want to start to record the sequence.
[00:20:10] But the sequence needs to start exactly on the grid, on the beat grid.
[00:20:16] Here you can see again press this anytime right out of the grid.
[00:20:20] So we need to clock one ties this to a trigger module.
[00:20:28] Say one trigger at a time.
[00:20:32] So now it waits basically for the trigger to yeah it waits basically for the clock signal
[00:20:38] here to trigger actually what I pressed here on the button.
[00:20:43] So this is cool.
[00:20:45] Then we need a face.
[00:20:48] Face in the face in is basically gives us a ramp signal and it's exactly one ball on
[00:20:54] you can see this here on the device itself device face length one bar.
[00:20:59] So this ramp signals exactly one ball on and synchronized to the transport of bitwig
[00:21:03] studio.
[00:21:05] And we can say we want to create a trigger from that using logic here comparator and
[00:21:14] say the second input track is empty.
[00:21:18] And this means basically as long as the face signal is not zero give us a one.
[00:21:23] So this is most of the time as you can see here.
[00:21:26] So we get the one instead of the beginning here we get zero right because here's the
[00:21:32] ramp signal zero so we get a zero but the rest of the time is not zero.
[00:21:37] So we get the one so we can play around with this a bit.
[00:21:43] So let's see we have a record button we want to press this button then we want to start
[00:21:48] record exactly for one for one bar so we need the latch for that.
[00:21:55] So start recording right and then this one here when this is not zero then trigger basically
[00:22:08] a close down the recording.
[00:22:10] This looks like this so I press a button.
[00:22:12] It waits basically until the bar starts then it starts recording and then at the end of
[00:22:18] the bar it stops recording it switches back to one.
[00:22:22] So this is exactly what we want for the recording trigger behavior.
[00:22:30] So now we can press record it waits then it triggers the recording and the bars ended
[00:22:38] it ends recording.
[00:22:39] So perfect for recording stuff.
[00:22:46] Probably want to have this here then we need the play button so I use button here and call
[00:22:54] this play and with this we only want to let's say use the selector here and say I want to
[00:23:06] have this signal here which is basically just this trigger behavior right it triggers all
[00:23:14] the time but in the beginning here of a bar it goes to zero.
[00:23:18] This is basically the playback behavior because we want to re-trigger the playback all the
[00:23:23] time.
[00:23:24] So we use this here as a playback maybe also use a different color and you can switch the
[00:23:32] playback on with that.
[00:23:34] Maybe put this here.
[00:23:37] So now we can say playback or it's missing here connection.
[00:23:45] So you can see it re-triggers all the time and place back everything that's in the buffer.
[00:23:53] So we can remove this you can move this over here make it a bit more compact or maybe move
[00:24:00] this over there.
[00:24:08] So now we can switch back on here the polymer.
[00:24:21] So place the same sequence one bar sequence every time from the buffer and we can re-record
[00:24:27] this from this device here at any time.
[00:24:31] So we press just record and it records a new sequence.
[00:24:43] Sadly as I said the recorder is very small so we can only record up to three seconds
[00:24:52] or four seconds I don't know exactly.
[00:24:54] So it's barely just one bar would be nice to have actually the possibility just record
[00:25:00] four bars and maybe also have some possibilities for slowing down the playback speed and you
[00:25:06] know play from different positions and so on.
[00:25:08] This would be much better.
[00:25:10] I don't know I am asking for this for years now.
[00:25:15] We'll see if you get something like this in the future.
[00:25:18] So if you want to go back to your initial stochastic output you just disable this.
[00:25:24] Or you maybe implement another control structure to switch between the inputs and the outputs
[00:25:29] of the recorders here but you can also just disable this and call it the day.
[00:25:38] Okay so I put these two presets up on my Patreon so you can download it if you want to.
[00:25:47] Everyone else can just rebuild this from this video hopefully and learn something from it.
[00:25:53] So a small little stochastic sequencer inside of the grid.
[00:25:57] It's not that super complicated but I get it it's pretty hard if you actually never
[00:26:01] did something in the grid.
[00:26:04] But yeah I want to show you this in this video and I think that's it for this video.
[00:26:09] Thanks for watching.
[00:26:10] Leave a like if you liked the video and see you in the next one.
[00:26:14] Bye.
[00:26:14] [MUSIC]