New Audio Engine: Quick-Start Guide

Either making this instanceable, or making the ability to set the chain per Actor scriptable in Blueprint would work for me. I’m sure there are other workarounds I can do in the meantime, I just need to approach it with a fresh head, heh.

Hi @.,

In your GDC presentation, you had some materials that seemed to be influenced by audio waveforms. I’m trying to build a HAL 9000-esque interface that will modify color & size based upon spoken dialogue.

Has anything like that been exposed in these 4.16 experimental features?

Thanks!

Not here. Do you have the spoken dialogue ready as audio file, or do you need it to be reacting to the users voice, live? If it’s audio files you can do it in blueprints :slight_smile: Set up the ‘Envelope Follower’ source effect thing. Instructions are in the first or second post of this thread.
Live voice is trickier(for now…dun-dun-duuun), but if you are cool with c++ you can do it.

Have fun!

Oh, that’s perfect! Yes, I’m using audio files and, somehow, just completely missed this. Thanks so much!

@SVR33

Yup, we used the Envelope Follower to drive Instanced Material Parameters to create a reactive effect.

I got it working! I’m really psyched. Thanks!

When I make one Pawn and one Actor who each have their own Modular Synth, and try and run it Unreal crashes.

I am using the same preset bank for both though.

Am I not able to build more than one instance of a Modular synth?

If so, is there a good way for many actors to have their own preset playing from one Modular Synth simultaneously ?

Thanks.

You can have many, everywhere!
Just tried with a couple actors and a pawn, each playing a note on their own synth. Works great!
Maybe it’s in your preset-setup or somewhere else?

Thanks … Good to know… I copied some objects from the other… gonna rather rebuild the second one, see how it goes.

hi, .
you made a super good things for us.
I have a simple question…
How to do this step '1. Open the project using command line flag: -audiomixer’ …

vvlay9090, good question, you can open the project using a command prompt OR if you are using the Github version, you can enter the command line into your visual studio project build to ensure that it loads the Audio Mixer module.

You can learn more about command prompts here:

Thanks. Gocha…

Is there a way to get the frequency of a certain spectrum range on tick ? Want to be able to pick out the brilliance from the sound.

Maybe use a highpass-filter? If you need to hear the rest of the sound too, duplicate the sound but change it to a fitting low-pass filter so they together sound good. If you’re using it with envelope follower it can cause complications though, because we don’t have dummy-channels yet(I think), so the env foll can only react to stuff that player hears. So the split would be necessary depending on your case.

Thanks alot for the quick reply, gonna try that asap!

Hi, I have a question about working with the modular synth. If there’s a better place to ask it, please direct me.

My first issue is that I don’t seem to understand how the “Start” node works. The description says “starts the synth generating audio,” but in my blueprint it doesn’t seem to be doing anything. The only way I can get the synth to make sound is if I use the “Note On” node, which I think I’d rather not do.

The second issue, probably stemming from the first, is that I can’t get the “Set Osc Frequency Mod” node to affect the sound. I assume this is related to the fact that so far I can only hear audio when a specific MIDI note is being played. Ultimately, my goal is to use the to have the frequency of the tone change based on a variable.

I assumed that “starting” the synth with the Osc Frequency set to 2000 would generate a 2000Hz tone until I told it to stop, but clearly I’m not getting something. I don’t have much experience with modular synthesizers, so maybe that ignorance is showing :slight_smile:

In my Blueprint, the Set Osc Frequency Mod Node is based on a tick event and the Set Synth Preset (and thus Start) is set to a button press event. Note On works if I connect it to Start.

Thanks!

The Start node is only for activation of the Modular Synth if the “Auto Activate” option in the Details pane has been unticked. I think it’s ticked by default when you add a Modular Synth to your Blueprint, so using a Start node will have no effect.

Try setting your Synth Preset on BeginPlay (or some other game environment-driven event), deleting the Start, then hooking up your keypress event to the NoteOn.

If you want the frequency of the tone changed directly by a variable, you might try mapping that variable to pitchbend. What you’re doing here isn’t starting the synth with Osc 1’s frequency set to 2000Hz; NoteOn sets the oscillator’s base frequency by converting the incoming MIDI note to Hz, then preset or modulator data is factored in to account for semitone/octave/LFO adjustment. SetOscFrequencyMod is intended for FM synthesis, and while I haven’t tried this out yet, I think it needs to work in conjunction with another modulation source whereas this just sets the modulation scale factor.

Also bear in mind that while oscillators in the preset structure are numbered from 1, I think that you have to count them from 0 when addressing them in relevant BP nodes. Don’t quote me on that, though!

Sorry, that stuff about the Start node is a load of rubbish. Long day. An Activate node has to be used if Auto-activate has been disabled (obviously); a Start node needs to be used on BeginPlay (or whatever) before you do anything else, so that the synth will be ready to make a sound when instructed to, but you need to trigger the NoteOn to instruct it :slight_smile:

Could this be used in a similar way to Pure Data for sound design? I’d love to convert my patches to this.

Hey ChrisJDarcy,

Aaron and I gave a presentation a few months ago to PA Now about how to get into using Blueprints to create Procedural Audio and Aaron’s portion of the discussion is focused on how to transition from using Pure Data or MAX/MSP to using Blueprints:

<iframe width=“560” height=“315” src=“YouTube” frameborder=“0” allowfullscreen></iframe>