This repository contains code and tools required to build the matthewcpp/framework64-audio container which provides a convenient cross platform approach to preparing audio for use with framework64 and the NuSystem SGI Audio tools.
The repository makes use of the SGI audio tools for compressing audio and creating sound bank files. The N64 gneral midi soundfont is used for sequences. Currently the sequence banks created by this container are compressed for use with the Compact Sequence Player. This is the default player for NuSystem's SGI Audio tools.
The create_sound_bank
option will create a a sound bank from all sounds in a directory. The supported types are: .wav
, .flac
, .ogg
, or .aiff
. Stereo files will be re-sampled to mono during the conversion process.
To create a sound effect bank, place your audio files into a folder and run the following command:
docker run --rm -v /path/to/input/dir:/src -v path/to/output/dir:/dest matthewcpp/framework64-audio create_sound_bank [bank_name=sounds]
If the operation is successful, three files will be created in your output directory: bank_name.ctl
, bank_name.tbl
, and bank_name.json
. The .ctl
and .tbl
files can be used with nuAuSndPlayerBankSet. The .json
file contains the list of files that were encoded into the bank. The index of the sound effect in the array corresponds to the sndNo
parameter of nuAuSndPlayerPlay.
The create_sequence_bank
option will create a sequence bank and corresponding instrument bank for all midi files in a directory. Type 1 midi files will be copied and converted to type 0 during processing. Input files will not be modified in any way. The resulting instrument bank will contain only the sounds needed to play the midi files in the supplied input folder.
To create a sequence bank, place your midi files into a folder and run the following command:
docker run --rm -v /path/to/input/dir:/src -v path/to/output/dir:/dest matthewcpp/framework64-audio create_sequence_bank [bank_name=music]
if the operation is successfull, four files will be created in your output directory: bank_name.ctl
, bank_name.tbl
, bank_name.sbk
and bank_name.json
. The .ctl
and .tbl
files can be used with nuAuSeqPlayerBankSet to set the sequence player instrument bank. The .sbk
file is used with nuAuSeqPlayerSeqSet to load the sequence bank into the compact player. The .json
file contains the list of midi files that were encoded into the bank. The index of the midi file in the array corresponds to the seq_no
parameter of nuAuSeqPlayerSetNo.
To build the container from the root repository:
docker build -t matthewcpp/framework64-audio .