0じゅんび:拡張機能を 入れる
ステップの 作品から はじめるときは、拡張機能は もう 入っているので この じゅんびは いらないよ。
じぶんで 1から つくるときは、このボタンが いちばん かんたん。拡張機能が 入った 新規プロジェクトが ひらくよ。
いま つかっている 作品に 入れるときは、つぎの じゅんばんで 読みこんでね。
- Xcratch エディターを ひらく。
- 左下の「拡張機能を追加」ボタンを おす。

- いちばん はじめの「拡張機能を読み込む」を えらぶ。

- つぎの URL を 入れて「OK」を おす。
https://0x48lab.github.io/xcx-strudel/dist/strudel.mjs

左に「ストゥルーデル」が ふえたら せいこう。うずまきの マークが ついた みどりの ブロックが ならぶよ。
さいしょは「ビギナー」レベルの ブロックだけが 出ているよ。いちばん 上の ブロックで「ノーマル」「マスター」に すると、ブロックが ふえるよ。
ブロックを ひらがなに したいときは、上の「設定」→「言語」で「にほんご」を えらんでね。
音が 出ないときは、ステージの みどりの はたを もう一度 おしてみてね。ブラウザは、画面を さわるまで 音を 出さない きまりが あるんだ。
1音を 1つ 鳴らそう

「トラック [ ] で鳴らす」が いちばん 大事な ブロック。「C」の かたちに 口が あいていて、中に 入れた ブロックが 1つの トラックの 音に なるよ。ここでは 中に「音」(s。sound。音の しゅるいを えらぶ)ブロックが 入っているね。みどりの はたを おすと、bd(バスドラム)が「ドン、ドン…」と ずっと くりかえし 鳴るよ。止めるときは 赤い ボタン。
「音」の ▼ を おすと、ほかの 音を えらべるよ。ドラムの 音(sd スネア、hh ハイハット、cp 手拍子 など)と、シンセサイザーの 音(sine・square・sawtooth・triangle・supersaw)と、休みの ~ が あるよ。名前は ぜんぶ Strudel と 同じ だよ。

sdやcpに かえてみよう。鳴らしたまま かえても いいよ。- 「音」を トラックから 外して、かわりに「音の高さ」(note。音の 高さ)ブロックを 入れてみよう。
c4が ド、d4が レ だよ。
2順番に ならべよう

トラックの 中に「順番に」(seq。順番に ならべる)ブロックを 入れると、4つの 音が じゅんばんに 鳴るよ。「ドン・ッ・タン・ッ」の ビートの できあがり。「順番に」の ▼ では、ドラムの 音と ドレミの 音と 休みの ~ を えらべるよ。
サイクルって なに?
Strudel では、くりかえしの ひとまとまりを「サイクル」と よぶよ。この 拡張では、1サイクル = 4拍 = 1小節。ドラムが「1、2、3、4」と 数える あいだが 1サイクルで、それが ずっと くりかえされるんだ。
bd~sd~「順番に」に 入れた 音は、1サイクルの 中に ぴったり おさまるように ならぶ。だから 4つなら 1つが 1拍、8つなら 1つが 半拍に なるよ。音の 数を ふやしても、1サイクルの 長さは かわらない。こまかく なるだけ なんだ。
1サイクルの 長さを きめるのは テンポ。「テンポを〜BPMにする」の BPM は 1分間の 拍の 数だから、120 BPM なら 1拍が 0.5秒、1サイクル(4拍)が 2秒 だよ。
これからの ステップで「1サイクルに 8回」「1小節ずつ」と 出てきたら、この 図を 思い出してね。ノーマルの「サイクルの拍の数を [ ] にする」で 3 に すると、1サイクルが 3拍(3拍子の 1小節)に なるよ。
トラックの 名前(ここでは「ドラム」)は、じぶんで すきに つけていいよ。
~をhhに かえると、どう かわるかな?- テンポを 80 や 140 に してみよう。
3トラックを かさねよう

トラックの ブロックを もう1つ つなげて、ちがう トラック名を つけると、2つの 音が いっしょに 鳴るよ。バンドで 楽器が ふえていく かんじだね。
「はやくする」(fast)は、1サイクルの 中で 同じ 音を なんども 鳴らす ブロック。「音 hh」の 下に つむと、hh を 8回 きざんで、ぐっと ノリが よくなるよ。
トラックの 中の ブロックは、上から じゅんばんに 読むよ。さいしょに 音(ここでは hh)を きめて、その 下に「どう かえるか」(ここでは「はやくする 8」)を つんでいくんだ。
同じ トラック名で もう一度 鳴らすと、前の 音と 入れかわるよ。これは つぎの ステップ5で つかうよ。
- 「はやくする」の 数を 16 や 3 に してみよう。
- 「音 hh」の かわりに「重ねる」(stack。同時に かさねる)ブロックを 入れて、
bdとcr(シンバル)を いっしょに 鳴らしてみよう。
4メロディを つくろう

3つめの トラック「メロディ」を ふやしたよ。上から 読んでいこう。
- 「順番に c4 e4 g4 c5」で、ド ミ ソ 高いド の フレーズを つくる。
- その 下の「音」で、音の しゅるい(ねいろ)を えらぶ。
triangle(すっきりした 音)、sawtooth(ギザギザの 音)、square(ピコピコ音)、sine(やわらかい 音)などが あるよ。
ステップ1では「音」が 音そのものを きめたけど、音の 高さの 下に つむと、その 高さを どの 音で 鳴らすかを きめるんだ。
- 「音」の 音色を
sawtoothやsquareに かえてみよう。 c4やe4を かえて、じぶんの メロディを つくろう。- 「順番に」の かわりに「サイクルごとに」(cat。1サイクルごとに 交互に 鳴らす)を 入れてみよう。
c4とg4なら、ド・ソ・ド・ソ… と 1サイクルずつ かわるよ。
5キーで 曲を かえよう




演奏しながら 曲を かえるのが、Strudel の いちばん 楽しい ところ。これを「ライブコーディング」と いうよ。
- スペースキー:「ドラム」トラックに ちがう リズムを 鳴らす。同じ トラック名なので、前の リズムと 入れかわるよ。
- s キー:「トラック〜を止める」で ハイハットだけ 止める。
- 0 キー:「すべてのトラックを止める」。
入れかわるのは、つぎの サイクルの はじめ。だから いつ キーを おしても、リズムが ずれないよ。
キーを つかうときは、さいしょに ステージを 1回 クリックしてね。
- キーを ふやして、リズムを 3しゅるい 切りかえられるように しよう。
6音を 目で 見よう




「〜を表示する」で、鳴っている 音を ステージに 絵で 出せるよ。▼ で スコープ(scope)・ピアノロール(pianoroll)・スペクトル(spectrum)・パンチカード(punchcard) を えらべるよ。

pianoroll(ピアノロール):どの 音が いつ 鳴るか
scope(オシロスコープ):音の 波の かたち
spectrum(スペクトラム):ひくい音〜高い音の 大きさピアノロール(pianoroll)は、まんなかの たての 線の ところが「いま」。上に あるほど 高い 音だよ。音の 絵は スプライトの うしろに 出るので、ねこも ちゃんと 見えるよ。
7ねこを おどらせよう


音に あわせて スプライトを うごかす ブロックが あるよ。
- 「拍がきたとき」:はくごとに 動く。コスチュームを かえると、ねこが 足ぶみするよ。
- 「〜が鳴ったとき」:えらんだ ドラムが 鳴るたびに 動く。
bdで ジャンプ、sdで 色を かえる、なども できるよ。
いつもの Scratch の ブロックと 組みあわせられるのが、この 拡張機能の いいところ。
sdが 鳴ったら「色の効果を 25 ずつ変える」に してみよう。- 「拍」や「サイクル」の 値を つかって、ねこを 動かしてみよう。
8ノーマルレベル:ミニ記法・効果・音階

いちばん 上の ブロックを「ノーマル」に すると、ブロックが ふえるよ。▼ で えらぶ「音 [bd ▼]」「音の高さ [c4 ▼]」は、文字を 書ける「音 [ ]」「音の高さ [ ]」に 入れかわるよ。
ミニ記法
文字を 書く「音」ブロックと「音の高さ」(note。音の 高さを 書く)ブロックには、Strudel と 同じ ミニ記法で 音を ならべて 書けるよ。この 作品の ドラムは bd*2 [~ sd] <hh oh> sd、ベースは <c2 a1 f1 g1>*2 だよ(ブロックの 中では 長い 文字は「…」で 省略されて 見えるよ)。
| 書きかた | いみ | れい |
|---|---|---|
bd sd | スペースで くぎると 順番に 鳴る | bd hh sd hh |
~ | 休み | bd ~ sd ~ |
*2 | その音を 2回に ふやす | hh*8 |
[ ] | 1つ分の 時間に つめこむ | bd [sd sd] |
< > | サイクルごとに 1つずつ こうたい | <bd cp> |
, | 同時に 鳴らす | bd*4, hh*8 |
効果と 音階
- 効果の ブロック「[ひくい音だけ通す ▼] [600]」:▼ で 効果を えらんで、となりに 値を 書くよ。「ひくい音だけ通す」(lpf。高い 音を けずって こもらせる)、「ひびき」(room)、「ディレイ」(delay。やまびこ) など。ベースは「音 sawtooth」の 下に「ひくい音だけ通す 600」を つんで、やわらかい 音に しているよ。
- 「音階の番号」と「音階」(scale。音階):「音階の番号」で 音階の 何番目の 音かを 数字で 書いて、その 下の「音階」で 音階を えらぶ。
major:pentatonic(ヨナ抜き長音階)なら、どの 数字でも きれいに 聞こえるよ。「音」で えらべるpianoは、本物の ピアノの 音を 自動で 読みこむよ。
9リストと リズムで 曲を 書こう
コード進行や メロディが 長くなると、ミニ記法の 1行は とても 読みにくく なるよ。そこで Scratch の「リスト」に 1小節ずつ 書いて、ブロックで つなげよう。リストなら 1行 = 1小節で、どこに 何が あるか ひと目で わかるよ。ここから 先の ステップは、ぜんぶ リストで 曲を 書いていくよ。
1. リストを つくる

「変数」の カテゴリーで「リストを作る」を おして、名前を つけるよ。この 作品には「コード」「ベース」「メロディ」「リズム」「ドラム」の 5つの リストが もう 入っているよ。
リストの 名前の よこの チェックを 入れると、ステージに リストが 出るよ。項目を クリックすると 書きかえられて、下の「+」で 項目を ふやせるよ。
1つの 項目には、1小節ぶんの ミニ記法を 書くよ。和音は [f3,a3,c4] のように、いっしょに 鳴らす 音を , で ならべて [ ] で かこむよ。

この リストの 和音は、ファ・ソ・ミ・ラ の 和音を じゅんばんに 鳴らす「王道進行」。J-POP で とても よく つかわれる 進行だよ。
2. リストを 鳴らす

「リスト [ ] の中身を [ ] ならべる」ブロックを、「音の高さ」ブロックの 文字の ところに はめこむよ。リストの 項目が つながって、1つの ミニ記法に なるんだ。
| ▼ で えらぶ ならべかた | できる ミニ記法 | つかいどころ |
|---|---|---|
| 1サイクルに1つずつ | <[項目1] [項目2] …> | 1項目 = 1小節。リスト「コード」「ベース」「メロディ」 |
| 1サイクルの中に順番に | [項目1] [項目2] … | 1項目 = 1拍。リスト「リズム」 |
| ぜんぶ同時に | [項目1], [項目2], … | 1項目 = 1つの 楽器。リスト「ドラム」 |
1 キーを おすと、和音が 1小節ずつ「ジャーン」と のびて 鳴るよ。キーを おす 前に、ステージの リストの 外を クリックしてね(リストの 中を クリックすると、キーが リストの 書きかえに なっちゃうよ)。
3. リズムで 刻む

「音の高さ」の 下に つんだ「リズムで鳴らす」(struct。リズムの かたちで 刻む)ブロックは、x の ところだけ 音を 鳴らすよ。~ は 休み。和音は そのままで、リズムだけ つけられるんだ。
リズムも リストに 入っているよ。リスト「リズム」の 項目は x ~、~ x、x x、~ x の 4つ。「1サイクルの中に順番に」ならべると、1項目が 1拍に なるよ。1拍を 2つに 分けて「タン・ウン」「ウン・タン」と 書いているんだ。2 キーで ピアノが 入れかわって、はずむように なるよ。
| 拍 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| リスト「リズム」 | x ~ | ~ x | x x | ~ x |
いじってみよう:4つの 項目を ぜんぶ x に すると 4分音符、~ x に すると 裏打ちに なるよ。和音は 同じでも、曲の かんじが がらっと かわるよ。
Strudel では
note("<[[f3,a3,c4]] [[g3,b3,d4]] [[e3,g3,b3]] [[a3,c4,e4]]>")
.struct("[x ~] [~ x] [x x] [~ x]").s("piano")
s("[bd [~ bd] ~ ~], [~ ~ sd ~], [hh*8]")
4. ベース・メロディ・ドラムを かさねる



ベースと メロディも、それぞれ リストに 1小節ずつ 入っているよ。3・4・5 キーで かさねていこう。0 キーで ぜんぶ 止まるよ。
ドラムは「ぜんぶ同時に」ならべるよ。リスト「ドラム」は 1項目が 1つの 楽器の 行。ドラムマシンの 画面のように、楽器ごとに リズムを 書いて かさねるんだ。
| 楽器 | リスト「ドラム」の 項目 |
|---|---|
| バスドラム | bd [~ bd] ~ ~ |
| スネア | ~ ~ sd ~ |
| ハイハット | hh*8 |
| 小節 | コード | ベース | メロディ |
|---|---|---|---|
| 1 | [f3,a3,c4] | f2 [~ f2] f2 [~ f2] | [c5 d5] [e5 ~] [d5 c5] [a4 ~] |
| 2 | [g3,b3,d4] | g2 [~ g2] g2 [~ g2] | [b4 c5] [d5 ~] [g4 ~] ~ |
| 3 | [e3,g3,b3] | e2 [~ e2] e2 [~ e2] | [e5 d5] [b4 ~] [g4 b4] [d5 ~] |
| 4 | [a3,c4,e4] | a2 [~ a2] a2 [~ a2] | [c5 ~] [b4 a4] a4 ~ |
よこに 見ると、同じ 小節で 鳴る 音が ならんでいるね。メロディを かえるときは、その 小節の 和音の 音(コードの 列)を つかうと きれいに 聞こえるよ。
- リスト「コード」の 2番目と 3番目を 入れかえてみよう。
- リスト「ドラム」に
~ cp ~ cpを たして、手拍子を かさねよう。 - リスト「メロディ」に 項目を 4つ たして、8小節の メロディに しよう(コードと ベースは 4小節で くりかえすよ)。
10じぶんの 声で ビートを つくろう
Scratch で 録音した 声や、Scratch に はじめから 入っている 音も、Strudel の 楽器に できるよ。じぶんの 声が ビートに なったら、きっと 楽しいよ。
1. 声を 録音する

- 上の「音」タブを ひらく。
- 左下の「音を選ぶ」ボタンに マウスを のせて、出てきた マイクの ボタン(録音する)を おす。
- ブラウザに「マイクを つかって いいですか」と きかれたら「許可」を おす。
- 赤い まるの「録音する」を おして 声を 入れ、おわったら 止める。「再生」で 聞いて、よければ「保存」を おす。
「ドン」「パッ」「チー」のように、みじかい 声が つかいやすいよ。録音した 音は「録音1」のような 名前で、音の 一覧に ふえるよ。この 作品には、さいしょから ねこの「Meow」が 入っているよ。
2. 声を 鳴らす

トラックの 中に「スプライトの音 [ ]」ブロックを 入れて、▼ で 鳴らしたい 音を えらぶよ。録音した 声も ここに 出てくるよ。「音」と 同じように、トラックの いちばん 上に 入れる 音の ブロックだよ。
3. くりかえして 短く する

「はやくする 4」で 1サイクルに 4回。声が 長くて かさなるときは、効果の「音の長さ」(clip。音の 長さ)で 短く 切ろう。
4. 高さを かえる

効果の「再生の速さ」(speed。再生の 速さ)で 声の 高さが かわるよ。1 1.5 2 -1 と 書くと、4回の 声が じゅんばんに この 高さに なるよ。
| speed | どうなる? |
|---|---|
1 | そのままの 声 |
2 | 1オクターブ 高く、はやく なる |
0.5 | 1オクターブ 低く、ゆっくり なる |
-1 | さかさまに 鳴る(逆再生) |
5. ひびきを つける

4 キーは、1小節ごとに 高さを かえて「ひびき」(room。ひびき)を つけた 声。0 キーで ぜんぶ 止まるよ。
- じぶんの 声を 録音して、ぜんぶの「スプライトの音」の ▼ を その 声に かえてみよう。
- 「ドン」「パッ」を べつべつに 録音して、2つの トラックで かさねてみよう。「パッ」の トラックは「はやくする 2」と 効果の「再生の速さ」で、ずらして 鳴らすと おもしろいよ。
- マスターレベルの「チョップ」(chop。音を こまかく 切る)を つかうと、長い 声を こまかく 切って 刻めるよ。
録音した 声は ブラウザの 中だけに あるので、strudel.cc に もっていくと その 音だけは 鳴らないよ。作品を 保存すると、声も いっしょに 保存されるよ。
11ジャズ・ソウルの 和音
おしゃれな J-POP で よく 聞く、ジャズや ソウルの 和音を つかった オリジナル曲だよ(サンプル「ソウルな ピアノ ポップ」と 同じ 曲)。和音・ベース・メロディは リストに 1小節ずつ 入っているよ。

和音の ひみつ
コード進行は | FM7 | Em7 A7 | Dm7 G7 | Cmaj9 C9 | FM7 | Fm6 | Em7 E♭dim7 | Dm7 G7sus4 |。ステップ9の 王道進行(F → G → Em → Am)と くらべてみよう。
| 小節 | わざ | 聞きどころ |
|---|---|---|
| ぜんぶ | セブンス・ナインス(M7、m7、9) | ドミソに 音を 1つ 2つ たして、おしゃれな ひびきに |
| 2 | Em7 → A7 | A7 には ドレミの 白い けんばんに ない ド# が 入る。一しゅん せつなく なるよ |
| 3 | Dm7 → G7(ツーファイブ) | ジャズの きほん。つぎの 和音に 帰りたくなる 力が 生まれるよ |
| 6 | Fm6 | 明るい F が、暗い Fm に かわる。ちょっぴり ほろにが |
| 7 | Em7 → E♭dim7 → Dm7 | ベースが ミ → ミ♭ → レ と 半音ずつ 下がっていく |
ピアノは 根音(ルート)を はぶいているよ。根音は ベースが ひくので、ピアノは ひびきの 色を つける 音だけを ひいているんだ。
シャッフルの リズム

この 曲は 1拍を 3つに 分けているよ。「タッ・タ」と はねる シャッフルだよ。ステップ9と 同じように、リズムも ドラムも リストに 入っているよ。
| リスト | ならべかた | 項目 |
|---|---|---|
| リズム | 1サイクルの中に順番に(1項目 = 1拍) | x ~ ~ ~ ~ x x ~ x ~ ~ ~ |
| ドラム | ぜんぶ同時に(1項目 = 1つの 楽器) | [bd ~ ~] [~ ~ bd] [~ ~ bd] [~ ~ ~][~ ~ ~] [sd ~ ~] [~ ~ ~] [sd ~ ~][hh ~ hh]*4 |
ベースと メロディの リストも、1拍を 3つに 分けて 書いているよ。



- リスト「コード」の 6番目
[f3,ab3,c4,d4](Fm6)を[f3,a3,c4,e4](FM7)に かえて、聞きくらべよう。ほろにがさが きえるよ。 - リスト「リズム」を ステップ9と 同じ
x ~~ xx x~ xに すると、はねなく なるよ。
12マスターレベル:アシッドと トランスゲート

「マスター」に すると、クラブミュージックで つかう わざが つかえるよ。
- 「ユークリッド」(euclid。ユークリッドリズムで ちらす):「音 bd」の 下に つんだ「ユークリッド 5 8」で 8拍に 5回、のように 音を できるだけ 均等に ちらす。世界中の 民族音楽に 出てくる リズムだよ。
- 「ドラムマシン」(bank。ドラムマシンを えらぶ):
RolandTR909などの 有名な ドラムマシンの 音に する。 - 「ゆれる値」の ブロック(ゆれる 値):「ゆれる値 なめらかな波 0 から 1 2 サイクル」のように、波の かたち(なめらかな波、のこぎりの波 など)と はんいと 速さを えらぶ。数字の かわりに 入れると、値が 波のように ゆれる。ここでは 効果の「パン」(pan。左右の いち)の 値に 入れて、ハイハットが 左右に ゆれるよ。丸い ブロックは、こういう「値」に 入れる ブロックだよ。
- 「アシッド」(acidenv。アシッドな 音に する):ビヨビヨした ベースの 音(TB-303 ふう)。名前は Switch Angel さんの strudel-scripts に ある acidenv 関数から もらったよ。
- 「和音」:
A3のminorのように、根音と 和音の しゅるいを えらんで 和音を 鳴らす。 - 「トランスゲート」(trancegate。細かく 刻む):のばした 和音を 細かく 刻む。「トランスゲート 密度 たね 長さ」の 2つめの 数字(たね)を かえると、刻みかたが かわるよ。名前は Switch Angel さんの trancegate 関数から もらったよ。
- 「ユークリッド」の 1つめの 数を 3 や 7 に してみよう。
- 「トランスゲート」の 2つめの 数字(たね)を 0〜20 で かえて、すきな 刻みを さがそう。
コラムブロックを Strudel の コードに しよう
ここまで くんできた ブロックは、ぜんぶ 本物の Strudel の コードに できるよ。応用編では、ブロックの となりに「Strudel では」として コードも のせているので、さきに 読みかたを 知っておこう。


- 「全部のトラックのStrudelコード」:鳴らした トラックを コードに して かえすよ(止めた あとも のこるよ)。ブロックを クリックするだけでも 見られるよ。
- 「全部のトラックを strudel.cc で開く」:strudel.cc が ひらいて、同じ 曲が コードで 鳴るよ。
ステップ12の 作品で、はたを おしてから c キー、o キーを おしてみよう。
ブロックと コードの 対応
| ブロック | Strudel の コード |
|---|---|
| トラック 〜 で鳴らす(C の かたち) | $: …(1行に 1トラック) |
| トラックの 中に つんだ ブロック | 上から じゅんばんに、左から . で つなぐ |
| テンポを〜BPMにする | setcpm(…)(1分間の サイクル数) |
| seq 〜 / stack 〜 / cat 〜(いちばん 上) | seq(s("bd"), s("sd")) / stack(…) / cat(…) |
| fast 〜 / slow 〜 | .fast(4) / .slow(2) |
| s 〜 / note 〜(いちばん 上) | s("bd sd") / note("c3 e3") |
| リストの中身を 1サイクルに1つずつ ならべる | "<[項目1] [項目2] …>" |
| s 〜(note などの 下に つむ。音色を えらぶ) | .s("piano") |
| [lpf ▼] [600]、[room ▼] [.5] など(効果) | .lpf(600) .room(.5) など |
| struct 〜 | .struct("x ~ x x") |
| bank 〜 | .bank("RolandTR909") |
関数って なに?
関数は、パターンを 受け取って、かえた パターンを かえす しかけだよ。コードの . の あとの 名前が 関数の 名前、() の 中が 関数に わたす 値(引数)。
note("c3 e3 g3").transpose(12) // transpose 関数に 12 を わたす → 1オクターブ 上の パターン
note("c3 e3 g3").lpf(600) // lpf 関数に 600 を わたす → こもった 音の パターン
つなげて 書くと、左から じゅんばんに かかるよ。トラックの 中に ブロックを 上から つむのと 同じだね。
ブロックは 上から 読む
ブロックは 日本語や カタカナで 書いてあるけど、1つ 1つが Strudel の 関数に なっているよ。トラックの 中の ブロックを 上から じゅんばんに 読むと、そのまま コードに なるよ。ステップ13の リードの トラックは、上から「音階の番号」・「音階」・「音 supersaw」・「スーパーインポーズ 1オクターブ上」・「ユニゾン 7」・「ひびき .8」と ならんでいるね。コードでは n(…).scale(…).s("supersaw").superimpose(…).unison(7).room(.8) に なるよ。
いちばん 上の ブロック(「音」・「音の高さ」・「音階の番号」・「順番に」 など)で 音を つくって、その 下の ブロックが じゅんばんに 音を かえていくんだ。いちばん 上より 下に ある「音」や「音の高さ」は、.s(…) のように 音色や 高さを かえる ブロックに なるよ。
関数を わたす 関数
マスターレベルの sometimes・every・jux・off・superimpose は、引数として「関数」を もらう 関数だよ(高階関数と いうよ)。▼で えらぶ rev や transpose 12 も 1つ 1つが 関数。ブロックが「いつ・どこに かけるか」、▼が「何を するか」を きめるんだ。
| ブロック | Strudel の コード | すること |
|---|---|---|
| sometimes | .sometimes(x => x.transpose(12)) | ときどき(半分くらいの 音に)関数を かける |
| every | .every(4, x => x.rev()) | 4サイクルに 1回 関数を かける |
| jux | .jux(x => x.rev()) | 左右に 分けて、右だけに 関数を かける(juxtapose = ならべて おく) |
| off | .off(0.125, x => x.transpose(7)) | 少し おくらせて、関数を かけた ものを 重ねる |
| superimpose | .superimpose(x => x.transpose(12)) | 関数を かけた ものを 重ねる |
x => x.transpose(12) は「x を もらって、x を 1オクターブ 上げた ものを かえす」と 読むよ。名前の ない、その場で つくる 関数なんだ。
Scratch の「ブロックを作る」で つくる じぶんの ブロックも、関数の なかま だよ。Strudel を つかう ときは、ブロックの 名前(seq、lpf、sometimes、transpose など)が そのまま コードに なるので、名前で おぼえておこう。
ブロック 1つ 1つを どういう ときに、どうやって つかうか、名前の ゆらい・れきしは「ブロックじてん」に まとめて あるよ。
strudel.cc の つかいかた
- コードを 書きかえたら Ctrl+Enter で 鳴らしなおす。Ctrl+. で 止まるよ。
- 数字は 1つずつ かえて、そのたびに 聞いてみよう。
- トラックの 行の さいごに
.hush()を つけると、その トラックだけ 消せるよ。 - 「トランスゲート」(trancegate)は Strudel に はじめから ある 関数では ないので、コードでは 同じ 動きを する 関数(
fillGaps)が いっしょに 書き出されるよ。スプライトの 音は strudel.cc では 鳴らないよ。
13応用編:EDM・トランスの 音づくり
クラブで 流れる EDM や トランスは、いくつかの「部品」を かさねて できているよ。キーを 1つずつ おして 部品を ふやしながら、それぞれの 音が どんな やくわりか、耳で たしかめよう。テンポは 140 BPM だよ。

| キー | 部品 | キー | 部品 |
|---|---|---|---|
| 1 | キック | 5 | リード |
| 2 | 裏打ちベース | 6 | ビルドアップ(スネア+ライザー) |
| 3 | トランスゲートのパッド | スペース | ドロップ(ビルドアップを 止める) |
| 4 | アルペジオのプラック | 7 | ポンピング(1 で もとに もどる) |
0 キーで ぜんぶ 止まるよ。どの 部品も、つぎの サイクルの はじめから 鳴りはじめるよ。
音の 中身は、ステップ9と 同じように リストに 1小節ずつ 入っているよ。
| リスト | 中身(1小節ずつ) | つかう 部品 |
|---|---|---|
| コード | [a3,c4,e4,a4] [f3,a3,c4,f4] [c4,e4,g4,c5] [g3,b3,d4,g4] | パッドと プラック(同じ リストを 2つの 部品で つかう) |
| ベース | [~ a1]*4 [~ f1]*4 [~ c2]*4 [~ g1]*4 | 裏打ちベース |
| リード | [7 ~ 9 11] [12 11 ~ 9] など 4小節 | リード(音階の 番号) |
| ビルドアップ | sd*4 sd*8 sd*16 sd*32 | スネア |
リスト「コード」を 書きかえると、パッドも プラックも いっしょに かわるよ。
1. キック:4つ打ち

1小節に 4回「ドン・ドン・ドン・ドン」。これが ダンスミュージックの 心臓だよ。TR-909 は、ハウスや テクノで 使われてきた 有名な ドラムマシンの 音。
Strudel では
s("bd*4").bank("RolandTR909")
2. 裏打ちベース

リスト「ベース」の [~ a1]*4 は「休み・ラ」を 4回。キックの あいだ(裏拍)だけで 鳴るので、キックと ぶつからずに「ドッ・ベッ・ドッ・ベッ」と はずむよ。< > で 1小節ごとに ラ→ファ→ド→ソ と かわる。「ひくい音だけ通す 500」で 高い 音を けずって、低音だけに しているよ。さいごの「オービット 2」(音の 通り道)は 7. ポンピングで せつめいするよ。
Strudel では
note("<[~ a1]*4 [~ f1]*4 [~ c2]*4 [~ g1]*4>").s("sawtooth").lpf(500).orbit(2)
いじってみよう:リスト「ベース」の [~ a1]*4 を [~ a1 a1 a1]*4 に すると、トランスで よく 聞く「転がる ベース」に なるよ。
3. トランスゲートの パッド

リスト「コード」の 和音を、supersaw(ギザギザ音を 何本も 重ねた 分厚い 音)で のばし、「トランスゲート」で 細かく 刻むよ。「ひびき」で 広い ホールに いるような 音に。
Strudel では
note("<[a3,c4,e4,a4] [f3,a3,c4,f4] [c4,e4,g4,c5] [g3,b3,d4,g4]>").s("supersaw")
.trancegate(.8, 45, 1).room(.6).orbit(2)
「トランスゲート」(trancegate)は この 拡張機能が 用意した ブロックだよ(名前は Switch Angel さんの trancegate 関数から もらったよ)。strudel.cc で 開くと、同じ 動きを する Strudel の 関数(struct と fillGaps)に 書きかわるよ。
4. アルペジオの プラック

パッドと 同じ リスト「コード」の 和音を「ばらして」1つずつ 鳴らすのが アルペジオ。ブロックは「アルペジオ」(arp。和音を ばらして 鳴らす)だよ。「音の長さ .3」で 短く 切ると、弦を はじいたような「ポン」という 音(プラック)に なるよ。「ディレイ」で 音が おくれて くりかえされ、きらきら 広がるよ。
Strudel では
note("<[a3,c4,e4,a4] [f3,a3,c4,f4] [c4,e4,g4,c5] [g3,b3,d4,g4]>")
.arp("0 1 2 3 2 1 2 3").s("square").clip(.3).delay(.4).orbit(2)
5. 分厚い リード

メロディを 目立たせる わざが 3つ 入っているよ。
- ユニゾン 7(unison。厚み):ギザギザ音を 7本、少しずつ 音の 高さを ずらして 重ねる。人が 大ぜいで 歌うと 声が 太く 聞こえるのと 同じ しくみ。
- スーパーインポーズ [1オクターブ上](superimpose。重ねる):同じ メロディを 1オクターブ 高い 音でも 鳴らして、きらっと させる。▼の 中身(transpose 12)を かけた ものを、元の メロディに 重ねる 関数だよ。
- room .8:大きな ひびきで、遠くまで 広がる 感じを 出す。
Strudel では
n("<[7 ~ 9 11] [12 11 ~ 9] [11 ~ 9 7] [8 ~ 9 6]>*2").scale("A3:minor")
.s("supersaw").superimpose(x => x.transpose(12)).unison(7).room(.8).orbit(2)
いじってみよう:unison を 1 と 7 で 聞きくらべよう。「分厚い」の いみが すぐ わかるよ。効果の detune(音の ずれ)と spread(左右の 広がり)も ためしてね。
6. ビルドアップと ドロップ

サビの 前に 気分を もりあげる 部分を「ビルドアップ」と いうよ。
- スネア:リスト「ビルドアップ」の
sd*4→sd*8→sd*16→sd*32で、1小節ごとに 2倍ずつ 細かくなる。saw(だんだん 上がって、ストンと もどる 波)の「ゆれる値」ブロックをgain(音の 大きさ)に 入れて、音も 大きく なっていくよ。 - ライザー:
white(ホワイトノイズ)は ザーッという 音。hpf(低い 音を けずって シャカシャカに する)の 値を 300 から 9000 まで 上げると、低い 音が けずられて「シューーッ」と 上がっていく 音に なるよ。

もりあがったところで スペースキー! ビルドアップが 止まって、のこりの 部品が どーんと 鳴る。これが「ドロップ」。ゆれる 値は「4 サイクル」で 4サイクルに 1まわり するので、上がりきった ところで おすと 気持ちいいよ。
Strudel では
s("<sd*4 sd*8 sd*16 sd*32>").bank("RolandTR909").gain(saw.range(.3, 1).slow(4))
s("white*16").hpf(saw.range(300, 9000).slow(4)).gain(saw.range(0, .4).slow(4))
7. ポンピング

EDM らしさの いちばんの ひみつ。キックが 鳴るたびに、ほかの トラックの 音を 一しゅん 小さくして、すぐ もどすよ。音全体が「ワウ・ワウ」と 息を するように うねるんだ。プロは「サイドチェイン」と よんでいるよ。
Strudel の 音は「オービット」(orbit。オービット。音の 通り道)を 通って 流れるよ。何も しないと みんな orbit 1。この 作品では、ベース・パッド・プラック・リードに 効果の「オービット 2」を つけて、orbit 2 の 通り道に 分けておいたんだ。キックは orbit 1 の まま。そして キックに、つぎの 3つの 効果を つけるよ。
- ダック 2(しぼませる。duck は 英語で「ひょいと 頭を 下げる」):キックが 鳴るたびに、orbit 2 の 音を しぼませる。
2:3:4のように:で つなぐと、いくつもの orbit を いっしょに しぼませられるよ。 - duckattack .2:しぼんだ 音が もとの 大きさに もどるまでの 時間(秒)。
- duckdepth .85:どれくらい しぼませるか。0(しぼまない)〜 1(いちばん しぼむ)だよ。
同じ「キック」トラックなので、7 を おすと ふつうの キックと 入れかわる。1 と 7 を 何回か おして 聞きくらべてね。
Strudel では
s("bd*4").bank("RolandTR909").duck("2").duckattack(".2").duckdepth(".85")
ベース・パッド・プラック・リードの コードの さいごに .orbit(2) が ついているのは、この ポンピングの ためだよ。orbit 2 に いない 音(キックや ビルドアップ)は しぼまないよ。

つぎは コードで
部品を ぜんぶ 鳴らしてから「全部のトラックを strudel.cc で開く」ブロック(コラム)を つかうと、この 曲が そのまま Strudel の コードに なるよ。コードの 数字を 1つずつ かえて、Ctrl+Enter で 鳴らしてみよう。部品の 行の さいごに .hush() を つけると、その 部品だけ 消せるよ。
つぎの ステップ14では、4つ打ちの リズムを かっこよく する テクニックを ためすよ。
144つ打ちから 次へ:リズムを かっこよく する
4つ打ちは 作れたけど、なんだか 単調…。そんな ときは、4つ打ちを やめるのでは なく、上に 少しずつ 足して いくのが 近道だよ。ハウスや テクノも、キックは ずっと 4つ打ちの まま。かっこよさは、まわりの「ズレ」「強弱」「動き」「変化」から 生まれるんだ。
この ステップでは、ハウスの 4つ打ちに テクニックを 1つずつ 足して、何が かわるか 耳で くらべよう。テンポは 124 BPM、ステージには ドラムの 鳴る 場所が 見える パンチカードを 出すよ。

| キー | テクニック | キー | テクニック |
|---|---|---|---|
| 1 | 強弱を つける | 6 | フィルターを ゆっくり 開く |
| 2 | 裏打ちの ベース | 7 | ランダムに ぬく |
| 3 | ゴーストノート | 8 / 9 | ブレイク / ドロップ |
| 4 | ユークリッドで ずらす | スペース | もとの リズムに もどす |
| 5 | フィル | 0 | ぜんぶ 止める |
もとの リズム:ハウスの 4つ打ち
![もとの リズム を受け取ったとき、すべてのトラックを止めて、キック bd*4、ハイハット [~ oh]*4、クラップ [~ cp]*2 を TR909 で鳴らす](tutorial/step14-2.png?v=61f8212c)
キックは 1拍ずつ bd*4、オープンハイハットは 拍の あいだ(裏)で [~ oh]*4、クラップは 2拍目と 4拍目に [~ cp]*2。トラックを 楽器ごとに 分けて あるので、テクニックで 1本ずつ 入れかえたり 足したり できるよ。スペースキーで いつでも ここに もどれる。
Strudel では
$: s("bd*4").bank("RolandTR909")
$: s("[~ oh]*4").bank("RolandTR909")
$: s("[~ cp]*2").bank("RolandTR909")
1. 強弱を つける
![1キーで、トラック きざみ の中に 音 hh*16 と 音の大きさ [.2 .6]*8 と ドラムマシン RolandTR909](tutorial/step14-3.png?v=7a7740d6)
16分の ハイハットを「きざみ」トラックに 足す。「音の大きさ」に [.2 .6]*8 と パターンを 書くと、小さい 音と 大きい 音が 交互に なる。ぜんぶ 同じ 大きさだと 機械っぽい けれど、強弱が あると 人が たたいている ように 聞こえるよ。
Strudel では
s("hh*16").gain("[.2 .6]*8").bank("RolandTR909")
いじってみよう:[.2 .6]*8 を [.2 .2 .6 .2]*4 に すると、強い 音が へって ノリが かわるよ。
2. 裏打ちの ベース
![2キーで、トラック ベース の中に 音の高さ [~ c2]*4 と 音 sawtooth と ひくい音だけ通す 600](tutorial/step14-4.png?v=03749714)
キックが 拍の 頭(表)で 鳴るので、ベースは その あいだ(裏)に 置く。低い 音どうしが ぶつからないので、キックも ベースも はっきり 聞こえて「ドッ・ベッ・ドッ・ベッ」と はずむよ。13章の 裏打ちベースと 同じ 考えかた。
Strudel では
note("[~ c2]*4").s("sawtooth").lpf(600)
いじってみよう:[~ c2]*4 を <[~ c2]*4 [~ g1]*4> に すると、1小節ごとに 音が かわるよ。
3. ゴーストノート
![3キーで、トラック スネア の中に 音 [~ sd]*2 と、重ねる の中に 音 sd と マスで鳴らす 7,9,14 16 と 音の大きさ .2、下に ドラムマシン RolandTR909](tutorial/step14-5.png?v=869da83e)
ふつうの スネアの あいだに、とても 小さい スネア(音の大きさ .2)を かくして 入れる。はっきりとは 聞こえない けれど、リズムに こまかい ゆれが 出るよ。おばけ(ゴースト)の ように かくれた 音、という 意味。「重ねる」の 中の ブロックは 中の 音だけに かかり、下の「ドラムマシン」は ぜんぶに かかるよ。
Strudel では
stack(s("[~ sd]*2"), s("sd").beat("7,9,14", 16).gain(".2")).bank("RolandTR909")
いじってみよう:ゴーストの「音の大きさ」を .5 に して、ちがいを 聞いてみよう。
4. ユークリッドで ずらす

8つの マスに 3つの 音を できるだけ 均等に ならべると、3・3・2 の ズレた リズムに なる。まっすぐな 4つ打ちの 上に 重ねると、ひっかかりが 出て 体が ゆれるよ。
Strudel では
s("rim").euclid(3, 8).bank("RolandTR909")
いじってみよう:3 8 を 5 8 や 7 16 に かえてみよう。
5. フィル
![5キーで、トラック クラップ の中に 音 [~ cp]*2 と サイクルごとに変える 4 くりかえし と ドラムマシン RolandTR909](tutorial/step14-7.png?v=886a09c7)
4サイクルに 1回だけ、クラップを 2回ずつ 鳴らす。ずっと 同じ だと 耳が あきるので、ときどき かわる 場所を 作ると「ここで 区切り」と わかるよ。もとの「クラップ」トラックと 入れかわる。
Strudel では
s("[~ cp]*2").every(4, x => x.ply(2)).bank("RolandTR909")
いじってみよう:「くりかえし」を「はやく」や「ぎゃく」に かえてみよう。
6. フィルターを ゆっくり 開く
![6キーで、トラック ベース の中に 音の高さ [~ c2]*4 と 音 sawtooth と ひくい音だけ通す に ゆれる値 なめらかな波 200 から 3000 8 サイクル](tutorial/step14-8.png?v=4e149f42)
「ひくい音だけ通す」の 値に「ゆれる値」を 入れると、こもった 音から 明るい 音へ、8サイクル かけて ゆっくり かわる。同じ ループでも、音が 動くと もりあがって 聞こえるよ。2 の ベースと 入れかわる。
Strudel では
note("[~ c2]*4").s("sawtooth").lpf(sine.range(200, 3000).slow(8))
いじってみよう:「ゆれる値」の 形を「のこぎりの波」に すると、だんだん 明るく なって ストンと もどるよ。
7. ランダムに ぬく

16分の ハイハットの うち、30% を ランダムに ぬく。毎回 少しずつ ちがう ので、ループなのに 生きている ように 聞こえるよ。1 の「きざみ」と 入れかわる。
Strudel では
s("hh*16").degradeBy(0.3).gain(".5").bank("RolandTR909")
いじってみよう:30 を 60 に すると、すきまが ふえるよ。
8. ブレイクと ドロップ


8 キーで キックを 止めて(ブレイク)、9 キーで もどす(ドロップ)。キックが ない あいだ 耳が キックを 待つので、もどった ときに もりあがる。止める 時間が 長いほど、もどった ときが 気持ちいいよ。8 を おしてから 4サイクル、つぎは 8サイクル 待って くらべてみよう。


つぎは リズム図鑑で
テクニックは ほかの リズムにも つかえるよ。「リズム図鑑」には、ディスコ・ブーンバップ・トラップ・ドラムンベース・レゲトンなど 8つの 定番の リズムが ある。好きな リズムに ここの テクニックを 足して、じぶんの 曲に しよう。キックで ほかの 音を へこませる ポンピングと、だんだん もりあげる ビルドアップは 13章に あるよ。