Great! Tree collision was hilarious.
There are some clicks in the sound. I think it happens with volume changes, a sort of zippering effect? I’m can’t tell for sure what is causing it. It could be the change increment is too large, and if you tightened the granularity, you could use smaller vol. change increments. The area around 0:30-0:40 is an example of where this is happening. The very startup of the motor at the beginning has a nice click, too.
I’m wondering how I would implement this sound. Maybe I would store an array of values (floats allows decent computation) for the basic engine sfx, and use linear interpolation while looping through it at varying rates to get the different pitches & convert to the sound format you’ve chosen for output. I’ve written a mechanism for changing volume at the smallest possible increment, a single frame, and would be happy to share that. But it might be tricky figuring out where to put it if you are using library code. Also, if you are using a volume control, there might be a way to make it update more often (and thus allow smaller increments). But I suspect the Java’s Control implementation doesn’t work for updates smaller than a single read buffer of the sound.
Nice sound choices, though! I like the sound effects you have. Looking forward to trying out the game when it is up and running!
[EDIT: Here’s an attempt to make a varispeed looper. Still some bugs to work out but perhaps of interest.
http://www.hexara.com/VariSpeedLooper.jar
You can load .wav files and play them back by holding the mouse down. The vertical is for volume and the horizontal is for pitch/velocity. I put in some controls to allow the ends of the recording to overlap, either cross-fading or being added together. You would use the “merge tracks” if the recording ends already had fades from and to nothing at either end. I’m imagining putting a racing engine sound in there, and doing doppler type effects as the car speeds up or slows down. The .wav files should be 16-bit, 44100 fps, stereo, little-endian. I haven’t encoded other formats yet.
It plays pretty clean in terms of not clicking with volume/speed changes, though not perfect. I’m getting a funny bit of pitch shift back and forth though that I can’t account for (am using a linear interpolation algorithm for the varispeed) and a bit of fuzz/distortion for the overlap that I also can’t account for yet.]