setcps(86/60/4)
d1 $ jux (choose[0.01,0.1] <~) $ sometimesBy 0.1 (# speed"0.5") $ whenmod 8 6 (rev)
$ striate (choose[8,8,16,32]) $ stut' 4 0.25 (# speed "0.9 0.5")
$ sound "Lick:4"
d2 $ every 16 (rev) $ s "Kick:2(<3 5>,<8!3 16>)" # gain 1.5
d4 $ every 4 (# room"0.6") $ stut' 6 0.125 (# speed "0.8 1 -0.9 1") $ s "Clap"
d3 $ every 2 (# speed "1 0.9 0.8")$ jux (0.1 <~)$ s "Hihat:1!8"
d5 $ jux rev $ n (run 8) # s "Noise" # speed 1 # cut 1
d6 $ stut' (choose[2,6]) 0.125 (# room (rand)) $ striate (irand(8)) $ slow (choose[2,4])
$ s "Vocal:2" # gain 1.5 |* speed "<1 1 0.5 -1> 1.5*2 <1 0.5 -0.8> 1" # cut 6
-- |+ vowel "a e i o e e i i"
hush
注意:今回のコードでは、Native Instruments社のMaschine ExpansionであるAstral Flutterを音源として読み込んでいますので、デフォルトのTidalcyclesで上記コードを実行してもsoundは再生されません。
参考までに、今回の動画を実行するためのstartup fileを掲載しておきます。
SuperDirt.start;
(
s.waitForBoot {
~dirt = SuperDirt(2, s); // two output channels
~dirt.loadSoundFiles("/Users/Shared/Astral Flutter Library/Samples/Drums/*");
~dirt.loadSoundFiles("/Users/Shared/Astral Flutter Library/Samples/Instruments/*");
~dirt.loadSoundFiles("/Users/Shared/Astral Flutter Library/Samples/Loops/*");
~dirt.loadSoundFiles("/Users/Shared/Astral Flutter Library/Samples/One Shots/*");
~dirt.loadSoundFiles("/Users/Shared/Astral Flutter Library/Samples/Loops/Construction/*");
// specify sample folder to load
s.sync; // wait for supercollider to finish booting up
~dirt.start(57120, [0, 0]); // start superdirt, listening on port 57120, create two busses each sending audio to channel 0
};
);
sometimesBy
sometimesBy x (yyyy)とすると、xの確率でyyyyを実行します。
xには0-1.0の値が入り、0.5だと50%の確率となります。
yyyyはfunctionで、例えば# speed”0.5″を入れることができます。
sometimesBy 0.5 (# speed”0.5″)とすると、50%の確率でspeedを0.5にします。
なお、このyyyyの効果は、1サイクルまるごとではなく、1つ1つのsoundに対して50%の確率で発生します。
以下の例だと、bd,sn,arpy,hhのそれぞれが50%の確率で# crush 2 のエフェクトがかかります。
d1 $ sometimesBy 0.5 (# crush 2) $ sound “bd sn arpy hh”
また、以下を使えば、数字を指定しなくても、表の割合で実行されます。
always | 100% |
almostAlways | 90% |
often | 75% |
sometimes | 50% |
rarely | 25% |
almostNever | 10% |
never | 0% |
とはいえ、sometimesByが一番汎用的なので、sometimesByをまずは覚えれば良さそうです。
ライブコーディング中に、xの値を変えることもできるので、便利です。
オリジナル音源の使用(カスタムサンプル)
オリジナル音源(waファイル)を使用したい場合は、以下リンクの方法でできます。