Arthurs Audio BPs

ArthursAudioBPs V8 is out! Aw yeeeee!

V8 video overview: https://youtu.be/8XcHyu8yTN0

New stuff includes:
Synesthesia plugin examples
Modulation plugin example
More musical Rollplate-examples added
A lot of smaller stuff here and there

DL: GitHub - ArthurBarthur/ArthursAudioBPs: UE4 project with various examples of audio-related stuff like

Thanks. If it’s no trouble it would be great to see some sort of beginners video tutorials on making the most of this project. Like maybe a cool looking music visualiser that controls lighting, materials and particles effects. I haven’t done much with unreal for ages and still know only basics with blueprints. No worries if not I’ll play around and try to learn more.

I’ve been a making some progress with it now and adding more frequencies has improved the look im after but it’s still displaying some unwanted behaviour. I noticed I could change the fft and type of processing in the blueprints and that has also made it bit better.

Though even after turning off normalise in beautifier it’s making out certain frequencies are way louder than they should appear. I really want it to show a more accurate spectrum like a proper analyser does.

I’ve also done bit more testing with a single frequency tone with lots of bars set to go up in 5hz increments. I know it’s unlikely to ever be as accurate as a proper analyser but its lighting many bars either side of the tone. Also no matter how I change the volume it has no affect on the bars maxing as if it’s super loud. I’ve tried a very quiet wav and turning it down in in three different places in the editor but no change.

Im guessing it’s still being normalised somewhere but I turned that off so im not sure what’s going on?

Could you make a video with examples of what you got and what you want? There’s lots of stuff we could do to the analyzers. I wanna revisit, redesign and simplify a lot of the stuff that’s been in for a while, like these visualizers.

Psst, here is a little preview of the new SpringKeys™ piano roll. Didn’t work in the preview video for V8, because of bad FPS! It is now slightly improved, by using another old computer on the network to do the video encoding. Aaand doing it in low res. Aaaand carving a pentagram on my forehead. Aaaaand turning off the other screen, and all background apps.

Basically the main issues are down to visualiser accuracy and dynamic range or normalisation going on.

Here’s a video showing a tone going from 100hz to 800hz with frequency bars starting at 250 and going up in 25hz increments each.

Video: [video]https://i.imgur.com/P69ASMs.mp4[/video]

Testing the AudioVizBasicVolOrFreqs map and increasing frequency range I find no matter what settings I use with either a normal vocal sample or test sine tone it lacks accuracy in frequency response and how big the peaks grow.

A sound that should be quiet at certain frequencies is often made out a lot louder than it is and it’s just never very accurate or consistent if you repeat the same sound.

Another example is sometimes higher pitched sounds that have no bass still light up low bass frequencies when they shouldn’t?

This image shows a simple 500hz test tone and the frequencies to analyze. It lights up lots of bars that it shouldn’t but they’re also smaller or bigger than they should be no matter how quiet i make the audio. So you can see it’s not really showing volume level either. This is with fft set to maximum.

Perhaps accuracy is a limitation with the engine but surely it’s possible to at least have the levels show the volumes better. It seems to work better on some sounds but not others.

I really appreciate any help you can offer or improvements that can be made as i think this is a great project. Thanks.

OMG! You are so right! There has been a regression at some point. For some reason that beautifier is missing a lot of stuff I implemented a while ago…? HMMMMMM.

Wanna know how bad it is? That “Normalize Each Frequency Independently” node was not even being used!!! Can you believe it. I swear it was implemented and in use from early on. No idea what happened.

THANKS for noticing and inquiring. I might never have seen. . It’ll be fixed in next update! In the meantime here is a temp fix inside the “Normalize Magnitudes” function of the beautifier:

With that fix(which is horrible, it querys the arrays many times every frame, its temporary but still, eww) and some messing with the threshold, it behaves much nicer!
Threshold helps because no note is perfectly limited to a frequency, they always have overtones and stuff. Look at the spectrum of this sound https://youtu.be/m7TgZbepZtA

Here’s a short clip of it in UE now. Also including a BETTER fix for the thing, ignore the picture a couple posts ago:p

Great work that definitely made a nice improvement and you’re right about overtones but before I didn’t expect them to show up so bad.

Is there a way to smooth out the wobble effect the bars have when they’re trying to collapse down but there’s still peaks trying to push them up?

Im now also trying to think of a way to create a spectrum like timeline using some sort of trailing material effect but unsure best way to go?

Im not sure how easy it is to create but a pitch and bpm readout would be cool features if you’re thinking of more to add.

Thanks for the helping and im looking forward to any new improvements you might make to visualiser.

Wobble effect? Have you played with the ‘lower threshold’ in Beautifier? Could be pretty high, and only react to the louder parts. Try thresholds between 0,1-0,9, it will depend on situation! Alternatively I’d suggest messing with attack/release. Like 300ms attack, 2000 release!

Spectrum timeline can be done, if it’s recording real time, we could take snapshots of the freq values over time, every frame or second or whatever…Then place them along a line. In this video Candy visualizer - YouTube I do this, it’s actually a single mesh moving along a spiral line while reacting to an envelope value, and every frame or something we get it’s position, and spawn a completely still clone there. Over time it would show historic data.
The tricky part is to represent all this data in a way that doesn’t melt computers. We can store the dataset as numbers over time, and feed materials, 2d sprite stuff or whatever. I probably know less than you there.

Recognizing pitches is possible already, at least from samples with the Synesthesia plugins ‘ConstantQ’ thing, it splits the freqs into notes and octaves, AND treats the data well, so we can analyze the peaks and get exactly the current pitch and harmony. Maybe I will make an example that takes a sample and spits out the finished analysis with musical info!

BPM recognition is the same, we have it through the Synesthesia plugin, with the ‘Onset’ part of it. We get different peaks at the frequencies we want, and we get their magnitudes and timestamps. From this we can calculate BPM. Maybe I should make a little example that does the math and prints it.

No problem, thanks for all your input!!! Highly appreciated and helpful as you know.

V9 released!!!:slight_smile:

Download: GitHub - ArthurBarthur/ArthursAudioBPs: UE4 project with various examples of audio-related stuff l
Chat/Discord: Arthurs...audio-visual blueprints?

No overview-video yet, buuut:

NEW Feature Examples

  • Independent pitch and playback-speed control with granular player(thank you for HQ voice sample Megagoth1702)
  • SpringKeys, a physical, springy piano synthesizer instrument
  • Granular chord choir music instrument thing
  • Basic Modulation Plugin example
  • Spline-based variation on the frequency visualizers
  • Single frequency audio-visualizer boxes as standalone things
  • Crowd sim early alpha
  • Live Submix Effect-tweaker knob

Other Improvements

  • Synesthesia Onset example got some more love
  • Fixed up color distribution stuff on various visualizers and things
  • Lots of little fixes and changes here, there, everywhere!

Ccccccoooooooooooooooolllllllllllllllllllllmanawesome! :slight_smile:

Hi this is superb work, so inspiring! Thanks for sharing your projects too, really generous and educational. I wanted to ask, I’ve played with your Timesynth example and it suffers the same timing glitches my projects are having due to being locked to the game thread. In your audio explorations have you ever found a way to make a fully game thread-independent music sequencer? Thanks for any pointers! :slight_smile:

Thanks mate! Makes me very happy. I’m glad we can learn and make cool stuff that don’t exist!:smiley:

Timesynth can work very well! We have to launch notes before we want them played, and it will launch on next quantized beat. Exactly same as any drum-machine or sample launchpad. As long as we keep our fps decent and watch it, we can use the info to know when we have to launch clips, and when it’s too late, etc. There is no sequencer built into it - we have to make our own, and it will also take into account fps, beat intervals, and what frame to launch on.

My minimal implementation in AaBPs is VERY LAZY, and doesn’t think about fps at all! So it just does its thing, even if it doesn’t work out because reasons. With a “smarter” system this should not be a problem.

If it’s not quick fire samples, but dynamic music from pre-made loops and sections, it would probably be easier to do it in blueprints, and leverage the fact that we can launch samples at specific times within that sample, and be very specific about it. So you can design your samples for this, and give them a lead-in.
Say you give all your samples a 0,2 sec silence in beginning. Normally you will start all samples with start time 0,2. When you need to launch it VERY SPECIFICALLY, you can check your tick delta, be smart, and offset the start time and say f.ex 0,197 to get right on the money.

Look at Dan’s example here for the BP example. The following link is directly to the sneaky part you care most about(from around 52:17), but do watch the whole thing: https://youtu.be/yce2t85MJD8?t=3137

Haha, thanks that’s given me some good food for thought :slight_smile: Thanks too for that specific link to the tricksy bit of Dan’s talk - feels hacky but could be a way round it! I did the watch the whole thing too, some good leads about procedural music towards the end. I’ve found out a bit more about the timing issue but don’t want to derail this thread, so I’ve put it in my own question thread if you’re curious or have time to bring your expertise to it!
https://forums.unrealengine.com/development-discussion/audio/1747323-is-it-possible-to-make-a-frame-independent-click-using-timesynth

I am very grateful for what you have done. How can I create a spotlight BPs that increase or decrease the intensity and color according to the music? Can you guide me to do that. Thanks you

Hey, yes! :slight_smile: Here is one way. Let me know more about what you want, how many lights etc, because I would do it a different way then. Thanks for the request!

Edit: Follow-up video for doing many spotlights for stage lighting etc with good performance:

The only thing that sucks about this project is that we can’t give you money for it! Put that thing on the Marketplace sir!

Thank you one million!!! :slight_smile: Yes to give this project the attention it deserves, we need dollaz. I am WORKING ON IT :smiley:
AaBPs v1.0 (currently at 0.9.6) is aimed for marketplace.
Meanwhile, you CAN give your direct support by paying for any of these ‘games’ here: https://diggart.itch.io/ :slight_smile: