マガジン

ドラムマシンのスウィングを0と70で聞き比べる

遊びをつくる

執筆にClaudeを使用しています。

十六個のパッドとキック、スネア、ハイハットを並べたドラムループの立体イメージ。
記事のテーマをもとに制作したAI生成イラスト。

同じ16ステップのパターンを鳴らしたまま、スウィングの数字だけを0から70へ動かす場面を考えてみます。音の並びも、音色も、テンポも変えません。変わるのは一つの設定だけです。それでも多くの場合、聞こえ方は「少し違う」では済まず、別の曲のように感じられるはずです。ただし、その違いを人に伝えようとすると「なんとなく跳ねる」「ノリがいい」といった言葉に流れやすく、何がどう変わったのかは曖昧なままになります。 この記事は、「WAVE / WAVE」のスウィング設定を0と70という離れた値で比べ、違いを自分の言葉にするための実験の設計書です。結果は書きません。どう準備し、何を記録し、どう読めば自分の耳で答えが出るかを順に示します。ゲームのBGMや効果音のループを作る人が、スウィングを自作の仕組みに入れるべきか判断する材料にもなります。

この記事の目次
  1. 何を確かめる実験か
  2. 準備するもの
  3. 手順:同じパターンで0と70を往復する
  4. 記録の取り方と結果の読み方
  5. 仕組みを自分で確かめる小さなコード
  6. 起こりやすい誤り
  7. 次の行動

何を確かめる実験か

確かめたい問いは三つです。

  1. スウィング0と70で、聞き手は「どこが」変わったと感じるか。
  2. その違いは、どの音(トラック)を鳴らしたときに最も目立つか。
  3. 違いは、テンポを変えても同じように現れるか。

スウィングとは、16分音符を等間隔に並べる代わりに、偶数番目(裏側)の音を少し後ろへずらす演出です。0は等間隔のままで、数字が大きいほど裏側の音が遅れて鳴ります。遅れた分だけ、表の音から裏の音までの間が長く、裏から次の表までの間が短くなります。つまり「均等な刻み」が「長・短・長・短」の刻みに変わります。

注意点があります。スウィングの数字の意味(遅れの大きさとの対応)や、どのステップに効くかは、アプリごとに定義が違います。「WAVE / WAVE」の設定が0〜何まで動くのか、70がどの位置の値なのかは、作品を開いて確かめてください。70が選べない場合は、最大値に近い値と0で同じ実験を行えば構いません。

準備するもの

  • 「WAVE / WAVE」を開いた端末(PCでもスマートフォンでも可)
  • ヘッドホンまたはイヤホン。スピーカーでも行えますが、音の遅れを聞き分けるには、部屋の反響が少ないほうが有利です
  • 記録用のメモ(紙でも表計算でも可)
  • 可能なら、聞き比べに付き合ってくれる人を1人

最初に、パターンを固定します。作品には3つのお手本があるので、そのうち一つを選び、以後の実験ではそのお手本を一切編集しないようにします。自分でパターンを組む場合は、次の条件を満たす形にすると違いが見えやすくなります。

  • 4つの音のうち、少なくとも1つは偶数ステップ(2、4、6…番目)にも音が入っている
  • 同じ音が連続して並ぶ箇所がある

偶数ステップに音がない音色は、スウィングで遅れる対象がないため、変化が小さくなる可能性があります。これが仮説として妥当かどうかも、実験で確かめられます。

次に、テンポを一つ決めます。最初は中くらいの速さで構いません。後で他のテンポでも繰り返します。決めたら、テンポ値と、選んだお手本またはパターンの配置を書き留めておきます。「WAVE / WAVE」には保存機能がありますが、実験の記録は自分のメモにも必ず残してください。

手順:同じパターンで0と70を往復する

基本の聞き比べ

  1. パターンとテンポを固定し、スウィングを0にして、ループを4周ほど聞きます。
  2. スウィングを70(または最大値に近い値)にして、同じく4周聞きます。
  3. 0へ戻して、もう一度4周聞きます。
  4. この「0→70→0」を1セットとして、合計3セット行います。

往復させるのは、最初の印象だけに頼らないためです。人の耳は直前に聞いた音に引きずられます。0から70へ移った直後は違いが大きく感じられ、70から0へ戻ったときは「硬い」と感じやすいといった偏りが出ることがあります。両方向を経験することで、この偏りを見分けられます。

トラックを一つずつ聞く

「WAVE / WAVE」にはトラックごとのミュートがあります。これを使い、4つの音を1つずつだけ鳴らして、0と70を切り替えてみます。

  • 1トラックだけ鳴らして、0と70を各2周
  • 次に2トラックの組み合わせ(たとえば低い音と高い音)で同じことを行う

単独で聞くと、スウィングが効いている音と、ほとんど変わらない音が分かれるかもしれません。変化が分かるトラックと分かりにくいトラックがあれば、それがパターンの配置(偶数ステップに音があるか)で説明できるかを、後で照らし合わせます。

テンポを変えて繰り返す

最後に、テンポを遅め・中・速めの3段階にして、同じ0と70の聞き比べを行います。同じ数字でも、テンポが遅いほど遅れの絶対的な長さ(ミリ秒)は大きくなります。そのため「70のときの印象がテンポによって変わるか」が確かめられます。

記録の取り方と結果の読み方

何を、どの単位で記録するか

1回の聞き比べにつき、次の項目を書きます。

  • 条件、書き方:テンポ、スウィング値、鳴らしたトラック
  • 印象語、書き方:思い浮かんだ言葉を3語まで(例:「歩く」「引きずる」など自分の言葉で)
  • 最も変わったと感じた音、書き方:トラック名、または音色の特徴
  • 変化の大きさ、書き方:0(同じに聞こえる)〜5(別物に聞こえる)の6段階
  • 気づいた点、書き方:長さや間(ま)に関する一言

印象語を3語までに絞るのは、言葉を選ぶ作業そのものが実験の目的だからです。「いい」「悪い」といった評価語は避け、可能なら「何が」「どうなった」という形で書きます。たとえば「裏の音が表に近づいた」「ループの頭がもたついた」のように、聞こえた現象を書く形です。

言葉を比べる軸

印象語が集まったら、次の軸で整理すると、違いがどこにあるかが見えてきます。

  • 間(ま)の長さ:表から裏までが長くなったか
  • 均等さ:拍の刻みが揃って聞こえるか、偏って聞こえるか
  • 推進感:前へ進む感じか、後ろへ引かれる感じか
  • 機械らしさ:機械的か、人が叩いたように聞こえるか

0と70でどの軸の言葉が増減したかを、セットごとに数えます。

結果の読み方

記録を見て、次のように判断します。

  • 変化の大きさが0〜1ばかり:耳では差が小さい可能性があります。パターンに偶数ステップの音が少ない、または70が設定の中で小さな値である可能性を、先に疑ってください。パターンを変えるか、最大値で再度比較します。
  • 変化の大きさが4〜5で、印象語が毎回似ている:その違いは再現性があります。印象語を軸ごとに整理して、自作ゲームで「どの場面にスウィングを足すか」の指針にできます。
  • セットごとに印象語がばらつく:0と70の差ではなく、聞く側の状態(疲れ、直前に聞いた音)の影響が大きい可能性があります。休憩を入れて再度行ってください。
  • トラックによって変化の大小がはっきり分かれる:スウィングの効き方は音ごとの配置に依存しています。パターンの偶数ステップを確認して、この結論を支えられるか検討します。
  • テンポで印象が変わる:同じ数字でも遅れの絶対的な長さが変わるためです。ゲームに入れるなら、テンポごとにスウィング量を決める必要があります。

他の人を使った盲検比較

もう1人いる場合は、0と70のどちらかをランダムに選んで再生してもらい、聞き手に「どちらの設定か」を当ててもらう方法もあります。聞き手は画面を見ません。

10回行い、当たった回数を数えます。当てずっぽうでも半分程度は当たるので、数字の読み方に注意が必要です。確率計算では、10回中8回以上当たる偶然の確率は約5.5%、9回以上なら約1%です。8回以上当たれば「聞き分けられている」と読みやすく、6〜7回では偶然との区別が付きにくいので、回数を増やしてください。

仕組みを自分で確かめる小さなコード

スウィングが「偶数ステップを後ろへずらす」だけの処理だと確かめたい人向けに、単独で動く最小構成を示します。ここでの数字の定義は一例で、「WAVE / WAVE」の内部定義と同じとは限りません。ここでは「偶数番目のステップを、ステップの長さの半分に対して、指定した割合だけ遅らせる」としています。

html
<button onclick="play(0)">スウィング0</button>
<button onclick="play(70)">スウィング70</button>
<script>
const ctx = new AudioContext();
function click(t, f) {
  const o = ctx.createOscillator(), g = ctx.createGain();
  o.frequency.value = f;
  o.connect(g); g.connect(ctx.destination);
  g.gain.setValueAtTime(0.3, t);
  g.gain.exponentialRampToValueAtTime(0.001, t + 0.08);
  o.start(t); o.stop(t + 0.1);
}
function play(swing) {
  ctx.resume();
  const bpm = 100;
  const step = 60 / bpm / 4; // 16分音符の長さ(秒)
  const start = ctx.currentTime + 0.1;
  for (let i = 0; i < 16; i++) {
    const late = (i % 2 === 1) ? step * 0.5 * swing / 100 : 0;
    click(start + i * step + late, i % 4 === 0 ? 400 : 1200);
  }
}
</script>

この定義だと、BPM100では16分音符1つが0.15秒で、スウィング70の遅れは0.5×0.7×0.15で約0.0525秒(約52ミリ秒)です。ボタンを押して、聞こえた印象を先ほどの表に書き込んでください。「WAVE / WAVE」で得た印象語と、このコードの音を比べると、自分が聞き取っている変化が、遅れだけなのか、音色やトラックの組み合わせも関わっているのかを切り分けられます。

起こりやすい誤り

  • 複数の設定を同時に変える:スウィングを動かしながらテンポも触ると、何の影響か分からなくなります。一度に動かすのは一つだけにします。
  • 最初の印象だけで判断する:0→70の直後は差が誇張されがちです。往復を3セット行ってください。
  • 偶数ステップに音がないトラックで比較する:差が出なくても、スウィングが効かないのではなく、遅らせる対象が少ないだけの可能性があります。
  • 音量が変わっている:大きい音は明瞭に聞こえ、リズムの印象を変えます。音量は固定します。
  • 評価語で記録する:「気持ちいい」だけでは、何が変わったのか残りません。現象を書きます。
  • 端末による遅延を無視する:スマートフォンのBluetoothイヤホンは、音の遅れが出ることがあります。有線のイヤホンまたは同じ環境で通して実験すると、条件が揃います。
  • スウィングの数字を他のアプリと比べる:数字の意味は定義次第です。他のツールと数値だけで比較しないでください。

次の行動

まず「WAVE / WAVE」を開き、お手本を一つ選んで、スウィングが動かせる範囲を確かめます。そのうえで、0と70(または最大値に近い値)を3往復し、印象語を3語ずつ書き出してください。ゲームに音楽を入れる予定がある場合は、集まった言葉をもとに、その場面にスウィングを足すか、等間隔のままにするかを決める材料にできます。