# EZ Game Audio Conversion

Unattended Batch Audio Conversion Tool for Game Devs

## Introduction

EZ-Game-Audio-Conversion streamlines the process of batch audio conversion. Tailored specifically for game developers, this tool ensures great audio quality and small file sizes without the need for extensive knowledge. With almost no setup and multi-threaded conversion, it's the easiest, fastest and most reliable solution available. Plus, now with support for loop tags!

## Features

- 💻 User-Friendly Interface: Designed with simplicity as the main goal, eliminating any learning curve.
- 🔄 Unattended Batch Jobs: With recursive file searching and unattended conflict resolution, set it and forget it.
- 🚀 Multi-threading: No job too big or small when all your CPU cores are fully utilized.
- 🎵 Automatic Bitrate and Codec Selection: Automatically selects the best codec and Variable Bitrate (VBR) at 160kbs(mp3) or near equivalent. Balanced between great sound quality and small file size.
- 📁 Comprehensive Format Support: Converts between WAV, MP3, OGG, FLAC, AIFF, and M4A formats. More to come.
- 🔒 Privacy and Reliability: Operates offline, ensuring data privacy and reliability.
- 🎶 High-Quality Output: Employs FFMPEG for superior sound quality, codec support, and speed.
- 🤖 Intelligent File Handling: Automatically resolves duplicate file names with different file extentions. Selects the best input file format.
- 📝 Meta Data Support: Will transfer all basic meta data to and from all formats that support it.
- 🔁 Loop Tag Support: All loop meta data will be transferred to new Ogg or FLAC files. When changing sample rate, loop timings will be adjusted automatically. Cannot write loop tags TO M4A, only FROM.
- 🎼 Opus AND Vorbis Support for Ogg: Use Opus when you can and Vorbis when you have to.

## Installation

1. Download Zip "EZ-Game-Audio.zip"
2. Extract Folder "EZ-Game-Audio-Converter"
3. Run File "EZ-Game-Audio.exe"

## Prerequisites

- Windows PC
- Not required: Windows Terminal from the Windows Store for enhanced visual experience (emoji support 😎 ).

## Usage

1. Setup: Follow the setup prompts. It's recommended to copy and paste file path. Right-click to paste.

2. File Selection: The application will search for matching files based on the provided criteria and display the list of input files to be converted.

3. Duplicate Handling: Duplicate file names with different extensions will be automatically resolved, retaining the best or lossless format.

4. Conflict Resolution: Resolve conflicts for conflicting output files:

   - `O`: Overwrite file with the same name. File will not overwrite itself but will skip instead.
   - `R`: Rename the file.
   - `S`: Skip the conversion for this file.
   - Adding `a` to your selection will apply it to all subsequent files.

5. Confirmation: Review the list of files to be converted and confirm by typing "yes" or "no" when prompted.

6. Conversion: Monitor progress and any errors during the conversion process. Upon completion, logs.csv will be available at the specified file path. Any errors will be logged separately to errors.csv. Some files may produce errors but still convert correctly.

## Source

Prefer a hands-on approach over trusting random files from the internet? Here's how:

1. Clone the repository or download.

2. In the project folder, run `npm i` then `npm run build` to build the executable. OR

3. Run `npm i` then `npm run start` to run from your terminal.

4. Remember to have `ffmpeg.exe` and `ffprobe.exe` located alongside wherever you run the application from. FFMPEG Essentials Build Download

To change things like bitrate and codec, look in `converterWorker.js`.

On Github

### Additional Notes

- M4A files are compressed using the 'AAC' lossy codec. For lossless quality, use WAV or FLAC formats.
- WAV and AIFF uses the pcm_s16le codec, while OGG uses the newer Opus codec by default.
- Lossy formats utilize Variable Bit Rate (VBR) for increased compression.

## Audio File Type Compatibility

### RPG Maker

Features | MP3 | OGG1 | WAV | M4A2 | MIDI
--- | --- | --- | --- | --- | ---
Loop OK | NO | YES | YES | YES | YES
Loop Inside (Tags) | NO | YES | NO | YES | YES
File Size Optimize | YES | YES | NO | YES3 | OMG YES
Realistic Sound | YES | YES | YES | YES | NO
RMVX/Ace Compatible | YES | YES | YES | NO | YES
RMXP Compatible | YES | YES | YES | NO | YES
RM2003 Compatible | YES | NO | YES | NO | YES
RMMV Compatible | NO | YES | NO | YES | NO
RMMZ Compatible | NO | YES | NO | NO | NO

- Source: RPGMaker.net

RPG Maker MV and MZ will play Opus but do not support loop tags. MV will not play Opus in the editor.

If you want Opus loop tags to work to work in RMMV-MZ then you will need my plugin. Download FugsOpusMV Here!

#### Unity

- Supported Formats: `MPEG(1/2/3), OGG Vorbis, .aiff, .mod, .it, .s3m, .xm`

Source: Unity Documentation

#### Godot

- Supported Formats: `WAV, MP3, OGG Vorbis`

Source: Godot Documentation

#### Unreal Engine

- Supported Format: `WAV`
- Unreal Engine currently imports uncompressed, little endian , 16-bit Wave (WAV) files at any sample rate (although, we recommend sample rates of 44.1 kHz or 22.05 kHz). Source: Unreal Engine Documentation

#### Ren'Py

- Supported Formats: `Ogg Opus, Ogg Vorbis, MP3, MP2, FLAC, WAV (uncompressed 16-bit signed PCM only)`

Source: Ren'Py Documentation

#### Game Maker Studio

- Supported Formats: `OGG Vorbis, MP3 and WAV` Source: Gamemaker.io

#### Additional Comparison

Detailed comparison of audio formats for games.

Opus bit rate and sample info

Some testing on performace

Comparison of coding efficiency between Opus and other popular audio formats

## Find me on the web:

Your comments and likes are appreciated for support!

Itch.io Source on GitHub RPG Maker Forums GameJolt Reddit Twitter Email me @

## License

This project is licensed under the GNU Affero General Public License (AGPL-3.0).

### Attribution

- Icon Source

## Footnotes

1. Opus codec for OGG files is better but Vorbis is more compatiable. ↩

2. Not needed in 2024? ↩

3. M4A can be lossless but isn't when converted by this software. ↩