procedural music, drum composition, proof of concept

I was just sent a link that has a terrific example of using procedural music composition in a game. I’ve only just now watched the video and thought it was well worth sharing:

http://intelligentmusicsystems.com/

In this case, the composing pertains to how the drums are used (though there are some nice synthesized sounds as well). I find the flow of the game play shown is particularly nice, don’t you agree? The increase in activity, for example, when the guards discover the hero really gets the adrenaline going for the coming fight.

I’m wondering if the reverberation on the drums is part of the drum samples being used, or added on as last stage sweetening. And am also wondering whether or not the drums are sampled or generated. Maybe the drums are like sprites in that each “drum” is a collection of samples of the same drum being recorded but at different intensity levels. I think this is the most common algo used. Generating drums procedurally (from scratch) usually takes a lot of cpu and pretty sophisticated software, not something as cpu friendly as FM synthesis.

I’m not sure how procedural music is generated within a program, but I did work in a recording studio as a recording engineer for 10 years. These most definitely sound like samples to me. They sound too good to be generated, especially when it comes to the cymbals (cymbals tend to sound really crappy when generated and these sound pretty good). I’m not sure if you can put effects like reverb or delay on music with a good game engine (say something like "audioHandler.add(reverb)), but if you can that’s probably what they’re doing. Having all those samples with long reverb tails would take up a lot of memory I think. Like think of a drum hit is maybe 1 second. But with the reverb tails (if the reverb was on the sample itself), it could easily take up to 4 to 5 seconds (especially in the end of that video when they are really long). Add all those different drums with different length reverb tails and you are gonna end up with a good amount of samples which you would need to call independently when the reverb tail needs to get longer. For that reason, I bet they generated sampled the music with the 4 or 5 sounds they had (toms, timpanis, kickdrum, and hi hat from what I heard), then put a reverb effect on all the audio itself using the engine (audioHandler.add(reverb.volume(1), or when it needs a longer reverb tail something like audioHandler.add(reverb.volume(10)).

Those are definitely multisamples. Effects/mixing sounds live to me.

If you (FabulousFellini) are hearing the reverb tails become shorter or longer, then I’m thinking it is most probably a combination of relatively short samples (possibly dry) combined with a reverb for the entire mix. That still leaves the question of how the reverb is generated, as reverb is pretty cpu intensive. If it were just delay, that would be much less of a strain on cpu (by orders of magnitude).

I think there is some tone color change on the drums, depending on the hits. So there may be a set of samples for each drum. I assume that is what you (BurntPizza) mean by “multisamples”?

Regardless, the sound score is pretty nice how it follows along with the action.
I haven’t figured out the algorithm being used to modulate the drum composition. I notice that there is often a slight “ting” almost exactly when an enemy gets dropped.

Yes. https://www.google.com/search?q=instrument+multisamples

Well, it ain’t that bad depending on the algorithm. There have been real-time reverb DSP plugins for, what, 20 years. Java ain’t that slow! :wink:

Praxis LIVE includes a port of the freeverb algorithm. It’s forked from an original Java port by Karl Helgason (who also wrote Gervill, which has a similar reverb).

Code is here - https://github.com/jaudiolibs/audioops/blob/master/audioops-impl/src/main/java/org/jaudiolibs/audioops/impl/FreeverbOp.java

Meh, I found it quite poor actually. I mean, the samples are good but the overall atmosphere created by the music did not fit the game at all. The music reminded me more of a fleet of warships steaming up for a good long-range bombardment rather than intimate close-up combat. I suspect a bunch of monkeys ramming on drums will have pretty much the same effect.

Edit: I should add that I really do not have an ear for music as you might have guessed.

@Grunnt
It seems to me that drums/drumming of this sort has become a stock movie scoring play, and becomes cliche when overused. Still it can often be pretty exciting. I remember first noticing this sort of drumming in “Crouching Tiger, Hidden Dragon”.