[chuck-users] Auto tune

Michael Heuer heuermh at gmail.com
Wed Jun 11 14:25:10 EDT 2014


Hello Joel,

No, I haven't yet, those look awesome!

The main point of my plugin wrapping is to make them an instance of
Effect, which provides wet/dry mix and stop/start functionality as if
the plugin were a guitar effect pedal.

   michael


On Wed, Jun 11, 2014 at 11:58 AM, Joel Matthys <jwmatthys at yahoo.com> wrote:
> Sweet! I gotta keep up with all of your amazing work, Michael!
>
> BTW, have you looked at wrapping the bitrot Ladspa plugins? They do some
> great glitch stuff. Here's something I did with them:
>
> https://soundcloud.com/jwmatthys/glitck
> https://soundcloud.com/jwmatthys/glitck2
>
> Source code:
>
> // GlitCK by Joel Matthys
>
> [41, 48, 53, 56, 58, 59, 60, 63, 65] @=> int pitches[];
> [0.25, 0.5, 1, 2, 4] @=> float speeds[];
> 120 => float tempo;
> if (me.args()) me.arg(0) => Std.atof => tempo;
>
> ModalBar bars => LADSPA stutter => LADSPA tape => LADSPA reverse => Pan2 pan
> => Gain g[2] => Envelope fade => dac;
> Shakers shake => stutter;
> g => Echo e[2] => g;
> tpo2dur(tempo)*16 => e[0].max => e[0].delay;
> tpo2dur(tempo)*16 => e[1].max => e[1].delay;
> 1 => e[0].mix => e[1].mix;
> 0.9 => e[0].gain => e[1].gain;
>
> 2::minute => fade.duration;
> 1 => fade.value;
>
> "./bitrot_stutter.so" => stutter.load;
> "stutter" => stutter.activate;
> //stutter.info();
> stutter.set(1,tempo);
> stutter.set(2,4);
> stutter.set(3,16);
> stutter.set(8,1);
> 0 => stutter.verbose;
>
> "./bitrot_tapestop.so" => tape.load;
> "tapestop" => tape.activate;
> //tape.info();
> tape.set(1,1);
> 0 => tape.verbose;
>
> "./bitrot_reverser.so" => reverse.load;
> "reverser" => reverse.activate;
> //reverse.info();
> 0 => reverse.verbose;
>
> 0.2 => bars.gain;
> 0.25 => shake.gain;
>
> now + 5::minute => time later;
> while (now < later)
> {
>     Math.random2f(-1,1) => pan.pan;
>     pitches[Math.random2(0,pitches.size()-1)] => Std.mtof => bars.freq;
>     Math.random2(0,22) => shake.preset;
>     Math.random2(0,8) => bars.preset;
>     maybe && maybe => bars.noteOn;
>     maybe && maybe => shake.noteOn;
>     tpo2dur(tempo) => now;
>     if (maybe && maybe) stutter.set(6,maybe);
>     if (maybe && maybe) stutter.set(4,maybe);
>     if (maybe) stutter.set(0,maybe);
>     if (maybe) stutter.set(9,speeds[Math.random2(0,speeds.size()-1)]);
>     tape.set(0,maybe);
>     reverse.set(0,maybe);
> }
> stutter.set(0,0);
> tape.set(0,0);
> reverse.set(0,0);
> 0 => fade.target;
> 2::minute => now;
>
> fun dur tpo2dur (float tpo)
> {
>     return (60000.0/tpo)::ms;
> }
>
>
> On 06/11/2014 11:44 AM, Michael Heuer wrote:
>>
>> Oh, hey Joel!
>>
>> Sigmund is wrapped in LiCK as well
>>
>> https://github.com/heuermh/lick/blob/master/SigmuFollower.ck
>>
>>     michael
>>
>>
>> On Wed, Jun 11, 2014 at 11:41 AM, Joel Matthys <jwmatthys at yahoo.com>
>> wrote:
>>>
>>> Autotune requires a pretty accurate pitch-tracker, which isn't built in
>>> to
>>> ChucK but is available as part of my Chugin package at
>>> https://github.com/jwmatthys/chugins
>>>
>>> With either the PitchTrack or Sigmund chugins, you can do autotuning like
>>> this in ChucK:
>>>
>>> https://soundcloud.com/jwmatthys/obama-autotuned-chuck-version
>>> https://soundcloud.com/jwmatthys/obama-resynthesized
>>>
>>> (Sample code is included with the chugins.)
>>>
>>> Joel
>>>
>>>
>>> On 06/11/2014 11:25 AM, Philipp Blume wrote:
>>>
>>> Has anyone tried to make an autotune emulation using ChucK? Seems like it
>>> would be doable, albeit with constraints.
>>>
>>> --
>>> Philipp Blume
>>>
>>>
>>> _______________________________________________
>>> 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
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users


More information about the chuck-users mailing list