Working on moving reusable stuff into function libraries now, to clean up and make things easy to use. After that I’ll focus on doing more elaborate music-eksperiments etc.
Hope you can already start preparing yourself, because as soon as I feel good enough about parts of this, I will start pestering you for feedback on a few specific implementation approaches. SO CLEAR YOUR WHOLE SCHEDULE DAN, I’m coming for you soooon
Hi, this is just awesome. Thanks for sharing. I’m trying to make this work for an Oculus Go project, where I need to capture the microphone audio. I loaded the AudioCapture level on the Oculus Go, but it doesn’t recognize the audio. Is there anything I can do here? Thanks in advance.
Yeah my mistake, it should work with a tiny fix! Nice, we squashed a bug.
To fix it:
remove existing text and replace with text below
It’s also on github, but not in the zips: https://github.com/ArthurBarthur/Art…roidEngine.ini
I don’t have a Go so can’t test, but it should work! New audio engine works great on Android. AFAIK Go runs a stripped down version of Android, largely similar to GearVR.
Many thanks for this.
This is great, thanks!! I’m not getting Audio Capture to work. Is it not supported on Mac?
Really nice. looking forward to the sidechain thing you teased;) Tack!
Thanks for the thanks!! And yeah, I think it’s windows only for now.
Thanks. Yeah I will include a couple approaches to sidechaining, probably in October when I have time for this again!
thank you arthur for all this work.
this is far more then I expected!
So many inspiring things here!
The randomize presets function is a brilliant approach in many directions! And to do it with seeds. so cool!
Also the triggering of the drum machine with physical balls with synchronized emitters is cute.
Still diggin in your blueprints
my current project is on android. so I tried to lauch your project on my Galaxy S8. but i always get compile errors.
I checked the android config and it is set to “AudioDeviceModuleName=AudioMixerOpenSLES”
I left everything untouched exept to click “Configure Android Files” in “ProjectSettings->Android”
Do I have to do something else?
... LogPlayLevel: PLATFORM_ANDROID_NDK_VERSION = 140200 LogPlayLevel: NDK toolchain: r14b, NDK version: 19, GccVersion: 4.9, ClangVersion: 3.8.275480 LogPlayLevel: Parsing headers for ArthursAudioBPs LogPlayLevel: Running UnrealHeaderTool "E:\UNREAL\ArthursAudioBPs-master\ArthursAudioBPsV0061\ArthursAudioBPs.uproject" "E:\UNREAL\ArthursAudioBPs-master\ArthursAudioBPsV0061\Intermediate\Build\Android\ArthursAudioBPs\Development\ArthursAudioBPs.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -ins talled LogPlayLevel: Reflection code generated for ArthursAudioBPs in 5,0411509 seconds LogPlayLevel: Compiling Native code with NDK API '' LogPlayLevel: Writing manifest to E:\UNREAL\ArthursAudioBPs-master\ArthursAudioBPsV0061\Intermediate\Build\Manifest.xml LogPlayLevel: Building 4 actions with 8 processes... LogPlayLevel: [1/4] SharedPCH.Core.h [armv7-es2] LogPlayLevel: [2/4] ArthursAudioBPs.cpp [armv7-es2] LogPlayLevel: [3/4] ArthursAudioBPs-armv7-es2.so LogPlayLevel: Error: C:/NVPACK/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -lGLESv2 LogPlayLevel: Error: C:/NVPACK/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -lEGL LogPlayLevel: Error: C:/NVPACK/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -landroid LogPlayLevel: Error: C:/NVPACK/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -lOpenSLES LogPlayLevel: Error: C:/NVPACK/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -lz ... ...
I’m very happy you dig it:D
I think that compile error has little to do with this project, and more with android settings? It COULD be the granular synth, I’m not sure that will work in packaged builds f.ex.
In the androidengine.ini we can now switch out audiodevicemodulename=blablalb with
but I don’t think that is what generates an error here. Last time I worked with android there were two very similar but also very different guides to follow, and I remember having to bonk my head a lot before getting it all to work. Does an empty project(unrelated to this project) package and launch OK?
I just created a BLANK project and it could compile ok.
The Settings I have done:
- UE 4.23 new project
-> blank, mobile, no starter content
-> activated plugins: synth&dsp, sound utilities
2.UE project Settings:
-> android: “configure for android”
-> min sdk:25, max sdk:25
-> remove oculus signature files
-> package for oculus devices: quest
- Copied the “\config\android” and “config/windows” folder of your project to the blank one.
Next, I will check step by step what causes your project not to compile on quest and hopefully will post the results here.
btw: still happy while digging
btw2: i had to convert some parts of you project back to 4.19. so if anyone need those files. I can make them available.
The issue is clearly with my setup.
I did a fresh install of all components on a new machine, and your project compiles ok with the settings I mentioned above.
Sorry for the confusion and a big thank you for the fast answer.
Great news!!! Very good to hear. Got things running again:D
Thanks Arthur for all the great stuff that you shared, i’m trying to use them for some VFX and wondering if there is a way to export videos with sequencer.
When i’m trying to export - lights are all the way at 100%.
I haven’t tried the sequencer yet, so can’t help much, but…isn’t it doing some slower frame-by-frame export at high quality? The visualizers are made for real-time use, at “normal” simulation frame-rates.
A possible path is that we can bake the analysis of samples, instead of doing it real-time. Again something I haven’t tried yet, but should be able to store a dataset with freq+magnitude values, which we can query with timestamps or similar.
Now instead of sequencer failing to get realtime audio, we’d have it query the dataset every frame, and it will get back the correct value.
Would probably also have to decouple the current smoothing setup from frame-time, and replace it with something that works step by step in the way sequencer runs logic.
i tried the audio capture map on my mobile , but it seems that it doesn’t read the mobile microphone , the logged value is 0.0 all the time , even after i gave it the RECORD_AUDIO Permission , but still cant get it running , any fix ?! ( Huawei GR5 2017 Android 7.0 )
Regretfully, that audio capture plugin is for Windows only! Could be reworked for other platforms, but that is very custom work. Maybe look around to see if someone has published any Android-specific implementations lately?
thanks for your reply, that’s sad to here.
i hardly found any good documentation for audio capture and i found no tutorials for it , i was relived when i found your project and that it is working well on pc , but found nothing related to android
there is this speech recognition plugin
after some hard work i finally managed to run it correctly on 4.23 but still the same problem , the game doesnt get any input from the mobile microphone and the author is not replying to either comments nor messages :’(
ArthursAudioBPs v007 is out!
Video overview of V7: https://youtu.be/dtfeVrcapfQ
NEW: Rollplates; an evolution of the existing noteplates. Registers rolling objects as well, and uses physics for note velocity.
Oh, and also reorganized everything, again! But, at least there’s many small improvements and fixes everywhere as well.
I was just wondering how do you get the frequency visualisation bars to show smooth but accurate real time values?
I’ve played around with attack and release without much luck. if you play a simple repeating sound like a drum it’s all over the place and never shows the same values each time as you would get in a proper spectrum analyser?
Also how do you add more frequency levels to make a nicer and more accurate visualisation?
Thanks again for this great project!
Most of the visualizers are real-time, so will never be the same! What we can do is bake the results per sample. Check in the sound wave asset, under the FFT tab. It won’t do real-time submix analysis, but you will be able to get a consistent, pollable dataset of baked values, per sound. That should be the same every time. But it’s not something I showcase in AaBPs, as of now!
To add more frequencies on the current real-time examples, on for example the existing bp_SubmixAnalyser > bp_AnalysisBeautifier > bp_FrequencyVisualizer chain: look at the SubmixAnalyser details in level. There will be an editable array/list called “Frequencies to Analyze” right there, and you can add or remove as many frequencies as you wish:)
To add more frequencies to the baked analysis mentioned earlier, you edit a similar array, but this time in the sound wave settings by clicking into the sample details, then add or remove frequencies on the array(also called Frequencies to Analyze).
No problem! Thanks!!