KuRiKuRo

SuperColliderはプログラミング言語であり、めちゃめちゃフレキシブルに音作り…

KuRiKuRo

SuperColliderはプログラミング言語であり、めちゃめちゃフレキシブルに音作りできるツール(ソフトシンセ)です。 <↓目次↓> https://note.com/sc3/n/nb08177c4c011

最近の記事

自由にエンベロープを書く

SuperColliderでは、かなり自由なエンベロープ設定が可能です。 これまでの記事ではEnv.adsrやEnv.asrなど、比較的オーソドックスなものを使ってきましたが、Env.newを使うとかなり自由で変態的なエンベロープを書くことができます。 エンベロープのループも組めるので、実質LFOのような機能をさせることもできます。 早速、実例です。 //ex1(Env.new( [0, 1, 0, 0.6, 0.2, 1], [0.1, 0.4, 0.1, 0.4,

    • シンプルなシンセのシミュレーション(2)

      前回の続きです。 こんな感じに、前回作ったシンセにLFOやエンベロープを、かけていきます。 ピッチにLFO まずはLFOを使えるようにします。 lfoという箱を作って(varに登録して)、その中にサイン波を入れます。 //ex9(SynthDef(\synth1, { arg gate=1, freq; var wg, amp=0.2, flt, aEnv, lfo; aEnv = EnvGen.kr(Env.adsr(0.15, 1.0, 0.7, 0.15), ga

      • シンプルなシンセのシミュレーション(1)

        今回(と次回)は、シンプルなシンセのシミュレーションをしようと思います。 たいていのシンセは、[音源]-[フィルター]-[アンプ]という構造をしてると思います。これにLFOやエンベロープ他、各シンセならではのパラメータを駆使して音作りを行なうわけですが、今回は、この最小単位のシンセをSuperColliderで作ってPbindでシーケンスさせることを目標にします。 各パートの役割は以下のような感じだと思います。 では早速、これをSuperColliderでシミュレートし

        • sumメソッド

          16小節のループを作ったので、YouTubeに上げました。 曲のテーマは特に無いんですが、.sumという書き方を覚えたので、それを使いたくて作りました。 コードはこちらです。 サーバブート(command + B)した後、実行したらYouTubeの音源がそのまま鳴ります。 [ex1] // 最初にサーバブートしておきます。(command + B)(// エフェクト~rvb = Bus.audio(s, 2);SynthDef(\hall, { var eff, sr

        自由にエンベロープを書く

          gateとt_gate(arg名いろいろ)

          今日は下記のコードを題材に arg名について書きます。 書き終えて振り返ると、説明がずいぶん長くなってしまいました。 書いてるのは下記の順序ですので、興味があるところあたりをまず読んでいただくのも良いかなと思います。 ・arg名は自由につけられる。(以下の場合を除く。) ・音源の周波数を音階でコントロールしたいならarg名をfreqに。 ・ノートON/OFF(Envの動作開始と停止)を受け取るarg名はgateに。 ・Envが持続音系ではない時は、arg名をt_gateに

          gateとt_gate(arg名いろいろ)

          Pparで複数Pbindを同時再生

          SuperColliderで曲の構成を作るとき、僕はPseq/Pparを駆使して入力します。 SuperColliderでの曲の記述方法はたくさんあると思いますが、今回は僕が普段やっている方法を書き記しておきます。参考になれば幸いです。 題材としてこんな曲を作りました。 単純な繰り返しフレーズなので曲と言えるかどうか、という感じですが。。。 構成は以下の画像のような感じで、 4つのパート、という構成です。 (それと、この画像には含まれていませんが、リズムパートもあります。

          Pparで複数Pbindを同時再生

          ポルタメント/グライド

          ポルタメントのような機能について発見したので!書いておきます。 Lagというクラスを使います。 ポルタメントの表現を実現できるのは、 ・ Pmonoでシーケンスさせた時、または ・ PmonoArticでレガート演奏をさせたときだけです。 Lag Lagは、下記のようなパラメータを持ってます。 Lag.kr(in: 0.0, lagTime: 0.1, mul: 1.0, add: 0.0) inに入ってくる数値に対して、lagTimeぶんのタイムラグを発生させま

          ポルタメント/グライド

          Pmonoでモノモードに

          ***一番下に追記2件あります(2023.06.11)*** SynthDefの音源をモノモードでレガートに演奏したい時、ありますよね。 一般的なシンセにはよくついている機能なので、SuperColliderでも同じような演奏をしたいと思ってしまいます。 まず、SC3を起動したらブートサーバー(command+B)して、以下のような音源をサーバにaddしておきます。 [ex1] (SynthDef(\syn1, { arg freq=220, gate=1; var

          Pmonoでモノモードに

          グラフで見るShaper

          Shaperは入力信号を大きく変化させてくれるので僕は大好きな、よく使うクラスです。 前回は最初から特殊な使い方をしてしまったので、今回もう一度Shaperを取り上げたいです。 まずエンベロープの書き方をざっくりおさらいしておきます。 *書いたエンベロープをどう使うかは後で書きます。 Env([ポイント], [比率]) こんな感じでEnv()内にポイントを指定して、各ポイント間の比率を指定します。 例えば ・ポイントが3つ、[-1と0.5と1] ・ポイント間の比率が[1

          グラフで見るShaper

          SoundIn と Shaper

          SoundInというクラスがありまして、これはMac(やWinなど)のオーディオ入力を受け取るクラスです。 受け取った音をそのまま出力することもできますし、エフェクトなどを通すこともできます。 [ex1] //まずBoot Serverします。{Saw.ar(440)}.play; とするとサイン派が鳴りますが(左チャンネルだけ)、使い方はこれと同じです。 クラスを入れ替えます。 [ex2] {SoundIn.ar(0)}.play; とするとMacのオーディオ入

          SoundIn と Shaper

          SuperColliderからMIDIOutで外部音源(Juno106)を鳴らす

          MIDIOutというクラスを使うと、SuperColliderから外部MIDI音源を鳴らせます。 Juno106を鳴らしてみた様子を撮影したので、リンクを貼っておきます。 MIDI INコネクタを装備しているハードウェアシンセなら、どのシンセでも同じことができます。 もちろんソフトシンセでもOKです。 使ったコードはこちらです。 [ex0] MIDIClient.init;MIDIClient.destinations;m = MIDIOut.new(1);m.late

          SuperColliderからMIDIOutで外部音源(Juno106)を鳴らす

          Pbindでライブコーディングを実現する2つの「P」

          例えば下記のコードで、 ・SynthDefを実行した(.addした)あと ・Pbindを実行してそのSynthDefを鳴らします。 [ex1] // 最初にcommand+bでサーバをブートしておきます。// 音源syn1(SynthDef(\syn1, {arg freq=220, gate=1, cof=800;var sig, env;env = EnvGen.kr(Env.asr(0.01, 1, 0.4), gate, doneAction:2);sig = S

          Pbindでライブコーディングを実現する2つの「P」

          18.サーバブートって?(SuperCollider内部構造)

          今日はSuperColliderの内部の構造に少し触れたいと思います。 SuperColliderが動作しているその裏側には「Aという役割を担う部分」と「Bという役割を担う部分」、のふたつの”部分”があり、それぞれお互いに連携を取り合っています。 ではAとBの役割とは?(AとBという記号は僕が説明のためにつけたものです。) AとBそれぞれの役割を図に書き加えました。 こんな感じで、 ・オーディオを担う部分(音を出したりする部分)と ・我々が書いたコードを理解する部分(そ

          18.サーバブートって?(SuperCollider内部構造)

          複数のOut.ar(ディレイ系エフェクトの回の補足)とSplay

          今日は「ディレイ系エフェクトとPfx」の回の補足的な内容です。 この回↑では、下図のような結線イメージでディレイエフェクトをかける紹介をしました。 これだと原音を直接エフェクトにインプットしています。 でもDAWやミキサーでエフェクトセンドするみたいに、「センド(send)でエフェクトに信号を送りたい」という場合もあると思います。 それについて書きます。 といっても実は簡単で、SynthDef内にOutクラスを2個置くだけです。 実は「Demand / Trig1」の回

          複数のOut.ar(ディレイ系エフェクトの回の補足)とSplay

          Wind In Her Hair

          daghenmaさん主催のレーベルWind In Her Hairのコンピレーションデジタルアルバム「Go free」に参加しました。 https://wihh.bandcamp.com/album/go-free 20.kuriKuro - multiFreq 02:51 です。 このアルバムは「フリーウェアで作られた楽曲」を集めたもので、僕はSuperColliderでの参加です。 このコンセプトは一聴するとシンプルですが、いざ形になってみると「それぞれの楽曲への(

          Wind In Her Hair

          グラニュラーシンセシス

          グラニュラーシンセシスが可能なクラス、GrainBufというクラスについて書きます。 手順的にはバッファに波形を読み込ませてパラメーターをいじるだけ、簡単です。 *今回使うwavファイルを添付しますので、よかったらダウンロードして使ってください。 *「オーディオファイルを鳴らす」の回で使ったwavファイルをモノラルにしたものです。 グラニュラーはステレオファイルに対しても可能なのですが、バッファに読み込む時にちょっと工夫が必要ですので、まずはモノラルファイルを使って。ス

          グラニュラーシンセシス