Cory Mahler Audio
Audio and tech _||_ Cory Mahler

Blog

WHO WANTS TO LISTEN TO N64 RIPS??

 

Step One!
    Download Winamp! The Patched 5.666 version that is!
        https://getwinamp.com/


Step Two!
    Download and install the following plugins:
        ChipAMP
            http://www.chipamp.org/
        AdPlug
            http://www.vgmpf.com/Wiki/index.php?title=AdPlug#Downloads

 

Step Three!
    I like to recommend the use of Wget for obtaining the actual files; I use the program VisualWget.

THAT SAID, YOU CAN SKIP IT AND DOWNLOAD ONE GAME ZIP AT A TIME IF YOU WANT TO PICK AND CHOOSE.


        VisualWget:
            https://sourceforge.net/projects/visualwget/
        
        Within this program, there will be flags to be set.
        
        If you go to this site here, you will find a lovely open directory of Minuisf Files! which are basically the N64 Rip format.
            http://usf.joshw.info/
        
        you can download the directory by copying that link, and opening VisualWget.
            Create a New Job.
            Paste the link, in, and check Recursive.


            Go to advanced, and to the Recursive Accept/Reject page.
                Mark -Reject, and -No-Parent.
                    Under Reject, type in "robots.txt, index.html" [without the quotes, obvs]


            
            Run the job, and it should download to wherever you desired!
            


Step Four!
    Extract the zips, and listen away with Winamp!
    


Step Five!
    Go have breakfast while jamming to some VGM Gold. 
        Don't forget about the coffee y'all.

Centration: Survival; Experimental Reverb

This game i'm working on has a dynamic airflow system, allowing voids to pull objects and actors from the non-void air volumes. This is being used to simulate open airlock / hull breaches on a space station (Prepare to ragdoll out into the spess).

Removed a wall to show what I mean.

Removed a wall to show what I mean.

I did not create these volumes, so I can't tell you how to make this part... but I am able to hijack it for audio reasons! Each volume generates cells within the space / meshed out room it resides. 
I decided to try taking this cell # info, and convert it to the sounds for Accurate Reverb™!

Preparing the Events in FMOD

In FMOD Studio, I created six Reverb Returns sorted by the size of the room.

I then laid out Sends to each one, enveloping as shown.

You'll see I put on a long Release for the AHDSR. For some reason without this, the one shots would cut the reverb too soon, killing the effect! I'm not sure if that counts as an FMOD Bug or what, but keep an eye out for that.

[[You'll also see a LowPass Effect sitting there. This is for distance based occlusion, which I'll make another post on soon.]]

Luckily We can select and Copy over all these sends with included Envelope changes AND the Parameter itself to other Events!

Now that I have these in all applicable events, time to get things rolling in the Blueprints!

Blueprints!
Obtaining Cells


Getting the Cell count is easy. the variable is already there!
From the AirVolume, I have it detect all things within it's boundaries. I scaled down the detection range a bit, so as to keep the applications within the right range (the box extends further than i'd like, so this fixes that).
From here I go into a small Function.

AirVBP1

I then Cast to the parent Actors that would have FMOD events.
You'll want to use Parent Actors, because you can have some scripts that would be globally usable for all Children Actors under it. saving a lot of time, and avoiding copying things so damn much.

When the airvolumes are overlapping, I combine their cell counts. this is for oddly shaped rooms.

When the airvolumes are overlapping, I combine their cell counts. this is for oddly shaped rooms.

Now in each of the Parent Actors that might have FMOD Events, I created 1 Function, and two Ing Variables.

var

Now inside the Function, I created 4 Inputs:
FMOD Audio Component Reference, both normal and as an array,
Cell Int,
Travel Int.

Note: Cell and Travel Are also the Variables  made for the parent actor in general.

inputs

Here is the function:

apply cells

Now with this in place, I can now take this function on any child actors I need, and it'll work whether there's just 1, or 16 events. I have this next bit happening under the Tick Event in the blueprints. this way, if the actor is moving room to room its sounds will take the volume's different reverb sizes dynamically.

Since this is a child actor (or the parent itself), dragging off should list the Apply Cells Function, and from the Int inputs, you can get the Vars from the parent.

events

So with this, We are done!

This works pretty well as a general room size reverb system goes. I plan to figure out how to find the X,Y,Z ratios of the Air Cells to end up simulating a hallway effect.

Here's a little test run around showing this in effect.

Fictional Binaural

I decided to have a bit of fun with making a totally fictional binaural "recording".

YOU SHOULD WEAR HEADPHONES TO GET THE BINAURAL EFFECT

All samples, instruments are placed and modified to feel like a binaural recording.

Plugins Used:

  • SIR
  • DSK SF2
    • with organ soundfont from sonimusicae
  • Binaural Simulator
  • Limited-Z
The Tiny Twitpic Comic

Back in 2010-2011, I did a short little pixel art comic that I'd post on to Twitter using Twitpic. 

Here it is.

WhatnotCory MahlerComment
Integrating FMOD Studio 1.07.06 with Unreal Engine 4.10.2 Binary Edition

This is a simple little walk-through for Integrating FMOD Studio into an Unreal 4 project.

Downloading the stuff

If you haven't already, log in to the FMOD website [Found Here!] and proceed to the Downloads page. As of this blog post, they hide the UE4 downloads until you logon.

Scroll down until you see the UE4 section, and select the necessary download for your versions of FMOD, UE4, and the platforms you're making a game for.

 

Placing files in the right place

Assuming your project already exists, open up the file location of that projects, and create a new folder called "Plugins"

It'll be in the same area as the project file as shown.

In this new folder, Extract the downloads from the FMOD site. (you can ignore the .txt files if you want to)

With that done, you are now ready to set up your FMOD project to build properly for UE4.

Setting up your FMOD Project

In FMOD, go to Edit \ Preferences... \ and click on the Build Tab.

browse to the Content folder of your UE4 project, and create a folder called "FMOD"

Make this your build location.

Now with this, you are fully ready to start integrating your FMOD audio into UE4! the commands, events and bus' will now be usable in the Blueprints.

Thanks!

Fmod and UE4 4.6.1

So i've been tinkering with fmod's integration with Unreal Engine 4.

First off, with the current version of UE4 (4.6.1) We have to change some of the actual Fmod plugin code to be compatible with some of Epic's changes. luckily I was able to follow this fix tutorial and get it working alright. 

 

 

Go to: UnrealEngine\Engine\Plugins\FMODStudio\Source\FMODStudioEditor\Private\FMODStudioEditorModule.cpp

Remove the include of Settings.h

Add the following includes

 #include "ISettingsModule.h"
 #include "ISettingsSection.h"
 
The way to get a reference to the module has been changed, the ISettingsModule::Get() method has been replaced by a method used by FModuleManager. Also, the delegate mecanism is now using a shortcut for registering settings. Here is the updated method startupModule:

 void FFMODStudioEditorModule::StartupModule()
 {
     UE_LOG(LogFMOD, Verbose, TEXT("FFMODStudioEditorModule startup\n"));
 
     AssetBroker = MakeShareable(new FFMODAssetBroker);
     FComponentAssetBrokerage::RegisterBroker(AssetBroker, UFMODAudioComponent::StaticClass(), true, true);
 
     if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"))
     {
         ISettingsSectionPtr SettingsSection = SettingsModule->RegisterSettings("Project", "Plugins", "FMODStudio",
             LOCTEXT("FMODStudioSettingsName", "FMOD Studio"),
             LOCTEXT("FMODStudioDescription", "Configure the FMOD Studio plugin"),
             GetMutableDefault<UFMODSettings>()
         );
 
         if (SettingsSection.IsValid())
         {
             SettingsSection->OnModified().BindRaw(this, &FFMODStudioEditorModule::HandleSettingsSaved);
         }
     }
 
     MainMenuExtender = MakeShareable(new FExtender);
     MainMenuExtender->AddMenuExtension("HelpBrowse", EExtensionHook::After, NULL, FMenuExtensionDelegate::CreateRaw(this, &FFMODStudioEditorModule::AddHelpMenuExtension));
     FLevelEditorModule* LevelEditorModule = FModuleManager::GetModulePtr<FLevelEditorModule>( "LevelEditor" );
     if (LevelEditorModule)
     {
         LevelEditorModule->GetMenuExtensibilityManager()->AddExtender(MainMenuExtender);
     }
 
     // Register slate style overrides
     FFMODStudioStyle::Initialize();
 
     FEditorDelegates::BeginPIE.AddRaw(this, &FFMODStudioEditorModule::BeginPIE);
     FEditorDelegates::EndPIE.AddRaw(this, &FFMODStudioEditorModule::EndPIE);
     FEditorDelegates::PausePIE.AddRaw(this, &FFMODStudioEditorModule::PausePIE);
     FEditorDelegates::ResumePIE.AddRaw(this, &FFMODStudioEditorModule::ResumePIE);
 
     ViewportDrawingDelegate = FDebugDrawDelegate::CreateRaw(this, &FFMODStudioEditorModule::ViewportDraw);
     UDebugDrawService::Register(TEXT("Editor"), ViewportDrawingDelegate);
 
     OnTick = FTickerDelegate::CreateRaw( this, &FFMODStudioEditorModule::Tick );
     FTicker::GetCoreTicker().AddTicker( OnTick );
 }
 
 

 

 

So I got that goin' for me.

Now, blueprints are my current struggle. A lot of it makes perfect sense, and I absolutely love how much it allows non-coders like myself to do things.

Right now i'm not quite feeling that.

All I want to do is make a basic volume trigger from within a blueprint for a room or hallway, and have it change the parameter of my music event residing in Mycharacter. 

I tried event dispatchers, making custom events in mycharacter and have the volume trigger (or just box with overlap events in BP case) simple call those exact events with the target being set as a variable in the room/hallway BP. 

I hope that made sense.

basically I've tried everything I can think of, and continue to fail. There must be something I am missing (I am a BP noob afterall).

anyways, Anyone else having similar issues / struggles?

Windows 10 9926 Connecting to a Network Folder

Posting this here partially so I can find it, as well as others possibly. 

 

The recent build of Windows 10 automatically refuses connecting to ANY network folders, which is lame.

 

so, I found a fix:

 

Using REGEDIT it's necessary to create a DWORD value called 'AllowInsecureGuestAuth' in HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters and set this new value to 1.