The sound effects of Trisector were designed to be minimalistic and 8-bit sounding. This article will describe the process that went into creating each sound used in Trisector.
In the beginning, I spent some time trying to record and tweak live sounds to be used for the sound effects in Trisector. One day I happened to run across Bfxr, and knew I had found my sound effect creation tool.
Bfxr is pretty straight forward to use, and I spent a few days creating and tweaking sounds for the power-ups, lasers, explosions, thrust, user interface, etc. After I had the parameters set for how I wanted an effect to sound, it was simply a matter of copying and saving a link to the sound in case it needed to be further tweaked, and exporting a wav of the sound to my computer.
For example, here is a link that specifies the parameters for the Shield Power-up in Bfxr.
After exporting the sound effect as a wave file, it was cleaned up and the levels were normalized in Audacity so that all of the sounds had a similar loudness.
Once finalized, the sound effect was exported and converted to a CAF file using afconvert.
afconvert -v -f 'caff' -d aac -s 1 -b 128000 effect_shield.wav effect_shield.caf parameters: -v : verbose output -f 'caff' : CAF (core audio format) output format -d aac : AAC data format -s 1 : use average bit rate -b 128000 : target 128000 bit rate effect_shield.wav : input file effect_shield.caf : output file
There were not too many surprises associated with using the effects in the game. All of the effects are preloaded into Trisector during the intro (the Headphones Recommended screen), and then played when needed. If the sound was not preloaded, there would be a very noticeable hitch first time the effect was used in the game. As an example, the code snippets below show the define, effect preload, and effect play code associated with the Shield power-up:
// define the effect #define EFFECT_SHIELD @"effect_shield.caf" // preload [[SimpleAudioEngine sharedEngine] preloadEffect:EFFECT_SHIELD]; // play [[SimpleAudioEngine sharedEngine] playEffect:EFFECT_SHIELD pitch:1.0 pan:0.0];
Also, the effect sounds play in the first source group and are limited to 16 channels. Effects playing in the first source group will be overwritten if there are more than 16 effects playing at once. These effects are mostly a second in duration or less so it’s not a big deal if one gets cutoff while playing. See Making of Trisector: Music for more information on source groups.
In total, there are 15 different sound effects used in Trisector, and the total size of all samples used for the effects is 288K.
Trisector also includes a story that spans the 9 levels, and the player ship is granted a starting speed and energy bonus for a level if all of the story nodes are collected in that level. Around the time I was wrapping up the sound effects, I watched the Bastion GDC Talk about their sound design and was captivated by their whole process.
I spent the next few nights recording dialog from the story nodes on Level 1 using a Behringer C-1 condenser mic that was connected through a Behringer Xenyx 302USB Mixer to my computer. I had 5 voice overs for the 7 or so story nodes in level one recorded and cleaned up. They sounded decent enough when played through desktop speakers or headphones, but sounded like a mumbled mess when played through the built in speakers.
One of the reasons for sub-par sound quality is due to the game being pretty noisy with all of the player and enemy bullets, which masked the sound of the voice overs. However, dropping the volume on effects down and raising the voice over volume up didn’t do much to improve the clarity of the voice overs. The sound quality issues were complicated by the fact that I’m not even a half-decent voice over actor, so I made the decision to scrap the voice overs for now. It’s definitely something I want to revisit in the future, since the voice overs would blend the story in better than reading text while dodging bullets.
Hope you found this article on Trisector’s Sound Effects interesting,
Jesse from Smash/Riot