読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

ポケミク・シーケンサーを作る

HTML5 jQuery WebMIDI ポケミク JavaScript Audio ハードウェア

ポケミク用シーケンサーをWeb MIDIでぼちぼち実装し始めている。ST/GTタイプを目指しているがひょっとすると縦ピアノロールタイプになるかもしれない。MIDIのシーケンサーのエンジン部分というのは音源は作らなくてもよいので比較的簡単に作れるのではないかと思う。過去何度かWindows上でシーケンサーもしくはMODトラッカーのソースコードをベースにつくろうとしたが、エンジン部分までは作れるもののそれをエディットするUIで挫折するのを何度も繰り返してきている。UIを作るというのは私にとって本当に敷居の高いことで、10年以上作ろうとしてできないのだから一生無理なのではないかと思ったりもする。しかしJavaScript + HTML5という組み合わせによってUI作りの敷居が多少下がるので、今回は動くものが作れるかもしれない。

お手本にしようかなと思っているのはSTED2とかレコポとかまず浮かぶけれども、DOMINOシーケンサーのおかげでピアノロールエディットのいいところも実感できた。私はPCでのDTMはMODトラッカーから入った。MODトラッカーはサンプラ+簡易シーケンサーといったものであったが、今ではBuzzやPsycle、RenoiseのようにVSTが使え、かつ高機能なものとなっている。いままで使ってきたトラッカーは下記のとおりだ。

  • Fast Tracker II
  • MOD Plug Tracker
  • Psycle
  • Buzz
  • Aodix

このトラッカーの中でシーケンス機能が一番すぐれているのはAodixじゃないかなと思う。でもこのトラッカーも作者が急逝しアップデートが停止してしまった。ただシーケンサー部分においてはまだまだMIDIシーケンサーやDAWソフトウェアにはかなわないのではないかと思う。逆に言うとそのあたりが簡素なので私のような素人にはいじりやすいのであるが。

トラッカーいじりを続けてきたせいでPCではMIDIシーケンサーは実はそれほど使用していなかった。使ったことがあるのがレコポを少しと、Cherry、そしてDOMINOだ。あ、Music Studio Standardも使ったこともあったっけ。世界樹というのもあるけれどもこれは使ったことはないな。STED2はソースコードが公開されているので、これをベースにVSTホスト機能をつければいいんじゃないの?と思っていじりはじめたのだけれども中途で放り出している。

その前はMC-500とかC-1とか、MV-30などのハードウェア・シーケンサーを使って普通のマルチティンバー音源を鳴らして遊んでいた。いやC-1はパソコンといってもいいかな。PC/ATのゲームも動いたし。MS-DOSマシンだし。もっと前の話だとFM77-AV+MIDIインターフェースを使っていた時期もあったな。これはもう完全にMMLでしこしこ書いていた。なんとFM-77AVではPlay文でMIDI楽器を鳴らすことができたのだ。もっとさかのぼると最終的にはMZ-700の単音ビープ音に行き着くのだが、もうこれくらいにしとこう。

これだけ長きにわたり音楽ソフトウェアに親しんでいても音楽理論を何ひとつ学んでなく、いまだスコアなしでは何もできないのはある意味驚異的ではなかろうか。さすがにちょっと最近はこれではやばいな思い音楽理論について詳細に解説してくれているコンテンツを見て勉強し、さらには自作曲を作ってみようかと思っている。この勉強はシーケンサー作りにももきっと役に立つはずだし、自作曲だと著作権とか気にしなくてよいので公開も気楽でよいしね。

で今はシーケンサーのコアな部分を作りつつ、実際のエディット画面をHTML5+CSSで作るのか、canvasで作るのかを思案しているところだ。さらにはWeb AudioやgetUserMedia、File APIとかを使うとポケミクの鳴らした音をPCで録音し、WAVファイルに落とすこともできそうである。さらにはそれを動画化してYoutubeにアップできたらいいなぁ。。とか夢想もしている。まあ夢想なので実現するかどうかは別問題だけど、シーケンサーのコア部分と編集機能はなんとしてでも完成させたいね。