I was wondering if there was any way to hand feed Midi events to a FmodEx stream and, thus, be able to generate dynamic context-based music. Best thing I have found so far are sub sounds but I’m not sure if that would work (actually my hopes are real low given the fact that sub sounds seem to require pre-loaded samples).
- bloodypriest asked 13 years ago
Couldn’t there be a way around that on the application side then? For example, what if I had FMOD read my midi stream from a custom filesystem (FMOD does still allow that?) or something like that?
Or perhaps something in FMOD Designer?
I can manage without for a while since I’m still in the research part of my master thesis but I expect to reach the implementation stage pretty soon so I have to find a solution pretty fast. I’m open to any ideas (MIDI just seemed the best solution since it’s so flexible)
It is right that people are doing interactive music with streams these days but this trend is not appreciated by all of us, and from an artistic point of view (or at least from my point of view) it is not always the best thing to do. MIDI triggering DLS samples is in many ways a lot more flexible to use when making dynamic music.
With systems like DirectMusic you can for example make small motifs and melody lines automatically fit into the harmonic content of the background music. Changes in key and tempo and small variations in melodic content are also done in a more convenient way when using MIDI.
It is true that DirectMusic Producer is very complex but I don’t se how a composition tool can be too complex in functionality as long as it is user-friendly in its way of handle both simple and advanced functions. And THAT is one of the problems with DirectMusic!
Even though FMOD Designer will not include these elements I still look forward to see the future functions for interactive music in the program.
Sorry for taking so long to reply ; I was very busy. It seems that you’ve got the same idea as I was suggesting Janus : feeding very tiny MIDI chunks (one note at a time) to FMod Ex and interpolating between them. This is basically what a sequencer do. Can I do that with the current FMOD Ex API?
As for what sort of thesis I am doing : I want to generate music on the fly with minimal intervention from a human composer. A human composer will always be required but he will be using a new set of tools. Instead of directly manipulating the instruments, he will be manipulating a set of algorithms which can adapt to the current context of the game. I think an example is required :
In most games today, the music is very static; when you enter an area, it is always the same music that plays over and over. So what I am trying to do is to break free from that static music and make the music respond to the game context. For instance, if the player enters a bar and he doesn’t like something the jazz band is playing there and tells them so, then, they might start playing something else ; right in the middle of a previous song.
When I first started this topic, I was thinking about only notes and limited controller events. Only enough to create on the fly a polyphonic type-0 midi stream.
But now, I’ve noticed that someone else just started another thread dealing with the same subject as mine. He was referring to ms directmusic. That would probably be the kind of system I would like to see in FMOD ; but only the real-time MIDI playback/streaming part of it since directmusic is a system way too complex with way too much stuff in it. Well I think you see my point, any system that would allow me to leverage the MIDI format to make real-time dynamic music. I think that, by implementing a soft-synth, you’ve already taken a great step towards that goal (many thanks for that) and I would be willing to bet that, by combining existing FMOD features, a system like the one I’m suggesting could be created in a jiffy. I’m just not sure if it’s doable on the application side or if it would requires changes on the FMOD side.
Just thought about that, perhaps we should continue that conversation in that other thread I just mentioned :
Please login first to submit.