KuRiKuRo

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

KuRiKuRo

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

最近の記事

  • 固定された記事

モジュラーシンセとしてのSuperCollider

このページの最下部に各回へのリンク(目次)を追記して、記事内容の一覧が見れるようにしました。記事を書くたびにこのページも更新します。 ********************************** SuperColliderはメチャメチャ自由度の高いシンセです! 思いついたアイデアを何でも試せるモジュラーシンセのような。(と、僕は捉えています。) こんなことすぐに試せるし・・ (サイン波とノコギリ波の掛け算) //440Hzのサイン波とノコギリ派を掛け合わせた音

    • ホワイトノイズで音程を作る

      ホワイトノイズを使った音色でメロディーを奏でると独特な雰囲気を出せるので、その手法について、僕なりの2種類のやり方を紹介します。 完成形はこんな感じです。(タイトルにはホワイトノイズと書いておきながら、ブラウンノイズを使っています・・・) (SynthDef(\noisetone, { arg freq=220, gate=1; var sig, env; env = EnvGen.kr(Env.adsr(0.5, 0.6, 0.4, 1), gate, doneActi

      • ネットで見かけるコード記述法

        ネットでコードをあさっていると、見慣れない記述に出会います。 SuperColliderは(同じ音を出すにしても)色々な書き方ができるので。 今日は、このnote記事では紹介したことないけどネットではよく見る書き方、を4つほど紹介しようと思います。 ex1を題材のコードとします。 //ex1(SynthDef(\tri, { arg freq=440, atk=0.01, gate=1; var sig, env, amp=0.3; env = EnvGen.kr(Env

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

          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,

        • 固定された記事

        モジュラーシンセとしてのSuperCollider

          シンプルなシンセのシミュレーション(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

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

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

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

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

          sumメソッド

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

          sumメソッド

          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内部構造)