[chuck-users] LiSa SndBuf rate bug?

mike clemow gelfmuse at gmail.com
Sat Nov 15 13:02:46 EST 2008


I just downloaded the newest miniAudicle (0.1.3.9) and experience the
same behavior as before at 44100hz sampling rate.

-Mike

On Sat, Nov 15, 2008 at 12:52 PM, mike clemow <gelfmuse at gmail.com> wrote:
> I'm on Mac OS X 10.4.11 running at 44100.  However, it doesn't change
> if I change the sampling rate.  I'm using Chuck 1.2.1.2 on the command
> line.
>
> hrm...
>
> -Mike
>
> On Sat, Nov 15, 2008 at 12:41 PM, Daniel Trueman <dtrueman at princeton.edu> wrote:
>> what platform are you on, and what sampling rate are you running at?
>>
>> dt
>>
>> On Nov 15, 2008, at 12:30 PM, Daniel Trueman wrote:
>>
>>> hmmm... not sure what's going on. the example works as expected for me,
>>> and as you describe how it should work (plays the whole file through at
>>> twice speed), using the most recent release of miniaudicle and chuck. and
>>> the last line should be lisa.duration() * 0.5 => now, though that shouldn't
>>> affect what you hear.
>>>
>>> dt
>>>
>>> On Nov 15, 2008, at 12:16 PM, mike clemow wrote:
>>>
>>>> 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
>>>> _______________________________________________
>>>> 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
>>
>> _______________________________________________
>> 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
>



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


More information about the chuck-users mailing list