[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] pd better at playing files from disk .. why?



Hi Josh & rest,

This seems like quite a fundamental problem to me. I just ran the example on my machine with VSFP, with again the same problems. VSFP turns out to be quite informative though; I got the following error messages when the inactive memory was filled up and the glitches started to appear:

...
File '/Users/woutersnoei/Desktop/testSin/sin31.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin6.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin9.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin15.aif' could not be opened.
Clearing AbstractPlayer SynthDef cache
File '/Users/woutersnoei/Desktop/testSin/sin27.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin26.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin10.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin3.aif' could not be opened.
Clearing AbstractPlayer SynthDef cache
File '/Users/woutersnoei/Desktop/testSin/sin15.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin4.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin29.aif' could not be opened.
File '/Users/woutersnoei/Desktop/testSin/sin29.aif' could not be opened.
Clearing AbstractPlayer SynthDef cache
...

As far as I can see from the code VFSP simply does Buffer.readMsg on regular time intervals, probably the same thing VDiskIn and DiskIn do as a primitive. My guess is there is something wrong with the buffer reading engine. I also recently noticed that loading many buffers at once (apx 500) fails silently in the current builds, where it used to be possible in the past (I came across this when running older code).

I hope someone out there can find a solution to this. There are *many* apps that have no problems streaming from disk. Supercollider is the only one I know of that just can't seem to do it..

cheers,
Wouter

Op 16 mrt 2009, om 18:47 heeft Josh Parmenter het volgende geschreven:

no idea from me.

Josh

On Mar 16, 2009, at 5:04 AM, Wouter Snoei wrote:

Hmm.. how to proceed?

cheers,
Wouter

Op 15 mrt 2009, om 05:41 heeft Josh Parmenter het volgende geschreven:

Yeah - I ran this as well and hear (and see) the problem, but can't see what the problem is. SHARK doesn't show anything, and in Activity Monitor, I don't see memory increases in scsynth of SuperCollider.app . Seems like something to do with system caching possibly?

Josh

On Mar 14, 2009, at 4:23 PM, Wouter Snoei wrote:

Hi Dan & rest,

I've also made a screenshot of the MenuMeters memory-indicator. The red-greyish top part shows "inactive" memory (as opposed to free memory), in a history timeline. This builds up with a quite straight line right until the top. As soon as it arrived there the system starts paging and the audio becomes corrupted. That is the moment when I took the screenshot below. At that moment there is about 900Mb of inactive memory (my system has 2GB in total), 500MB active, 450mb wired and 10 mb free. There is a very clear and consistent connection between what the meters show and what the audio does. When I stop the diskin and close+free the buffers the inactive memory indicator immediately drops down again to ±10mb (which is where it usually is). The buffer size for diskin doesn't really make a change, although at smalles sizes this seems to happen sooner. I've ran my test lots of times now and every time the same happens. It is almost predictable. I can send you the shark full-system snapshots taken during this process (they are quite large files so I don't attach them here).

cheers,
Wouter

<memorymeters_diskin.jpg>

Op 14 mrt 2009, om 22:00 heeft Wouter Snoei het volgende geschreven:

Hi Dan,

I just did a test with it. I can't see anything happening in the shark results. They look the same all the time, no matter if I play diskins or not. I made a testcase, posted below. It requires wslib to be installed and apx 3GB free space:

// define path (change at will)
p = "~/Desktop/testSin/sin";

// create 32 ten-minute audiofiles in nrt (this requires wslib)
(
32.do({ |i| { SinOsc.ar( SinOsc.kr(0.25).range(84,(i +50)).midicps, 0, 1/32 ) }
	.render( p ++ i ++ ".aif", 60*10, async: true ); });
)

// cue them into buffers
b = 32.collect({ |i| Buffer.cueSoundFile(s, (p ++ i ++ ".aif").standardizePath, 0, 1); });

// and play
b.do({ |buf| { DiskIn.ar(1, buf, loop: 1) * 0.25 }.play; });

on my machine (Macbook Pro 2.4GHz, OSX 10.5.6, sc rev 8898) after about 3 minutes this sounds like:

<after_3_mins.aac>


while it should sound like:

<shoud_sound_like.aac>


hope that sheds some light on the matter.

cheers,
Wouter

Op 14 mrt 2009, om 11:43 heeft Dan Stowell het volgende geschreven:

Hi Wouter,

If you don't mind doing some work on this it would be really helpful.
Use Apple's "Shark" profiling tool on your machine (I'm on PPC so
can't test) - it has a "malloc trace" mode which can help you spot where the apparent memory leak is happening. (It could be somewhere
inside libsndfile for example?)

Dan


2009/3/14 Wouter Snoei <mailinglists@xxxxxxxxxxxxxx>:
Hi Josh,

we tried many different buffer sizes. All have the same problem. It seems to be some kind of memory leak; we installed memory meters and when playing disk files the memory keeps filling up until it starts swapping to VM. That
is ± where the audible problems begin.

cheers,
Wouter

Op 5 mrt 2009, om 23:24 heeft Josh Parmenter het volgende geschreven:

how big are your buffers for DiskIn? Try making them bigger perhaps?

Josh

On Mar 5, 2009, at 2:21 PM, Wouter Snoei wrote:

Hi all,

it seems that pd is far better at playing multiple audio files from disk then SC. SC almost always fails when playing over 16 mono files at once (it starts leaving gaps and irregular clicks and loops occur after apx 3 minutes). Some sonology students working with our wfs system found out that pd can play 96 files on it at once easily, without much cpu use and no problems at all. They tested it extensively against SC. Could it be an idea to port the pd disk streaming engine to SC? Btw only the intel machines seem to have this issue with SC, we didn't have any problems back when we had
G5's running.

cheers,
Wouter

_______________________________________________
sc-users mailing list

info (subscription, etc.):
http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own
interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi
Nono
*/


_______________________________________________
sc-users mailing list

info (subscription, etc.):
http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/


_______________________________________________
sc-users mailing list

info (subscription, etc.):
http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/




--
http://www.mcld.co.uk

_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/



******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi Nono
*/


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi Nono
*/


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/