はじめに
トロンボーンは「スライドをどの位置に動かすか」で音程を作ります。ピアノのように鍵盤を押せば決まった音が出るわけではないので、同じ音が複数のポジションで取れたり、逆にちょっとでも位置がズレると音程が不安定になったりします。
特にジャズや即興をやるときには「このコードのとき、どの音がどこで吹けるのか」を直感的に把握しておくことがとても大事になります。
そこで作り始めたのが、Googleスプレッドシート上で管理する「スライドポジション表+トライアド表」です。
いわば トロンボーン版の地図 のようなもので、
どのポジションでどの音が出るか
その音がトライアド(C、F、G など)にどう関係しているか
を一覧できる仕組みです。
最初はただの表形式で、「ポジション → 音名 → コード対応」という風に書き出していったのですが、見ているうちにだんだん欲が出てきました。
「これ、もしスプレッドシート上でコードを選んだら、その場で五線譜に音符が表示されたら最高じゃない?」と。
表だけだと頭の中で音をイメージしながら読み解く必要がありますが、楽譜として見られれば一気に直感的になります。
音楽はやっぱり“視覚的な情報”が強いので、音符で見えることの効果は大きいんです。
そこでチャレンジしてみたのが Google Apps Script。
これはスプレッドシートの裏側にプログラムを仕込める仕組みで、「セルを操作したら自動で処理を実行」といったことが可能になります。
「ならば、この仕組みを使って五線譜を描画できないか?」というのが今回の試みの出発点でした。
本記事では、作業の過程、試行錯誤の結果、現在の進捗までを研究日誌風にまとめます。
スクショや動画も交え、読者が一緒に考えているような感覚で読める内容にしています。
そもそもの目標
目標は大きく3つです:
- ルートとトライアドの種類を選べる
・まずは操作性の確保。プルダウンでルート音やトライアド種類(メジャー、マイナーなど)を選べること。
転回形も加える。「標準+第一、第二転回形」。dim、augは転回形なし。 - 選んだトライアドに対応する音を自動表示
・第一音、第二音、第三音をスプレッドシート上で計算。
・メジャーとマイナーで計算方法を変える必要があり、MOD関数やINDEX関数を駆使して実装。
・ここでは「第一音は正しく表示されるが、二、三音が第一音と同じになってしまう」という問題に遭遇し、原因は参照範囲や転回形の計算式の細かいミスでした。 - 最終的には五線譜に表示
・これはまだ実現していませんが、最終目標。
・音名だけでなく、楽譜として視覚的に把握できるようにすることで、演奏や分析に直結する価値を持たせる狙いです。
スプレッドシートでの可視化
- ルート音とトライアド種類のプルダウンを設置。
- 選択に応じて、各音が自動計算され、スライド表の対応箇所がハイライト。
- 倍音やスライド位置も表で管理しているため、視覚的にどこを押さえるかすぐわかる。
工夫したポイント:
- 音名リスト(C〜B)と半音番号(0〜11)を別列で管理
→ これによりMOD関数で半音計算を簡単にでき、異なるトライアドの組み合わせも柔軟に対応可能。
- メジャー・マイナー・dim・augごとに半音表を分けた
→ 計算式が複雑になりましたが、結果としてトライアド全種類の動的表示が可能に。
- セルの色でハイライト
→ スライド表のどのポジションが使われているか、一目でわかるようになり、演奏者視点でも便利。
例1 Cメジャートライアド(C-E-G)

例2 F#マイナートライアド(F#-A-C#)

きちんと対応してる音がハイライトされて視覚的にわかりやすいと思います。
五線譜表示への挑戦
ここからが本格的な挑戦。先ほどまでのは使用する音とポジションはわかりやすいのですが、音の高さがイメージしにくいです。なので楽譜表示は必須かなと思っています。
- VexFlow を最初に試しましたが、Google Apps Script 上ではうまく動作せず。
- 「Vex is not defined」などのエラーで、ライブラリ呼び出しに苦戦。
- CDN経由やローカル読み込みなど、いろいろ試しましたが、Apps Script環境では制約が多いことを痛感。
- abc記譜法(abcjs) も試みました。
- 文字列で音楽を表現できるので、スプレッドシートとの親和性は高い。
- ただし現状は「Cコードのテスト表示」にとどまり、動的にトライアド選択と連動させるにはさらなる工夫が必要です。
現状では「五線譜表示」には至っていませんが、試行錯誤の過程自体が学びになっています。
実際に動かしてみた
動作部分だけでも動画で確認可能です。
- ルート音やトライアドをプルダウンで選ぶと、スプレッドシート上の音名や色が変化。
- これだけでも、数字やセルだけの表示より格段に「動きがある」ことが体感できます。
失敗例と学び
- abc記譜の導入はまだ成功していない
- ライブラリ読み込みや関数参照のミスで何度もエラー
- 第一音だけ正しく表示され、二・三音が同じになる問題もあり
失敗例を残すことは、後で振り返ると貴重な学びになります。
「何がうまくいかなかったのか」を明確にすることで、次の挑戦へのヒントになります。
次の一歩
目標は、「選んだトライアドを五線譜に表示」です。
- VexFlowやabcjsなどのライブラリとスプレッドシートをどう連携させるかが鍵
- 現状は音名とハイライト表示まで成功
- 今後は、プルダウン選択と連動して音符が動く仕組みを作る
完成まではまだ遠いですが、この試行錯誤自体がとても面白く、読者にも「実験的で自由な発想」を感じてもらえるはずです。
みたいなブログ用文章をChatGPTに作ってもらったのです。


コメント