[chuck-users] sndBuf.valueAt (Forrest Curo asks)

Forrest Curo treegestalt at gmail.com
Mon Apr 20 15:10:37 EDT 2020


Yes, I'm interested!
Whatever turns out easier, one could apply it to note lengths, amplitudes,
other parameters  in same way for same reasons: a bit of patterned
randomness.

On Mon, Apr 20, 2020 at 11:32 AM Mario Buoninfante <
mario.buoninfante at gmail.com> wrote:

> Hi,
>
> In case you're interested I made a SampHold chugin that you can find here:
> https://github.com/mariobuoninfante/ChucK_chugins
>
> Cheers,
> Mario
>
> On Mon, 20 Apr 2020 at 18:05, Forrest Curo <treegestalt at gmail.com> wrote:
>
>> "A sample and hold uses a periodic wave as an input. The wave is sampled
>> at regular
>> intervals. The resulting values are used as a control. It "samples" the
>> wave and "holds" that
>> value until a new value is sampled. It can be thought of as an analog to
>> digital converter with
>> a low frequency sampling rate (though technically the wave being sampled
>> is also digital).
>> The effect is similar to a strobe light or motion picture film taking
>> snapshots of a smooth
>> process. That smooth process is then quantized into discrete steps.
>>
>> "How is this useful in synthesis? Why would you want to freeze-frame a
>> wave form?
>> The idea is that even though the sample rate is too low to accurately
>> represent the true shape
>> of the wave, patterns will still emerge because the wave is periodic, and
>> the sample rate is
>> periodic."
>>
>> [David Cottle, _Computer Music with Examples in Supercollider 3]
>>
>> (This can be done in ChucK; the sndBuf containing the wave can be sampled
>> via .valueAt without directly playing it.)
>>
>> On Sun, Apr 19, 2020 at 9:50 PM Forrest Curo <treegestalt at gmail.com>
>> wrote:
>>
>>> I've achieved  dreadfulness with this. Okay, will vary the rhythm etc
>>> and reduce the range, get a more interesting scale, but... hmm!
>>> SawOsc s => JCRev r => dac;
>>> .1 => s.gain;
>>> .1 => r.mix;
>>> 1 => int incsamp;
>>> 0 => int ps;
>>> 1 => float height;
>>> 0 => float maxsofar;
>>> 0 => float freq;
>>> SndBuf buf;
>>>
>>> "/home/forrest/chuck/examples/basic/om.wav" => buf.read;
>>>
>>> buf.samples()  => int numSamples;
>>>  Std.rand2(1, numSamples-1) => incsamp;
>>> while(true){
>>> (incsamp + ps) % numSamples => ps;
>>> buf.valueAt(ps) + 0.125 => height;
>>> Std.mtof(Math.ceil(Std.fabs(500.0 * height)) ) => freq => s.freq;
>>>
>>> if(freq > maxsofar) {
>>> freq => maxsofar;
>>> <<< maxsofar >>>;
>>> }
>>> 0.75::second => now;
>>> }
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Sun, Apr 19, 2020 at 1:42 PM Forrest Curo <treegestalt at gmail.com>
>>> wrote:
>>>
>>>> Um. that works.
>>>> So does this:
>>>> SndBuf s => blackhole;
>>>> "/home/forrest/chuck/examples/basic/om.wav" => s.read;
>>>> float samples;
>>>> 0 => int i;
>>>> while (s.pos() < s.samples())  {
>>>>     <<< s.last() >>>;
>>>>     s.pos() => i;
>>>>     (s.valueAt(i)) => samples;
>>>>     <<< samples >>>;
>>>>     samp => now;
>>>> }
>>>>
>>>> I was having trouble trying to read a sndBuf like an array, or put its
>>>> contents into an array.
>>>> Maybe I was reading numbers off the end of the file. Declaring
>>>> 'float samples[]; '
>>>> and doing
>>>> 's.valueAt(i) => samples[i];'
>>>>
>>>> got me a 'Null pointer' error.
>>>>
>>>> Stumbling over syntax, I guess. Thanks for help!
>>>>
>>>> On Sun, Apr 19, 2020 at 10:54 AM Perry Cook <prc at cs.princeton.edu>
>>>> wrote:
>>>>
>>>>> This is truly odd.  I don’t have easy means to test it.   I don’t
>>>>> know why it wouldbe broken dependent on the dac, however.
>>>>>
>>>>> For fun you might try something like this, just to verify that the
>>>>> valueAt() function is what’s busted.
>>>>>
>>>>> SndBuf s => blackhole;
>>>>> “Fred.wav” => s.read;
>>>>>
>>>>> while (s.pos() < s.samples())  {
>>>>>     <<< s.last() >>>;
>>>>>     samp => now;
>>>>> }
>>>>>
>>>>> PRC
>>>>>
>>>>> > On Apr 19, 2020, at 9:00 AM,
>>>>> chuck-users-request at lists.cs.princeton.edu wrote:
>>>>> >
>>>>> > Send chuck-users mailing list submissions to
>>>>> >       chuck-users at lists.cs.princeton.edu
>>>>> >
>>>>> > To subscribe or unsubscribe via the World Wide Web, visit
>>>>> >       https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>>>> > or, via email, send a message with subject or body 'help' to
>>>>> >       chuck-users-request at lists.cs.princeton.edu
>>>>> >
>>>>> > You can reach the person managing the list at
>>>>> >       chuck-users-owner at lists.cs.princeton.edu
>>>>> >
>>>>> > When replying, please edit your Subject line so it is more specific
>>>>> > than "Re: Contents of chuck-users digest..."
>>>>> >
>>>>> >
>>>>> > Today's Topics:
>>>>> >
>>>>> >   1. sndBuf.valueAt (Forrest Curo)
>>>>> >
>>>>> >
>>>>> >
>>>>> ----------------------------------------------------------------------
>>>>> >
>>>>> > Message: 1
>>>>> > Date: Sun, 19 Apr 2020 07:30:15 -0700
>>>>> > From: Forrest Curo <treegestalt at gmail.com>
>>>>> > To: ChucK Users Mailing List <chuck-users at lists.cs.princeton.edu>
>>>>> > Subject: [chuck-users] sndBuf.valueAt
>>>>> > Message-ID:
>>>>> >       <CAAn-Ecy0LKVHCWmoUL2Y7w67rsibhRAHOOkN1neZyU=az3vm=
>>>>> g at mail.gmail.com>
>>>>> > Content-Type: text/plain; charset="utf-8"
>>>>> >
>>>>> > Using chuck linux-jack this gives me reasonable numbers between -1
>>>>> and 1.
>>>>> > Using chuck linux-alsa I'm able to play the file I've read into
>>>>> sndBuf; but
>>>>> > trying to copy it via .valueAt gives absurdly high ["out of range"]
>>>>> numbers
>>>>> > at each point. [It can be a different high number different times I
>>>>> run
>>>>> > chuck, but the number it is turns up at every point I sample.]
>>>>> >
>>>>> > Is there a fix for this? Aside from using jack on a computer where it
>>>>> > befnurgles the midi?
>>>>> > -------------- next part --------------
>>>>> > An HTML attachment was scrubbed...
>>>>> > URL: <
>>>>> http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200419/76d94eef/attachment-0001.html
>>>>> >
>>>>> >
>>>>> > ------------------------------
>>>>> >
>>>>> > _______________________________________________
>>>>> > chuck-users mailing list
>>>>> > chuck-users at lists.cs.princeton.edu
>>>>> > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>>>> >
>>>>> >
>>>>> > End of chuck-users Digest, Vol 176, Issue 4
>>>>> > *******************************************
>>>>>
>>>>> _______________________________________________
>>>>> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200420/a528c31d/attachment.html>


More information about the chuck-users mailing list