[chuck-users] increase chuck memory usage

Michael Heuer heuermh at gmail.com
Thu Jan 26 17:01:09 EST 2012


Kassen wrote:

> Michael wrote:
>> Altogether this creates 238 SndBufs, which appears to be more than
>> ChucK can handle.  Sample playback skips, repeats, or is otherwise
>> corrupted.  Removing some of the mappings improves playback.
>
> That's rather a lot! :-)
>
> When I read your mail I suspected that you were connecting all of
> those SndBuf's to the DAC, which would indeed cost quite a lot of CPU
> (only connecting the ones that you need when you need them and
> disconnecting them after that would save a lot in your case)...
> However looking at your file I don't see either a SndBuf or a dac at
> all. Those must be in another file.

Yep, every instance of Sample has a SndBuf chucked to dac

https://github.com/heuermh/lick/blob/deab64e5b1eb1783e9a68bb508a0317c0287bf16/Sample.ck#L105


> So, let's talk about it; do you mean that simply allocating this
> amount of memory causes a large CPU load in and of itself? It
> shouldn't, IMHO only UGens and code  should cost CPU. It could be that
> the garbage collection is going bonkers?

ChucK appears to be hitting one CPU on a two CPU machine pretty hard,
but is only using 305M of RAM.  Overall CPU usage on the machine is
around 55%.


> I don't think memory allocation should do this, at least not once it's
> allocated. 200 mono drumhits doesn't sound like a lot of memory to put
> into the ram of a computer these days, expecting it all to play
> *while* the samples are being pulled from the drive into ram might be
> a bit much.

Good point.  I tried adding a 20 second wait between creating the
BigMono object and all the samples and playing them, to allow for disk
IO, and still get the playback problems.


If anyone wants to play along at home, you'll need to download LiCK
from github and the Big Mono drum kit from here

http://www.analoguedrums.com

and rename the .wav files according to the attached (some files in
bigmono.zip are named incorrectly), or rename some other samples, or
change the file paths in BigMono.ck to match your samples, or
code-reuse by cut and paste BigMono.ck to a different ChucK class to
match your samples.  See e.g.

https://github.com/heuermh/lick/blob/master/RolandTr606.ck

Then

$ chuck --loop &
$ chuck + import.ck
$ chuck + examples/bigMonoDemo.ck

   michael
-------------- next part --------------
CLudwigKick-Dyn01.wav
CLudwigKick-Dyn02.wav
CLudwigKick-Dyn03.wav
CLudwigKick-Dyn04.wav
CLudwigKick-Dyn05.wav
CLudwigKick-Dyn06.wav
CLudwigKick-Dyn07.wav
CLudwigKick-Dyn08.wav
CLudwigKick-Dyn09.wav
CLudwigKick-Dyn10.wav
CLudwigKick-Dyn11.wav
CLudwigKick-Dyn12.wav
CLudwigTom1-DynLH01.wav
CLudwigTom1-DynLH02.wav
CLudwigTom1-DynLH03.wav
CLudwigTom1-DynLH04.wav
CLudwigTom1-DynLH05.wav
CLudwigTom1-DynLH06.wav
CLudwigTom1-DynLH07.wav
CLudwigTom1-DynLH08.wav
CLudwigTom1-DynLH09.wav
CLudwigTom1-DynLH10.wav
CLudwigTom1-DynLH11.wav
CLudwigTom1-DynLH12.wav
CLudwigTom1-DynLH13.wav
CLudwigTom1-DynLH14.wav
CLudwigTom1-DynLH15.wav
CLudwigTom1-DynLH16.wav
CLudwigTom1-DynRH01.wav
CLudwigTom1-DynRH02.wav
CLudwigTom1-DynRH03.wav
CLudwigTom1-DynRH04.wav
CLudwigTom1-DynRH05.wav
CLudwigTom1-DynRH06.wav
CLudwigTom1-DynRH07.wav
CLudwigTom1-DynRH08.wav
CLudwigTom1-DynRH09.wav
CLudwigTom1-DynRH10.wav
CLudwigTom1-DynRH11.wav
CLudwigTom1-DynRH12.wav
CLudwigTom1-DynRH13.wav
CLudwigTom1-DynRH14.wav
CLudwigTom1-DynRH15.wav
CLudwigTom1-DynRH16.wav
CLudwigTom2-DynLH01.wav
CLudwigTom2-DynLH02.wav
CLudwigTom2-DynLH03.wav
CLudwigTom2-DynLH04.wav
CLudwigTom2-DynLH05.wav
CLudwigTom2-DynLH06.wav
CLudwigTom2-DynLH07.wav
CLudwigTom2-DynLH08.wav
CLudwigTom2-DynLH09.wav
CLudwigTom2-DynLH10.wav
CLudwigTom2-DynLH11.wav
CLudwigTom2-DynLH12.wav
CLudwigTom2-DynLH13.wav
CLudwigTom2-DynLH14.wav
CLudwigTom2-DynLH15.wav
CLudwigTom2-DynLH16.wav
CLudwigTom2-DynRH01.wav
CLudwigTom2-DynRH02.wav
CLudwigTom2-DynRH03.wav
CLudwigTom2-DynRH04.wav
CLudwigTom2-DynRH05.wav
CLudwigTom2-DynRH06.wav
CLudwigTom2-DynRH07.wav
CLudwigTom2-DynRH08.wav
CLudwigTom2-DynRH09.wav
CLudwigTom2-DynRH10.wav
CLudwigTom2-DynRH11.wav
CLudwigTom2-DynRH12.wav
CLudwigTom2-DynRH13.wav
CLudwigTom2-DynRH14.wav
CLudwigTom2-DynRH15.wav
CLudwigTom2-DynRH16.wav
Rodgers_DynLH01.wav
Rodgers_DynLH02.wav
Rodgers_DynLH03.wav
Rodgers_DynLH04.wav
Rodgers_DynLH05.wav
Rodgers_DynLH06.wav
Rodgers_DynLH07.wav
Rodgers_DynLH08.wav
Rodgers_DynLH09.wav
Rodgers_DynLH10.wav
Rodgers_DynLH11.wav
Rodgers_DynLH12.wav
Rodgers_DynLH13.wav
Rodgers_DynLH14.wav
Rodgers_DynLH15.wav
Rodgers_DynLH16.wav
Rodgers_DynRH01.wav
Rodgers_DynRH02.wav
Rodgers_DynRH03.wav
Rodgers_DynRH04.wav
Rodgers_DynRH05.wav
Rodgers_DynRH06.wav
Rodgers_DynRH07.wav
Rodgers_DynRH08.wav
Rodgers_DynRH09.wav
Rodgers_DynRH10.wav
Rodgers_DynRH11.wav
Rodgers_DynRH12.wav
Rodgers_DynRH13.wav
Rodgers_DynRH14.wav
Rodgers_DynRH15.wav
Rodgers_DynRH16.wav
Rodgers_HrdLH01.wav
Rodgers_HrdLH02.wav
Rodgers_HrdLH03.wav
Rodgers_HrdLH04.wav
Rodgers_HrdLH05.wav
Rodgers_HrdLH06.wav
Rodgers_HrdLH07.wav
Rodgers_HrdLH08.wav
Rodgers_HrdRH01.wav
Rodgers_HrdRH02.wav
Rodgers_HrdRH03.wav
Rodgers_HrdRH04.wav
Rodgers_HrdRH05.wav
Rodgers_HrdRH06.wav
Rodgers_HrdRH07.wav
Rodgers_HrdRH08.wav
Rodgers_RimClck01.wav
Rodgers_RimClck02.wav
Rodgers_RimClck03.wav
Rodgers_RimClck04.wav
Rodgers_RimClck05.wav
Rodgers_RimClck06.wav
Rodgers_RimClck07.wav
Rodgers_RimClck08.wav
SabHHXEvo20-Dyn01.wav
SabHHXEvo20-Dyn02.wav
SabHHXEvo20-Dyn03.wav
SabHHXEvo20-Dyn04.wav
SabHHXEvo20-Dyn05.wav
SabHHXEvo20-Dyn06.wav
SabHHXEvo20-Dyn07.wav
SabHHXEvo20-Dyn08.wav
SabHHXEvo20-Dyn09.wav
SabHHXEvo20-Dyn10.wav
SabHHXEvo20-Dyn11.wav
SabHHXEvo20-Dyn12.wav
SabHHXEvo20-Dyn13.wav
SabHHXEvo20-Dyn14.wav
SabHHXEvo20-Dyn15.wav
SabHHXEvo20-Dyn16.wav
SabHHXEvo20_Bell01.wav
SabHHXEvo20_Bell02.wav
SabHHXEvo20_Bell03.wav
SabHHXEvo20_Bell04.wav
SabHHXEvo20_Bell05.wav
SabHHXEvo20_Bell06.wav
SabHHXEvo20_Bell07.wav
SabHHXEvo20_Bell08.wav
SabHHXEvo20_Bell09.wav
SabHHXEvo20_Bell10.wav
SabHHXEvo20_Bell11.wav
SabHHXEvo20_Bell12.wav
SabHHXEvo20_Bell13.wav
SabHHXEvo20_Bell14.wav
SabHHXEvo20_Bell15.wav
SabHHXEvo20_Bell16.wav
ZildMstrsnd-DynClsdLH01.wav
ZildMstrsnd-DynClsdLH02.wav
ZildMstrsnd-DynClsdLH03.wav
ZildMstrsnd-DynClsdLH04.wav
ZildMstrsnd-DynClsdLH05.wav
ZildMstrsnd-DynClsdLH06.wav
ZildMstrsnd-DynClsdLH07.wav
ZildMstrsnd-DynClsdLH08.wav
ZildMstrsnd-DynClsdLH09.wav
ZildMstrsnd-DynClsdLH10.wav
ZildMstrsnd-DynClsdLH11.wav
ZildMstrsnd-DynClsdLH12.wav
ZildMstrsnd-DynClsdLH13.wav
ZildMstrsnd-DynClsdLH14.wav
ZildMstrsnd-DynClsdLH15.wav
ZildMstrsnd-DynClsdLH16.wav
ZildMstrsnd-DynClsdRH01.wav
ZildMstrsnd-DynClsdRH02.wav
ZildMstrsnd-DynClsdRH03.wav
ZildMstrsnd-DynClsdRH04.wav
ZildMstrsnd-DynClsdRH05.wav
ZildMstrsnd-DynClsdRH06.wav
ZildMstrsnd-DynClsdRH07.wav
ZildMstrsnd-DynClsdRH08.wav
ZildMstrsnd-DynClsdRH09.wav
ZildMstrsnd-DynClsdRH10.wav
ZildMstrsnd-DynClsdRH11.wav
ZildMstrsnd-DynClsdRH12.wav
ZildMstrsnd-DynClsdRH13.wav
ZildMstrsnd-DynClsdRH14.wav
ZildMstrsnd-DynClsdRH15.wav
ZildMstrsnd-DynClsdRH16.wav
ZildMstrsnd-DynOpn01.wav
ZildMstrsnd-DynOpn02.wav
ZildMstrsnd-DynOpn03.wav
ZildMstrsnd-DynOpn04.wav
ZildMstrsnd-DynOpn05.wav
ZildMstrsnd-DynOpn06.wav
ZildMstrsnd-DynOpn07.wav
ZildMstrsnd-DynOpn08.wav
ZildMstrsnd-DynOpn09.wav
ZildMstrsnd-DynOpn10.wav
ZildMstrsnd-DynOpn11.wav
ZildMstrsnd-DynOpn12.wav
ZildMstrsnd-DynOpn13.wav
ZildMstrsnd-DynOpn14.wav
ZildMstrsnd-DynOpn15.wav
ZildMstrsnd-DynOpn16.wav
ZildMstrsnd-DynPed01.wav
ZildMstrsnd-DynPed02.wav
ZildMstrsnd-DynPed03.wav
ZildMstrsnd-DynPed04.wav
ZildMstrsnd-DynPed05.wav
ZildMstrsnd-DynPed06.wav
ZildMstrsnd-DynPed07.wav
ZildMstrsnd-DynPed08.wav
ZildMstrsnd-DynPed09.wav
ZildMstrsnd-DynPed10.wav
ZildMstrsnd-DynSmiOpn01.wav
ZildMstrsnd-DynSmiOpn02.wav
ZildMstrsnd-DynSmiOpn03.wav
ZildMstrsnd-DynSmiOpn04.wav
ZildMstrsnd-DynSmiOpn05.wav
ZildMstrsnd-DynSmiOpn06.wav
ZildMstrsnd-DynSmiOpn07.wav
ZildMstrsnd-DynSmiOpn08.wav
ZildMstrsnd-DynSmiOpn09.wav
ZildMstrsnd-DynSmiOpn10.wav
ZildMstrsnd-DynSmiOpn11.wav
ZildMstrsnd-DynSmiOpn12.wav
ZildMstrsnd-DynSmiOpn13.wav
ZildMstrsnd-DynSmiOpn14.wav
ZildMstrsnd-DynSmiOpn15.wav
ZildMstrsnd-DynSmiOpn16.wav
ZildjinCrsh 1-Dyn01.wav
ZildjinCrsh 1-Dyn02.wav
ZildjinCrsh 1-Dyn03.wav
ZildjinCrsh 1-Dyn04.wav
ZildjinCrsh 1-Dyn05.wav
ZildjinCrsh 1-Dyn06.wav
ZildjinCrsh 1-Dyn07.wav
ZildjinCrsh 1-Dyn08.wav
ZildjinCrsh 2-Dyn01.wav
ZildjinCrsh 2-Dyn02.wav
ZildjinCrsh 2-Dyn03.wav
ZildjinCrsh 2-Dyn04.wav
ZildjinCrsh 2-Dyn05.wav
ZildjinCrsh 2-Dyn06.wav
ZildjinCrsh 2-Dyn07.wav
ZildjinCrsh 2-Dyn08.wav


More information about the chuck-users mailing list