[chuck-users] LiSa SndBuf rate bug?

mike clemow gelfmuse at gmail.com
Sat Nov 15 12:16:45 EST 2008


Hi Dan,

I guess what I'm trying to say is that, when I run this example, I
only get the first half of the SndBuf into LiSa and it plays back at
half-speed when the rate is set to 1.  It seems to me, that this isn't
right.  Since, the example came with the rate set to 2 in order to
play back at normal speed, I assumed that you guys knew about this.

buf.samples() * 1::samp => lisa.duration;

This should (however you choose to write it) create a buffer equal in
size to the SndBuf.

for ( 0 => int i; i < buf.samples(); i++ ) {

	//args are sample value and sample index (dur must be integral in samples)
	lisa.valueAt(buf.valueAt(i), i::samp);
	
}

Here, I understand we're copying all the samples from SndBuf into LiSa.

1  => lisa.play;
2. => lisa.rate;

Playing back with a rate of 2 should make it play back twice as fast
as normal, if I understand this correctly, however, it doesn't seem to
do so.

lisa.duration() => now;

This should advance time long enough to hear the whole thing.  This is
true, but only because we have only the first half of the SndBuf in
LiSa, and we hear it twice.  This doesn't seem right to me, unless I'm
missing something.

-Mike



On Fri, Nov 14, 2008 at 9:24 PM, dan trueman <dtrueman at princeton.edu> wrote:
> 'tis an example. change the line:
>
> 2. => lisa.rate;
>
> to whatever you want to get a different rate. just make sure you change:
>
> lisa.duration() * 0.5 => now;
>
> to an appropriate value as well, to make sure it plays long enough....
>
> dt
>
> On Nov 14, 2008, at 8:10 PM, mike clemow wrote:
>
>> Hey folks,
>>
>> In the below example (which you will all find in the LiSa-SndBuf.ck
>> file in examples in your installation), after populating the buffer in
>> the LiSa object with the values of the samples from SndBuf, the rate
>> of the LiSa object is set equal to 2. in order to play back normally.
>> Why is it not 1?  Why this should be the case makes little sense to me
>> and I respectfully submit this as a bug, unless someone can provide a
>> reasonable explanation.
>>
>> Thoughts?
>>
>> -Mike
>>
>>
>> -----
>>
>> //ugens
>> SndBuf buf;
>> LiSa lisa => dac;
>>
>> //change this path to your own sample
>> "/Users/dan/Files/Chuck/LiSa_examples/TomVega.wav" => buf.read;
>>
>> //set lisa buffer size to sample size
>> buf.samples() * 1::samp => lisa.duration;
>>
>> //transfer values from SndBuf to LiSa
>> for ( 0 => int i; i < buf.samples(); i++ ) {
>>
>>        //args are sample value and sample index (dur must be integral in
>> samples)
>>        lisa.valueAt(buf.valueAt(i), i::samp);
>>
>> }
>>
>> //party on...
>> 1  => lisa.play;
>> 2. => lisa.rate;
>>
>> //look at some of the data
>> //returns value at given time, with linear interpolation
>> <<< Std.rand2f( 0., lisa.duration() / 1::samp ) :: samp  => lisa.valueAt
>> >>>;
>>
>> //hang on until it's done...
>> lisa.duration() * 0.5 => now;
>>
>> --
>> http://michaelclemow.com
>> http://semiotech.org
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>



-- 
http://michaelclemow.com
http://semiotech.org


More information about the chuck-users mailing list