When I was working on Pizza! Fast! I was implementing an explosion sound effect for one of the character abilities. I only put in one explosion sound and I planned to raise and lower the pitch of the sound to add variety to the sound without needing several separate explosion sounds. This worked, but there were two issues. One was that the random pitch range was too wide so the sound could sound great and natural or it could sound super low and robotic or really high and ear piercing. The other issue was that it was on the same audio source as the character dialog, so I was making the character's voice distort with the random pitch levels. It sounded really cool! But it also didn't work with the game at all.
I wanted to explore this idea some more, so when Pizza! Fast! was done I started this project. I worked on it for about a week.
Just One Piece of Audio
My main goal with this project was to only use one piece of audio, the music. I wanted to give the illusion of having different sound effects by using Unity's built-in audio effect tools. I mostly used the pitch tool, but also the reverb and gain.
It started out as just an experimental play zone kind of thing, where you could move around as a little character, and these colorful balls would raise up from the bottom of the screen. You could raise and lower the pitch and the balls would move faster with a higher pitch, and start moving backwards if the pitch was so low that the music was going backwards. You could also press a button to rapidly raise and lower the reverb, which would create a really cool atmospheric sound and make the balls become all spiky and fly in random directions.
This was pretty cool, but all my friends kept saying that they wanted to see some sort of game made out of it. What I made it into was a game where you have to jump on the balls and try to get as high up as you can. The balls pop after a few seconds, so you always have to be jumping around. There's a GUI text in the middle of the screen that shows your current BPM, and at the top of the screen it would show how many beats have gone by while you were raising up on the balls.
I ended up putting the project on an iPhone, and using the accelerometer for most of the interactions. You can tilt the phone to the left and right to move the avatar. Tilt the phone up or down and the pitch of the music will raise or lower. Tap the screen to jump. When the player jumps, the music pitch spikes and goes back down right away. This creates a little "Blip!" sound for jumping. If you raise the pitch past 280 bpm, the balls do that spiky reverb thing, making it very difficult to stay on them. For the jumping and reverb thing, I raise the gain really quick to make the "sound effects" more prominent.
The cool thing about these sound effects is that they sound different every time. It's all based on the music, so the effects will never sound exactly the same.
How Is This as a Game?
It's a really cool idea, but I don't think that this is the best game for it. Trying to get as high up as you can has been done a million and one times. Also, there's not really a reason to raise or lower the pitch. It gets harder to control the faster the music is going, and there's the risk of going too fast and causing the balls to go crazy and spiky. And there's just no reason you would ever want to make the balls go backwards with the lower pitch.
I plan to continue with the idea of raising/lowering the pitch of music to alter the environment and accomplish some goal, but when I do it will be with different gameplay.