ToolQuick Wave Bank - An easy, no-hassle Wave Bank creator

JimboTex

Plantera
thx! it worked! but one more question. how do i remove rain ambiance?
I'm more inclined to replace it with this:

Just sayin'.

trigger_segfault

Spazmatism
How can you replace the music added in by mods?

You can't replace mod-specific music by modifying your wave bank.

Skeletron Prime
You can't replace mod-specific music by modifying your wave bank.
How do you, then?

altermaven

Empress of Light
In regards to text files defining a track list, is it just a list of pathnames? Easy if you have a music program that saves as .m3u (as long as it stores absolute, not relative pathnames) and just rename .m3u to .txt;

as .m3u is relatively the same thing:
Code:
c:\path\goes\to\here.mp3
c:\path\here\does not.mp3
c:\path\ends here.mp3

returns a playlist with

here.mp3
does not.mp3
ends here.mp3

in a program that supports m3u, such as winamp, foobar2000, windows media player..

If that's the case, half the job is done already. Just load and build. (You should have a notepadded list of what goes where, though)

EDIT: I forgot to iterate something. If your resulting playlist is showing relative pathnames e.g.:
Code:
goes\to\here.mp3
here\does not.mp3
ends here.mp3
Try saving your playlist outside of your music directory. This will force the resulting m3u to use absolute pathnames.

Last edited:

Skeletron Prime
In regards to text files defining a track list, is it just a list of pathnames? Easy if you have a music program that saves as .m3u (as long as it stores absolute, not relative pathnames) and just rename .m3u to .txt;

as .m3u is relatively the same thing:
Code:
c:\path\goes\to\here.mp3
c:\path\here\does not.mp3
c:\path\ends here.mp3

returns a playlist with

here.mp3
does not.mp3
ends here.mp3

in a program that supports m3u, such as winamp, foobar2000, windows media player..

If that's the case, half the job is done already. Just load and build. (You should have a notepadded list of what goes where, though)
Thanks!

altermaven

Empress of Light
Clarified the previous post. Discovered why things save with relative paths, and how to force absolute paths.

Surokai X

Terrarian
I found the issue. I changed the temporary directory used with the latest version but I forgot to update it in the build console project.

I have another problem with this i want to do a wavebank with sonic and megaman osts but i had this error i have all songs in 2 folders one in mp3 and the other in wav
System.TypeInitializationException: Se produjo una excepción en el inicializador de tipo de 'QuickWaveBank.Extracting.WaveBankExtractor'. ---> System.ArgumentNullException: El valor no puede ser nulo.
Nombre del parámetro: path1
en System.IO.Path.Combine(String path1, String path2)
en QuickWaveBank.Extracting.WaveBankExtractor..cctor()
--- Fin del seguimiento de la pila de la excepción interna ---
en QuickWaveBank.Extracting.WaveBankExtractor.GetTrackName(Int32 index)
en QuickWaveBank.MainWindow.MakeListViewItem(Int32 index, String waveFile)
en System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
en System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
en System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
en System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
en System.Windows.Controls.Primitives.ButtonBase.OnClick()
en System.Windows.Controls.Button.OnClick()
en System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
en System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
en System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
en System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
en System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
en System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
en System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
en System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
en System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
en System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
en System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
en System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
en System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
en System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
en System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
en System.Windows.Input.InputManager.ProcessStagingArea()
en System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
en System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
en System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
en System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
en System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

trigger_segfault

Spazmatism
I have another problem with this i want to do a wavebank with sonic and megaman osts but i had this error i have all songs in 2 folders one in mp3 and the other in wav

Really sorry it took me so long to get back to you. I think I've fixed the issue in the latest version. It was most likely caused by Quick Wave Bank not being able to locate Terraria's content directory and not handling the fact that the path could be null. Lemme know if it works now.

OK thanks!!

Surokai X

Terrarian
YEAH IT WORKS THANKS A LOT DUDE!!!

Moon_Man

Terrarian
hey
you got a quick, easy-to-understand guide on how to use this?

trigger_segfault

Spazmatism
hey
you got a quick, easy-to-understand guide on how to use this?

Terraria requires 41 tracks in a Wavebank to cover all of the tracks used in game. In order to a build a wavebank with this, drag sound files into the window or press the "Add Tracks from Folder" or "Add Track" button. As you add tracks to the list, the window will start to label what each track would represent at its current index in the list.

(At the moment there's no real way to assign a track to a track indexed later in the list without first having at least that many tracks in your list. I need to make a better way to order things).

But anyway, once you've dropped 41 tracks you plan to use into the tool, then it will be easier to drag and drop them (Or use the "Move Track Up" or "Move Track Down" buttons) to order the tracks to represent the correct track in game. After this is done. Press the folder button next to the Output File textbox in order to choose the save location for your wave bank. Then press "Build" to start building the wave bank.

After that process is finished, the wave bank will be present in the desired location. Take this file and replace the "Wave Bank.xnb" file in your Terraria Content with it. If everything is working correctly, the songs should play properly in game after a restart, otherwise the music volume will keep falling to zero.

Moon_Man

Terrarian

Terraria requires 41 tracks in a Wavebank to cover all of the tracks used in game. In order to a build a wavebank with this, drag sound files into the window or press the "Add Tracks from Folder" or "Add Track" button. As you add tracks to the list, the window will start to label what each track would represent at its current index in the list.

(At the moment there's no real way to assign a track to a track indexed later in the list without first having at least that many tracks in your list. I need to make a better way to order things).

But anyway, once you've dropped 41 tracks you plan to use into the tool, then it will be easier to drag and drop them (Or use the "Move Track Up" or "Move Track Down" buttons) to order the tracks to represent the correct track in game. After this is done. Press the folder button next to the Output File textbox in order to choose the save location for your wave bank. Then press "Build" to start building the wave bank.

After that process is finished, the wave bank will be present in the desired location. Take this file and replace the "Wave Bank.xnb" file in your Terraria Content with it. If everything is working correctly, the songs should play properly in game after a restart, otherwise the music volume will keep falling to zero.
thanks i guess
i've already figured it out tho
rather user-friendly ui

SamTerarrium

Empress of Light
This is really neat, I really liked it when you made this. Great job

Burst

Empress of Light
FINALLY!
Now I can add music on my own to the game. Thanks!
Are MP3's supported too?

Casual_Bean

Slime Collector
FINALLY!
Now I can add music on my own to the game. Thanks!
Are MP3's supported too?
mp3 are converted to waves. so yes.

Burst

Empress of Light
I tried doing it. It was kinda stressy, but I did it! I added some music from games, music I made by myself and what not.

altermaven

Empress of Light
Regarding the whole thing about .m3u in general: there's no need to rename it as .txt -- as it *is* by rights a textfile. In dialogue, choose "All Files (*.*)" and select the .m3u in question. Make sure the contents are showing absolute paths, not relative ones, of course. You can use a text editor to make the relevant changes.

Fabs Kebabs

Terrarian
Cello! I saw this tool and i instantly downloaed it (along with the gigantic lump of songs to use, ofcourse). After 2 hours of intense planning and 30 minutes in the toilet i was finally done with my dream wave bank. Excitedly, i clicked the "build" button that gloomed the window and then i went to use the toilet again just incase if the process took long. I returned from my bathroom and looked at my screen. I saw red writing. My heart felt with despair and i thought to myself "RED! That can't be good!" and as my vision focused on the text my butt sank into the bed, my soul sank deeper than my butt in a treacherous pit of saddness. "Failed to create wavebank"...the only words to end my suffering in this meaningless nothing we call life (dont worry i had no plans to end myself, i used suicide helpline (always use suicide helpline kids before u think about doing something stupid )) My 2 hours of work and 30 minutes of going to the toilet was wasted and i am confised why. I did everyhting it told me to. ANd when i read the console the funny thing is that it had an error trying to even do the beggining! So god knows what the rest of the 40 songs will be like. Here is the code:

Building for Win32...
Building global settings file C:\Users\Fabs Cairaschi\AppData\Local\Temp\TriggersToolsGames\QuickWaveBank\WaveBankProject.xgs
Building wave bank C:\Users\Fabs Cairaschi\AppData\Local\Temp\TriggersToolsGames\QuickWaveBank\Wave Bank.xwb
Loading 01 Flip-Swap Galaxy - Super Mario Galaxy 2 Music ExtendedEncoded 317385404 bytes of 44kPcm16BitStereo data to xWMA (bitrate 48000)
Encoded 317385404 bytes of 44kPcm16BitStereo data to xWMA (bitrate 48000)
Processing 01 Flip-Swap Galaxy - Super Mario Galaxy 2 Music ExtendedFAILED to encode 317385404 bytes of 44kPcm16BitStereo data to xWMA (bitrate 48000)