UE4 Modular Synth: TB303 Sequence
About one year ago I spent some time with new UE4 Audio Engine and Modular Synth (then it was still in Beta if I remember correctly). With the help of some youtube tutorials, I created my own synth with exposed parameters which allow users to do real-time sound shaping.
Because I didn't make a blog post about it (or it has disappeared during the transition to new Blog - I don't remember) now it's time to do it but this time I decided to share blueprints thanks to the website www.blueprintue.com
<rant about lack of musical measurements in UE4>
Synth creation is actually pretty easy. The bigger deal is to create sequence because it requires the creation of Data Table etc. which is not intuitive at all for musicians. I'm not even sure if it's possible to create a sequencer with an interface which could be changed in real-time by users (but I never went that far to check it).
Another issue with the sequencer is that it's not based on musical time measurement (UE4 doesn't have such thing). So it more often sounds like a sequence played by a drunk musician instead of keeping a strict rhythm. If I'm not mistaken (most likely I'm) the sequence is based on FPS and those are changing depending on CPU power (etc). I really hope that someday UE4 engineers will realize that audio in UE4 is done not only by hardcore programmers but also by aspiring musicians ;) and they will develop time measurements for audio (BPM, notes etc.). For now, the sequence in the demo video has tempo: 0.112 - who is able to guess how fast it is without checking the video ;) </rant about lack of musical measurements in UE4>
As I said, synth itself is easy to develop. Here's the Event Graph Blueprint:
Blueprint is available here: https://blueprintue.com/blueprint/l77sdz8z/
The sequence required a Clock (Custom Event) which triggers Data Table with musical notes (Note On/Off, Pitch, Octave, Slide, Accent - like in an old-school hardware sequencer).
My 16 steps sequence looks like this:
Data Table was created with User-Defined Structure:
Finally, after Data Table is read it's time for 'PlayNote' function to interpret the data into parameters understandable by the Modular Synth.
Then it comes time for User Interface.
It's as simple as it may be. Basic Sliders etc.
I had to bind parameters to sliders and this is why I created several Variables connected to parameters in Modular Synth object which you can see in the picture of Synth Blueprint above. But of course, nothing is easy and I've had to do some mathematical magic in Event Graph of UI Blueprint. I know, it's the most basic math and now when I'm looking at it it looks ultra-simple but then, one year ago I was completely lost and blindly I've had to set minimum and maximum values together with steps so for example slider of Pitch jumps always by 1 semitone up or down to keep it musical friendly(experimental musicians may not agree with me in that matter ;) ). For Waveform parameter, I created an option to select them from the ComboBox.
This UI Blueprint is available here: https://blueprintue.com/blueprint/zz79x5vr/
Of course, I also checked other stuff from the new audio engine like EffectsChain. The Synth is armed with Distortion, Waveshaper and StereoDelay. Additionally, I created an LFO waveform with the Timeline object which is really cool way to do it.
I just realized that I totally forgot about the Level Blueprint which is super important.
So many cables! Gods forgive me, please! :D
Yep, without it, the User Interface wouldn't exist. Here's how it looks like:
Here's the Blueprint: https://blueprintue.com/blueprint/gqk86qwz/
As I said at the beginning, this project is 1 year old so I'm pretty sure that the synth and new audio engine are much more stable and improved now. I myself have to look at it again because for the last year I was working mostly with Unity and Wwise and I'm really curious what's new in UE4 :)