 Hello, Oscillator Sync here. This little friend here is the MIDI Hub from Blockus. It is a 4in and 4out MIDI processing unit, and it can do all of the good utility MIDI merging, MIDI splitting. It can do filtering of MIDI messages and the like, but it's actually set up so that it can be a very good friend to a hardware setup where you need to do more interesting MIDI processing in order to get more from your equipment. Just quickly before we get going, in the interests of transparency, the MIDI Hub was sent to me by Blockus to take a look at and make a video on it if I wanted to. They've had no input on this video, and I wouldn't be making this video if I didn't think this was something that was interesting enough to talk about, so let's talk about why I think this little friend is interesting. Now on the surface, because it doesn't have a screen, it's got those eight lights on the front, I guess if you include the power, it's got a single button on the back. This doesn't necessarily look like it's going to be a particularly configurable piece of equipment, but actually the MIDI Hub hardware is kind of only part of the story. It's coupled with a software editor which allows us to load pipelines of MIDI processing onto the MIDI Hub, which we can then take away and use without the editor into the different preset slots there, which allow us to set up really potentially quite involved sets of MIDI processing that allow us to do interesting stuff. So what I want to explore in this video and probably in a couple more videos is how we can take the MIDI Hub and use it as almost a generative compositional device. But before we get there, just to introduce the basic concepts, the setup that I have right now is I have my Keystep Pro plugged into the first input, input A on the MIDI Hub, and coming out of output A on the MIDI Hub, we have the NTS1 from Cork. So just to introduce how the pipelines work, what I'd like to do is set up a preset which gives us velocity control over the filter on the NTS1. Okay, so this is the MIDI Hub editor here, and if I just smash the keys on my Keystep Pro for a second, you don't have to believe me that I am smashing the keys there, there's no sound being generated by the NTS1, and that's because currently this pipeline is completely empty, so there's no way for the MIDI data to flow from one place to another. So on the left hand side here we've got a bunch of different pipes that we can add to our pipeline. So we've got pipes to do with inputs and outputs, we have ways of generating clock and CCLFOs here, we have filters which will filter messages or reduce the range of the messages that are coming through, we have modifiers which are going to take incoming MIDI messages and change them somehow, and lots of different ways it could change them, and then down at the bottom here we have some additional functionality around tempo. So if we want to create just a MIDI through from the two ports that we had plugged in which was just port A for the input and port A for the output, what we want to do is just drag a from MIDI pipe in here, we can see here that it says from A, and if you click on one of these pipes over here in the properties you get some additional things that we can change, so we can change what our input is here. You also get help, contextual help, whenever you click on anything down here which is very useful, don't have to keep opening up the manual. If we want to then route that to the corresponding output we can just bring in a two MIDI pipe here, now we have a pipeline that goes from input A to output A, and now if I place some notes on the key step we have sound, brilliant. So this is how you would set up routing, and if you wanted to create a MIDI splitter, for example, so if we wanted to split the input from A out to A and B we could just drag in another from A here, bring in A to, and then change its destination to MIDI B, so now we have from A to A and from A to B, so we've created a MIDI splitter between those two ports, we could do merging the same way. So if you just want to set up routing, brilliant, we can do that really easily just by choosing the ins and outs as we need. As it happens, that's not really what we want to do, what we want to do in our case is give the NTS-1 some velocity mapping onto the filter, so how do we play the more the filter opens up, because that's not something you can do on the unit by default. So in order to do that we're going to look for a modifier which is called transform, and what the transform pipe does is it takes one type of message, for example a note on message, and then transforms it into a different type of message, for example cc message. So we can drag this in here, pop it in the middle, and we can see down here we have our properties. So what we're interested in here is we're going to convert the note on into, and this is correct as it happens, a control change. So if we want to know what control change, we'll just grab the MIDI implementation chart for the NTS-1, we're looking for the filter cutoff here which is here, so that's 43. So set cc number to argument one, so we want to set that to 43, and the value is going to be the incoming velocity which we can just leave as is, and now hopefully if I play softly we have a nice dark sound, and as I play harder we get a brighter sound. Now you can probably hear that there's a almost a little almost glitchy click at the start of the note sometimes, and that's because at the moment what's happening is we're playing the note and then straight afterwards the cc has been changed to its new value, so if I go from a very quiet and closed filter, and then what you can hear there is the filter quickly moving to its new value after I've played the note, but we can fix that here, so we have a mode here which is insert before which means that our control change message is being sent before the note message gets through, so now we have proper velocity control over the filter. You could use this very similarly for example to get proper velocity control on the vulcrafem for example, so that's sort of the basic idea you have your inputs, your outputs, and then in between there you do other processing, and there's a whole lot of different processing that we can do. What I'm interested in is can we use this processing in order to make music on its own just by doing midi processing, so let's have an explore shall we. Okay so I have swapped the nts1 out for something with a little bit more polyphony which is the op6, and in the editor we've just got that standard through preset to start off with, and what I'd like to do is kind of a challenge or a way to explore the functionality here, so I've just got a sequence set up here which is just a single note played once a bar. So the question is can we take that one note being played once a bar and turn it into something potentially lovely, let's try that shall we, potentially lovely, that I do aspire to the very highest. So one thing that I think is quite interesting in here is in the modifiers we have this delay pipe here, and that basically does a midi delay, so rather than it being an audio effect it's going to take a note being played, and it's going to treat it like there was a delay on the midi message rather than on the audio, so let's bring that in and have a look. You can hear what it's doing there, and the way it's doing that is it's applying a feedback to it, but the feedback is going to be reducing the velocity instead, so you kind of get that velocity drop off. It's tempo synced at the moment, and we're able to overdub additional notes as we go, so at the moment the repetitions are set to four, let's set that to infinite and just let the feedback die down instead. Okay so what we've got there is a nice little delay, there's all happening inside midi. So let's introduce some variation in the notes that are being played, so again within the pipes here we have a random, and if we put that after our delay, because the delay is still kicking out midi messages, we're going to be able to randomize notes within those midi messages, make sure it's on the right side of the delay. So over here in the settings for the random we can change what is going to be randomized, so on the drop down here we have pitch, sense, semitones, octaves, so let's go semitones, so we're choosing new notes, and let's send it an octave north and an octave south, 21 that's what I meant. Now every time that note gets played the delayed versions of it are getting put to random notes, quite interesting, I think it's got a certain charm to it, but I think maybe what would make more sense is if we could have this all happening within a scale, so rather than being just purely random notes an octave above or an octave beneath, let's actually force all of these notes into the scale like you would have on a scale mode on the keystep for example, so in order to do that the pipe that we want to bring in is this one here which is the scale remap, so let's pop that in there, and at the moment this is set to a chromatic, so it's just going to be allowing all the notes through, but we can choose different presets here, and now stuff's been forced into particular scales, or indeed you can choose your own as well, so we can rather than using one of the presets we can start to think about forcing stuff into our own scale, so let's set this to chromatic, and then so maybe root always goes to the root, let's go to the flat second, let's go from mostly sort of major feeling thing, something like that, nice, okay, so I think what might be interesting is to take this whole pipeline here and duplicate it, but have it spit out the delay at a different tempo, different sync to tempo here, so we can right click here, duplicate our whole pipeline, now you can hear it's playing two note chords because it's happening twice, that's quite nice, but if we come into the delay of the second one, perhaps we'll make this one go faster, maybe sixteenth notes, nice little clusters out of starpaps, we can make it feedback for a bit longer, and maybe this higher one because it's these little clusters of notes, perhaps we'll have this one operating an octave above, so in here we can grab the transpose, I believe, and we're here to put this at the start and transpose the incoming note or at the end, I guess we'll just stick it at the end and up by 12 so we can stop an octave, and I kind of feel like it might be nice to duplicate this again, make it slower and down an octave, so we'll duplicate this one because it's already got the transpose in it, also quite pretty, has to be said, but let's take this delay and make it a lot slower, maybe like quarter note something, lower that feedback because it doesn't need to go on for quite that long, and transpose minus 12 instead, we kind of get these interesting clusters that are all tied within that world, and just to remind you this is all just one note being played once per bar here on the keystep, so I think maybe that at some points this is A a little bit busy and B there's maybe a little bit too much repetitiveness because it's always the same rhythm each time, as nice as it is, so let's make it a little bit more sparse, shall we, so we have this chance pipe here which is going to allow us to essentially, a bit like the probability on the electron boxes, it's going to basically say here's a percentage chance that any particular note is going to be played because remember this delay is MIDI notes rather than audio, it's going to be per repeat that we'll be able to check the chance, so let's grab this, well first of all let's just mute or other bypass these two outputs here, so we're just listening to our first one, and we can take that chance and we can pop it here, and now we've got two different types of chances here, so the timed chance I think breaks everything down into whatever this period is, and decides within this period whether anything comes through, then you have the general chance percentage here which is just the chance per note, so I think for our purposes our timed chance will have that at 100%, and just maybe have like a 75% chance that any note is going to play, so now we can hear that not every note is coming through, and that's including the including the original note, not just the ones that have been delayed because all within this pipeline, so we can bring in our twinkly friend here and do the same thing, set the timed chance to 100%, and because it's busier we can have the chance at 50% instead, and then our lower notes, same thing or 200% for the timed chance and maybe again 75% chance that it plays, do we want to drop that down another octave? Yes, I think we do, and just to reinforce once again this is a single note being played once per bar that's generating all of this, now if you look down at the bottom here where it says 20 of 255 pipes, there are many many more bits of MIDI processing that we can start to introduce here, maybe we'll just add one more for today, let's maybe let's add like a straight up arpeggiator to sort of ground this a little bit, so we'll have a from and a to, and if we want this to play with an arpeggiator we're going to need to make this note last for longer, so what we can do there is a modifier called length, it's the first one actually, and we'll stick that in here, and we'll say that the length is now going to be one bar because we're getting clock here, so we'll say one bar, so this particular pipeline is going to sustain that note for an entire bar, if we're going to want to give the arpeggiator, which spoiler alert is one of the modifiers, something to work with, we're going to have to convert this single note into a chord, and for that we can use the harmon or harmonizer, so here in the properties we can choose what the intervals from that first note are going to be, so let's do something fairly basic so that it's going to work all the time, so let's maybe just do a fifth above, an octave above, a major third, should hear each time, let's just bypass these, now each time that one note has been played we're getting that major chord, right, so we can take that now and bring in an arpeggiator modifier, now hopefully next time we hit it, there's our arpeggiator, lovely, let's bring this on back in, okay it's kind of working for me, but it's a bit static at the moment, so maybe let's bring in a random again at the end here, and this time apply it to velocity, so maybe 50 and 50, so we've got a bit of that swirl, ebb and flow going on there, and just through the magic of midi processing, we can generate a semi-generative bed cluster with an arpeggiator going on, we need to ground it, and when we send this to the midi hub, we're free to disconnect it from the computer, take it, wherever we're going to be doing our hardware jamming, and we'll have this sort of lovely arpeggiated generative midi delay environment to jam with, and this would be just one of the presets that we could switch between on the midi hub, let's treat ourselves and add some more reverb shall we, just listen to this for a bit, amazing what you can do with just one note per bar when you have enough midi processing, so I think I'll do at least one more video on the midi hub where we take this idea and start to apply some real-time control in hardware to some of these parameters so that we can create additional musical ideas out of this, or at least different dynamics. If there's something else that you want to see on the midi hub then let me know down in the comments. I think it's a device that is very interesting because it offers you great utility if that's what you want to use it for, but it also gives you quite a lot of creative ideas as well that you can use to enhance your setup, so I'm still pretty excited to explore this some more and see how that I can integrate it into my setup, maybe with the modular via the CVOCD, I think it might work really well in that environment. Anyway, I hope this was interesting, if you enjoyed the video then please do give it the odd thumbs up, make sure you subscribe to the channel so that you don't miss out on any upcoming synth fun, but until next time, have a wonderfully chilled day. Take care.