GASで紙巻きオルゴール作成プログラムを作ってみた
こんにちは、しろです⛄️
唐突ですが、半年前に「paper tunes」という紙巻きオルゴールを購入しました。
オルゴールにはまっていく中で、より便利に作曲できる方法はないかな〜とゆるく考えていたところ、GAS(Google Apps Script)とスプレッドシート で望んでいたものができたので、まとめてみました!
※前半は紙巻オルゴールの説明や魅力を語っているので、GAS部分は『ツールの選定』辺りからはじまります。
紙巻きオルゴールとは
紙巻きオルゴールとは、穴の空いた紙をオルゴールに通し、手で回すことで音のなるオルゴールです。
専用のキットがあれば、自分で紙に穴を開け曲を作ることができるので、好きな曲のオルゴールを作ることができてしまいます!素敵!!
購入したのは、『papertunes』という紙巻きオルゴールです。
あたたかくてやさしい木の感じ、メロディの綺麗さに一目惚れして購入しました。限られた音数の中で、曲を作り、自分で回して奏でるという作業が楽しくて、家族や友人と遊んでいます。
paper tunesのコンセプトとしては、メッセージや好きな言葉の穴を開けて楽しむというものなのですが、私の周りでは、どこまで曲を再現できるかという遊び方で楽しんでいます!
曲の作り方
曲の作り方ですが、下図のような紙(イメージ)に、専用の穴あけパンチで穴を開けていきます。オルゴールに通すと、穴を開けた箇所に対応した音が鳴ります。
paper tunesは全部で15音で、半音(♯や♭)がありません。
この制限が面白いところで、簡単な曲でも半音があった時は転調したり、音を削ったりして曲を作っていきます。
曲によっては、重要な音が半音になっていたり、音の範囲から出てしまったりするので、その音をいかに工夫してそれっぽくするかという作業がいいなぁと思ってます。
2,3ヶ月遊んでみて、もっと曲作りを楽しむため、作曲段階はデジタルで出来ないかな…という思いがふつふつと湧いてきました。
ツールの選定
オルゴール作曲プログラムに必要な機能は以下の3つ
【要件】
◎入力したデータ通りに演奏する
◯最終完成物の紙に近いようなUI
◯入力が簡単なもの(コピー・カットができると◎)
イメージしていたのは、Excelのような表計算ソフトでのデータ作成で、それを読み込んで演奏させたいな〜というもの
調べてみると、スプレッドシートとGASでうまくできそうだったので開発開始💪
参考記事
1つ目の記事でGASについて学びました。すごく分かりやすかったです。
2つ目の記事はクライアント側のjsで音を鳴らすプログラムです。
完成品
実際に動かしたものがこちらです(SNSに動画をアップしました)
楽譜はこちら↓
やっていることを簡単に説明すると
①スプレッドシートのデータをクライアント側のjsに渡します。
②受け取ったデータを1行ごとに判定、対応する音を鳴らします。
③最後の行まで一定時間を挟んで繰り返します。
今回は、遊び用に触ってみたけれど、使いこなすと色んなアプリと連携できるので便利そうです✨
おまけ
ゲーム音楽が好きなのでどんどん作るぞー!
ありがとうございました⛄️
いただきましたサポートは大切に使わせていただきます⛄️