> Is the ringbuf effect plugin different to this, and which ringbuf 
> does
> ringbuf.buffersize apply to?

ringbuf.buffersize is the parameter for the ringbuf xform effect

output.buffersize is the parameter for the internal buffer

> 
> Am I right in thinking if I enable the ringbuf xform and set a (for
> example) 10MB buffer, one entire song could be buffered in memory? 
>  My
> songs have small gaps in them occasionally because I have them on a
> "green" hard disk and it takes too long to unpark the heads 
> sometimes,
> so I'm guessing this would fix that problem?

I guess not. What the ringbuffer effect do is pre-fetch in a separate
thread the data of the current song in a separate buffer so that
filling the output ringbuffer (synchronously) don't causes gaps during
the playback of a single song.
The chain for the next song, however, is built the moment no data is
available for the current xform chain (i.e. the ringbuf xform has no
data left in its own buffer). For that reason, the 'read-ahead' of the
next song is almost inexistent and depends totally on the value of
output.buffersize.
You may try to increase it to subtancial values. For instance, if the
output format is 48kHz 16bits stereo, to start chain setup of the next
song ~1 second ahead, you will need to set output.buffersize to 192000.

I agree, the current design is poor and not fit for gapless playback,
especially with high latency devices. Some deep rework is necessary.
Someone actually made an attempt a few years ago but no mergeable clean
patch was ever submitted.

regards,

Raphaël

--
_______________________________________________
Xmms2-devel mailing list
Xmms2-devel@lists.xmms2.org
http://lists.xmms2.org/cgi-bin/mailman/listinfo/xmms2-devel

Reply via email to