[Scummvm-devel] Linux music progress report (with Timidity)
Lionel Ulmer
lionel.ulmer at free.fr
Mon Nov 19 12:01:34 CET 2001
> The sequence when Dr. Fred is sending them back in time - play the whole
> set, and you'll see it looses syncronization fairly badly. I mean, the
> 'time machine operation' midi plays about when hogie is surfing.
Ah, now I remember :-) The famous Beach Boys scene :-)
Anyway, the problem is that I have a lot more work to have this working on
my side due to the fact that I only own an SB16 => I need to do software
mixing !
> The synchro is perfect in Windows - the problem isn't your code as such,
> it's that Timidity is not responsive enough. Or maybe it's just a
> sideeffect of the fact the sound patches are not exactly the same,
> which stretch the midi out. When I quit scummvm, Timidity
> keeps playing backlogged midi music. However, most people do not have a
> wave-table aware card under Linux. I can't get my SBLives wavetable to
> work, although the driver supports it, it doesn't work with the Linux
> driver on my particually motherboard.
My current plan of action is :
= improve (after having discussed with him this afternoon) chuzwuzza's
patch that is on SourceForge for the 'standard' MIDI support (once I
manage to connect to SourceForge that is :-/ )
= release my quickly hacked (but could be fun) .MID generator (i.e. it
records the music of the game you play in a .MID file)
= try to look at how TiMidity does it's timing synchronisation. Check also
the newest TiMidity code to see how the ALSA plug-in works on the timing
side. After, I see two options :
- I can fix with the current server interface (by using some options I
did not investigate yet like MIDI timers)
- I improve the current server with a new type of stream (synchronized
streams) where all the timing informations would come from the
outside. For example, you would request 1024 samples, with event
coming at sample x, y, ... After, in the current code, we would just
have to estimate the number of samples played since the last
'fill_sound' event (with gettimeofday, it should be relatively
precise).
- I create a new interface that does what I explain up there :-)
Anyone sees another ideas (a part from rewriting TiMidity :-) ) ?
Lionel
--
Lionel Ulmer - http://www.bbrox.org/
More information about the Scummvm-devel
mailing list