Has anyone tried to make an autotune emulation using ChucK? Seems like it would be doable, albeit with constraints. -- Philipp Blume
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@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
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
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@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
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
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@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
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
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
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@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Hello Philipp,
If you're willing to use LADSPA via the ChucK Chugins mechanism, then yes
https://github.com/jwmatthys/chugins/blob/master/PitchTrack/autotune-test.ck
Joel's PitchTrack and RubberBand
(http://breakfastquay.com/rubberband/) are also wrapped in LiCK
https://github.com/heuermh/lick/blob/master/PitchFollower.ck
https://github.com/heuermh/lick/blob/master/RubberBand.ck
michael
On Wed, Jun 11, 2014 at 11:25 AM, Philipp Blume
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@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
participants (3)
-
Joel Matthys
-
Michael Heuer
-
Philipp Blume