This question is for people who develop games for ROKU.
When you play a game, typically you have some light motivating music playing in the background.
But ROKU does not support MIDI files.
It does not have a synthesizer, and can't make a sound of given frequency.
How do you deal with that? Do you just package mp3s with your channels (4MB is the maximum, right?)
You would need about 1MB of mp3 instead of 20K of MIDI.
And "Options sidebar" keeps popping onto the screen if you use mp3 playing facility (Audio or roAudioPlayer).
Is there something better?
Thanks!
This is a good question for @Romans_I_XVI .
You don't necessarily have to package the audio file with the app if you can host it somewhere and download it when you channel/app starts. cachefs would be a good place for it.
Do you have game=1 in your manifest?
I was not aware of game=1
Thanks!
I just saw I was tagged here. I actually just got done figuring out how to include a full soundtrack which was almost 200MB originally. Basically my solution was to use ffmpeg to reduce the file size as much as possible without losing too much quality.
Here's a good reference document - https://trac.ffmpeg.org/wiki/Encode/AAC
My best result was accomplished by converting to mono with a 24k bitrate using libfdk and the aac_he profile. Here's what I did:
ffmpeg -i input.ogg -c:a libfdk_aac -vn -ar 44100 -b:a 24k -ac 1 -profile:a aac_he -movflags +faststart output.m4a
Years ago I was attempting to build an XM module player. I never got it to work correctly but it does make noise. It would parse the file and generate a short wave file that I would play as an audio resource. At the end of processing the audio I don't know how much headroom would be available for gameplay though.
In the end my solution is similar to Romans_I_XVI. There is always hosting the audio elsewhere, but for a game I would rather have the audio available even if the internet is unavailable.
The manifest entry for game=1 was supposed to eliminate some audio issues like gaps in sequential playing of audio tracks. I don't know if it actually fixed anything. Any device after the Roku 3 has had a big gap between audio in a playlist so loops don't work well.
game | integer | Available since Roku OS 9 All game channels must add the game manifest entry to their manifest file. This flag prevents the channel from having audio/sound effects delays in the game. | game=1 |
I have never noticed a sidebar when playing audio player or audio resource.