作ったボクでさえ勘違いして「あれっ、正しく動いてないんじゃね?」と思ってしまうことがあるyo それは、小節の4拍目に2分音符(8クロック分の長さ)を入力したとするyo そうするとこの小節ではおさまりきらず、次の小節の1拍目分(4クロック)まで音がのびるよne エディターには次小節へあふれる音の長さを入力するセレクタがあるので、そいつを「4」にしとけばオッケーと早とちりしちゃうんだよne そうではなくて、あくまで「長音」を指定する場合はチェックボックスをずーっとつなげてONにしていく必要があるyo そして、最後の16クロック目のチェックボックスもしっかりONにしていないと、音はそこで「延長されてない」とみなされるので、いくらセレクタをいじっても無効になるyo それに気付かず、「あふれ分が反映されてない! バグだ、バグだ!」と騒いでいた開発者がいるので、みなさんはそのようなことがないようにw(失笑) 本人も勘違いするくらい複雑で高度な動きをしてるってことだyo(凄過ぎ笑)
あともう一つ追加したのが、「ファイルを選択」ボタン。これは、COOKIEではわずか4KBの容量しか扱えないことがわかったので、テキストをコピペしてインポートする方法はあるとは言え、もうちょっとスマートなやり方はないのかなと、あちこち調べてみた結果発見したものだyo ファイルAPIというものを使ってるらしいんだけど、ボクの手持ちの本にはどこにも載ってないんだよne 結構新しい機能らしいyo ただ、JavaScriptはセキュリティの観点から、クッキー以外はローカルファイルアクセスをさせないという原則だったはずなのにいいのかよと少し思うけどne これの利用方法には条件があって、読み込むファイルはUTF-8エンコードで保存したプレーンテキストファイルでないとちゃんと読めないみたい。Macの場合は標準添付のテキストエディットで、「環境設定」から「開く/保存」のところで全部「UTF-8」を選択しておけば問題なく保存できたyo これを使えば一発で読み込めるようになるので、ループパターンテキストばかりを入れるフォルダをつくっておけば、そこから常に読み出すようにすればいいので、管理がしやすくなるよne この機構をつけられたので、もう貧弱なクッキーに悩まされることはなくなったyo ただ、読み込みは一発になったけど、ファイルの書き出しまではできないので、保存するときはコピペしてテキストファイルをつくらないとダメだyo
短期間でもの凄い進化をとげたけど、きっとベースエディターにまだバグがあるような気がしてならないので、しばらく色んな曲を打ち込みながらバグチェックをしてみようと思うyo まだまだ先は長いけど、おかしな挙動がないかしっかりチェックしながら進もうと思うyo(妥当笑)
そこで、とりあえず1小節分だけのベースパターンを拡大ビジュアル表示して、そこでエディットもできちゃう画面を開発中だyo まあ、入力のてっとり早さだけならば、馴れれば現行のステップ入力もかなり速くできるんだけど、データの確認や編集ということを考えたときに、やはりこういうものは必要だと思うからne(妥当笑)
ベースをモノ発音モードで設計しているので、構造自体はかなりシンプルにできそうだyo 「キャビ研究所」を作ったときに使用した「つまみを直接ドラッグして動かす機構」を久々に使って、独特の操作感を出そうと思ってるyo
あと気付いたのは、このエディターを経由してコピーが超ラクにできるようになるということだyo たとえば、第1小節用のデータをチャチャッとつくったとするyo それを#1へ転送する。ついでに全く同じパターンの#5にも転送する。今度は4拍目のパターンだけを少し修正して、それを#2と#3に転送する。最後に途中をいじったやつを作って#4に転送する、というように一気に似たパターンの小節をまとめて完成させることができるyo もちろん、既にある#6のデータを読み込ませてそれを#7に転送書き込みするなんてのも朝飯前だyo 中身を確認して「ベースパート部分だけを」加工・転送できる「コピー中継基地」として機能させることができるので、またまた使い勝手が向上すると思うyo(感心笑)
これは単なるエディターなので、v2.1のデータフォーマットは全く変化しないyo アクセス記録を見ても、そろそろv2.0、v2.1からユーザーと言えるくらいの数の人が使いはじめているようなので、v2.1フォーマットは今後長く読み書きできるように守っていこうと思うyo(ユーザーサポート笑)
操作方法がいまいち難しいという人は、Zkun Beat v1.0から順に体験していくと進化の流れがよくわかって一目瞭然になると思うyo 過去バージョンもすべて残してあるので、それぞれ
http://zkun.zouri.jp/beat10.html
http://zkun.zouri.jp/beat11.html
http://zkun.zouri.jp/beat12.html
http://zkun.zouri.jp/beat13.html
http://zkun.zouri.jp/beat14.html
http://zkun.zouri.jp/beat15.html
http://zkun.zouri.jp/beat16.html
http://zkun.zouri.jp/beat17.html
http://zkun.zouri.jp/beat18.html
http://zkun.zouri.jp/beat19.html
http://zkun.zouri.jp/beat20.html
のアドレスだから、末尾の数字だけ変更してリターンキーを押せば開くはずだyo
ついでにもう1つ「有名曲」をテストがてら打ち込んでみたyo 楽器屋では試奏禁止と言われる例の曲だyo ドラムは4インストしか使ってないけど、ハットが空いてる小節にタムを臨時指定して鳴らしているので、6インストと同等の音数が出ているyo こういうワザも使えるので参考にしてne
<header>,zd4,2.1,16,5,108,2,7,3,29,110,70,0,0,18,110,80,2,12,118,40,8,0,0,102,64,</header>,<#1>,<i1>,33,100,いのいて、かわい、しかい、うのい、にわい、のかい、,,</i1>,<i2>,46,100,峠間,,</i2>,<i3>,42,100,甘椿,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴晴,,</i5>,</#1>,<#2>,<i1>,33,100,いのいて、かわい、しかい、ともん、にいん、たわい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,椿椿,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴晴,,</i5>,</#2>,<#3>,<i1>,33,100,いのいて、かわい、しかい、うがい、にいい、のおい、たのん、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴晴,,</i5>,</#3>,<#4>,<i1>,33,100,かもいて、しいい、とわい、うかい、にわい、のいい、たもい、,,</i1>,<i2>,46,100,峠間,,</i2>,<i3>,42,100,雨人,,</i3>,<i4>,38,100,甘鮎,,</i4>,<i5>,36,100,峠晴,,</i5>,</#4>,<#5>,<i1>,33,100,いのいて、かわい、しかい、うのい、にわい、のかい、,,</i1>,<i2>,46,100,峠間,,</i2>,<i3>,42,100,雨先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,峠火,,</i5>,</#5>,<#6>,<i1>,33,100,いのいて、かわい、しかい、とわい、うかい、にわい、のかい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,峠晴,,</i5>,</#6>,<#7>,<i1>,33,100,いのいて、かわい、しかい、うがい、にいい、のおい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,峠晴,,</i5>,</#7>,<#8>,<i1>,33,100,いのいて、かわい、しじい、といい、うもい、にのい、のおい、たらい、,,</i1>,<i2>,46,74,先間,,</i2>,<i3>,48,100,間原,,</i3>,<i4>,38,100,甘雀,,</i4>,<i5>,36,100,晴年,,</i5>,</#8>,<#9>,<i1>,33,100,いのいて、かわい、しかい、うのい、にわい、のかい、,,</i1>,<i2>,46,100,峠間,,</i2>,<i3>,42,100,億先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,峠晴,,</i5>,</#9>,<#10>,<i1>,33,100,いのいて、かかい、しがい、とわい、ういい、にもい、ののい、たおい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴晴,,</i5>,</#10>,<#11>,<i1>,33,100,いのいて、かわい、しかい、うがい、にいい、のおい、たおい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴晴,,</i5>,</#11>,<#12>,<i1>,33,100,いのんて、しかい、とがい、うわい、にいい、のもい、たいい、,,</i1>,<i2>,46,100,間甘,,</i2>,<i3>,42,100,先晴,,</i3>,<i4>,38,100,甘鮎,,</i4>,<i5>,36,100,峠晴,,</i5>,</#12>,<#13>,@#9,,,,,</#13>,<#14>,<i1>,33,100,いのいて、かかい、しいい、とわい、うがい、にわい、のいい、たわい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴晴,,</i5>,</#14>,<#15>,<i1>,33,100,いのいて、かわい、しかい、うがい、にいい、のおい、,,</i1>,<i2>,46,100,,,</i2>,<i3>,42,100,先先,,</i3>,<i4>,38,100,甘甘,,</i4>,<i5>,36,100,晴峠,,</i5>,</#15>,<#16>,<i1>,33,100,いのいて、かのい、しかい、とがい、うわい、にいい、のもい、たおい、,,</i1>,<i2>,50,100,間甘,,</i2>,<i3>,45,100,峠足,,</i3>,<i4>,38,100,戸晴,,</i4>,<i5>,36,100,峠青,,</i5>,</#16>,,,,,,,,,,,,,,,,
さらにベースパートのデータ量も大幅に圧縮したyo |C|D|A|などの簡易表示テキストの保存を廃止し、その都度ノートデータから生成させるようにしたyo さらにそのノートデータも圧縮書き込み時には「ひらがな変換」を行い、「かせいん、ふいん、こいて、」などのような独特のフレーズに変換して保存するように変更したyo データ量圧縮としては2バイト文字になるので微妙な感じもするけど、これでドラムの漢字変換、ベースのひらがな変換が揃ったので、日本語←→演奏データの相互変換にまた一歩前進したことになるyo
そのほか、オクターブ変更のセレクタをドラム以外のパートにすべて設置して、左上のミキサー表の中にまとめたyo あと、ミキサー表で設定した内容はすべて「演奏環境の一部」であるととらえて全部header部に保存し、ロードしたときは同じ環境を再現できるようにしたyo これでheader部のデータを改変したので、以後v2.1以前のファイルは読めなくなるyo まあ、まだリリースしてすぐで誰もデータを作り込んで保存してる人なんかいないと思うので大丈夫だろw(苦笑) 以後、このv2.1フォーマットで保存したテキストは当分の間読み込めるように配慮しようと思うので、とりあえずv2.1に全員移行しといてくれyo(一方的な笑)
先日掲載した「とある曲」のテキストデータをv2.1圧縮フォーマットで再掲するyo こんな感じで「和風」表記になっているんだyo このデータの場合、第5小節だけが第1小節と全く同じ内容なので、<#5>のところが@#1とだけ記載されてるだろw こんな感じでデータを短くする工夫をしてるyo(苦心笑)
<header>,zd4,2.1,8,6,110,0,0,0,29,110,70,0,0,33,110,80,2,0,110,40,8,0,0,90,64,</header>,<#1>,<i1>,34,90,いのいて、かのい、しのい、こかい、てがい、はわれ、のかれ、わわれ、たがい、,,</i1>,<i2>,46,106,峠間,,</i2>,<i3>,42,90,億先,,</i3>,<i4>,38,120,甘声,,</i4>,<i5>,36,120,火美,,</i5>,<i6>,49,100,峠間,,</i6>,</#1>,<#2>,<i1>,34,90,いもいて、かもい、しもい、こかい、てがい、はわれ、のかれ、わわれ、たがい、,,</i1>,<i2>,46,106,,,</i2>,<i3>,42,90,先先,,</i3>,<i4>,38,120,甘声,,</i4>,<i5>,36,120,火美,,</i5>,<i6>,49,100,,,</i6>,</#2>,<#3>,<i1>,34,90,いいいて、かいい、しいい、こかい、てがい、はわれ、のかれ、わわれ、たがい、,,</i1>,<i2>,46,106,,,</i2>,<i3>,42,90,先先,,</i3>,<i4>,38,120,甘声,,</i4>,<i5>,36,120,火美,,</i5>,<i6>,49,100,,,</i6>,</#3>,<#4>,<i1>,34,90,いのいて、かのい、しのい、こかい、てがい、はわれ、のわれ、わもい、きもれ、,,</i1>,<i2>,46,106,間美,,</i2>,<i3>,42,90,先椿,,</i3>,<i4>,38,120,甘心,,</i4>,<i5>,36,120,火美,,</i5>,<i6>,49,100,,,</i6>,</#4>,<#5>,@#1,,,,,,</#5>,<#6>,<i1>,34,90,いもいて、かもい、しもい、こかい、てがい、はわれ、のかれ、わわれ、たがい、,,</i1>,<i2>,46,106,間美,,</i2>,<i3>,42,90,先椿,,</i3>,<i4>,38,120,甘心,,</i4>,<i5>,36,120,火美,,</i5>,<i6>,49,100,,,</i6>,</#6>,<#7>,<i1>,34,90,いいいて、かいい、しいい、こかい、てがい、はわれ、のかれ、わわれ、たがい、,,</i1>,<i2>,46,106,峠美,,</i2>,<i3>,42,90,億椿,,</i3>,<i4>,38,120,甘心,,</i4>,<i5>,36,120,火美,,</i5>,<i6>,49,100,峠間,,</i6>,</#7>,<#8>,<i1>,34,90,いをいて、かをい、しをい、こかい、てがい、はわれ、のわれ、わいれ、たもい、,,</i1>,<i2>,46,106,,,</i2>,<i3>,42,90,先間,,</i3>,<i4>,38,120,甘全,,</i4>,<i5>,36,120,火間,,</i5>,<i6>,49,100,,,</i6>,</#8>,,,,,,,,,,,,,,,,,,,,,,,,
やっていることは、その都度乱数を発生させて、クロック間のインターバルを差し引きさせたり、指定するベロシティーの値を増減させているだけなので単純なんだけど、同時発音数が増えたり、テンポが速くなったりすると、ほかにもその都度配列を作ったり、クロックインジケーターを走らせたり、次の小節へ送る情報を書き込んだりと、色々な仕事を同時にやっているので追いつかなくなるみたいw(妥当笑) まあ、そこまで都度都度乱数を発生させず、ある程度大まかにうねらせるような形にすれば、もうちょっと処理はラクになるだろうけどne まあ、そんなにハイテンポで使うスタイルのソフトでもないので当面はいじらないと思うけどw(含み笑)
でもOldマックでHyperCardを動かしていた時にくらべれば処理速度は天地ほどの開きがあるne 速度的に処理が追いつかないから、いろいろなアイデアがあってもリアルタイムで演奏させるソフトを作るのは非常に制約だらけだった。ディスクに常に書き込みにいく方式だったせいもあって、HDDにもよくない感じだったしne(苦笑) 今はもの凄い速度でかなり大量のことがリアルタイムで処理できる。すごい時代になったyo(感心笑)
でも、使う側の人間にあまり工夫や進歩が見られないと思うyo ソーシャルゲームとかくだらないものは確実に昔のゲームより質が落ちていると思うし、ソフトにしてもハードにしても既存の製品の路線を継承した無難なものばっかり出てくるけど、革新的なものがほとんど出てこないよne ジョブズはやはりその点では凄かったんだと思うyo けっこう人のアイデアを奪ったりもしてたみたいだけどw(苦笑) 楽器業界も同じ。せっかくGKやGRといった画期的な器が登場しても、その先の展開が全然ない。ボクはずっと待ってたのに。ギターでシンセ音を出すだけのことにはそれほどの意味はない。むしろそうやって演奏データとして取り出せることによって生まれる次の展開を期待していたのに。何もない。5年待っても、10年待っても。バカなの? 何も開発しようという気がないの?と思ったyo その退屈な思いがずーっと引っかかってたんだよne(ため息笑)
さらに、ベースパート開発時に手抜きして「|A||C|D|#G||」とかの簡易表示はめんどくさいからそのまま保存させてたんだけど、これも元データさえあれば自動的に計算して生成できるんだから、「|A||C|D|#G||」などの文字列は保存せずに全部その都度生成させすることにしたyo
さらには、小節単位でまったく同じデータの場合は「◯◯小節の完コピである」という意味の符合だけ書き込んで、重複するデータを書き込まないようにするyo これはもう試作品ができあがっていて、なかなかクレバーに動作してくれてるyo
これらの改良を施して、クッキー保存するときもそのような形でデータ圧縮して書き込むようにすれば、せめて8小節ループくらいなら保存できるようになってもらいたいものだne まあ、クッキー以外で保存する場合でも圧縮・解凍技術を開発しておいて損はないからne
さらにあるアイデアがあって、「ひらがな変換」を導入しようと思ってるyo ドラムのグリッドパターンを2進数のビットに見立てて「漢字変換」をすることで圧縮表示に成功しているけど、今度はベースの演奏パターンを「ひらがな変換」して表示してみるyo 現行では発音のタイミング、音の高さ、音の長さ、音の強さ、という4要素を数字と配列上の位置で表しているけど、これをうまいこと変換してひらがなで表記しちゃおうというわけだyo ただし、圧縮保存時のみの変換で、演奏時や編集時は今のような数値表示でないとさすがに内容が理解できないからne(苦笑)
これらの「漢字変換」や「ひらがな変換」をなぜ強引に導入してるかというと、任意に与えられた日本語のテキストから、当該辞書にヒットする文字が得られるたびにデータを生成していくようなプログラムを作ることが簡単にできるようになるので、ゆくゆくはヤフーニュースの記事をコピペして貼るだけで、その文字列からスコアを生成して勝手にその記事をテーマにしたセッションループが始まるという、超お手軽インプットができるようになるので、あえて日本語にからめていく設計をしているというわけだyo(壮大な計画笑) カタカナやアルファベットも文章には登場するので、将来的にはそれらも辞書化して何らかのパートを担わせることになるかもしれないne 構想は無限に広がるyo(技術者笑)
感じたことは、とにかくまずはベースを先に打ち込んだほうがいいne そしてくり返しフレーズがあるなら「COPY MENU」のボタンをどんどん利用して複写するといい。そしてあとからドラムを入力するといいyo なぜかというと、ドラムは「イエローセレクタ」もあるから入力がラクだし、見た目そのままでクリックしていくこともできるから、8小節くらいならラクラク入力できるyo 一方、ベースは結構めんどくさいし見た目もわかりにくいので、とにかくコピー機能を最大限駆使してまずはベースパートを完成させるようにしたほうがラクだと思うyo
さて、そんなわけで8小節のループを完成させたんだけど、念のためにテキストデータからコピペしてバックアップテキストを用意しておいたyo さらにCOOKIEへSAVEして再LOADに挑戦したんだけど、何度やってもブラウザがフリーズして強制終了かけるしかなくなっちゃうw(大苦笑) ほかの小さなテストパターンではうまく動いているから、問題は「とある曲」のデータサイズにあるのかなと思い、ちょっと調べてみたyo
すると、COOKIEはブラウザにもよるけど、1件あたりだいたい4KBまでの容量しか処理できないらしいne(失笑) 「とある曲」のデータはすでに8KBあるから、COOKIEではオーバーフローしちゃって正しいデータのロードができないみたいだyo(残念笑)
つまり、COOKIEによる保存システムは4小節くらいまでのちっこいデータがせいぜいで、長いものはテキストファイルでのコピペ保存を考えないと駄目ということだne まあ、早い時点で気付いてよかったyo さっそく今後の対策を考えるとするyo(技術者笑)
ちなみにCOOKIEをオーバーフローさせた「とある曲」のデータを掲載しとくyo テキストとしてコピペして「READ from text」を実行するならちゃんと動くから試してみてw SAVEするのはやめといたほうがいいyo(失笑)
<header>,zd4,1.8,8,6,0,110,114,0,0,0,,</header>,<#1>,<inst1>,34,90,31#2#100;;31#2#100;;31#2#100;;;43#2#100;;41#2#100;;38#1#100;43#1#100;38#1#100;41#2#100,G||G||G|||G||F||D|G|D|F,</inst1>,<inst2>,46,106,峠間,,</inst2>,<inst3>,42,90,億先,,</inst3>,<inst4>,38,120,甘声,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,峠間,,</inst6>,</#1>,<#2>,<inst1>,34,90,34#2#100;;34#2#100;;34#2#100;;;43#2#100;;41#2#100;;38#1#100;43#1#100;38#1#100;41#2#100,#A||#A||#A|||G||F||D|G|D|F,</inst1>,<inst2>,46,106,間間,,</inst2>,<inst3>,42,90,先先,,</inst3>,<inst4>,38,120,甘声,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,間間,,</inst6>,</#2>,<#3>,<inst1>,34,90,36#2#100;;36#2#100;;36#2#100;;;43#2#100;;41#2#100;;38#1#100;43#1#100;38#1#100;41#2#100,C||C||C|||G||F||D|G|D|F,</inst1>,<inst2>,46,106,間間,,</inst2>,<inst3>,42,90,先先,,</inst3>,<inst4>,38,120,甘声,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,間間,,</inst6>,</#3>,<#4>,<inst1>,34,90,31#2#100;;31#2#100;;31#2#100;;;43#2#100;;41#2#100;;38#1#100;38#1#100;34#2#100;;34#1#100,G||G||G|||G||F||D|D|#A||#A,</inst1>,<inst2>,46,106,間美,,</inst2>,<inst3>,42,90,先椿,,</inst3>,<inst4>,38,120,甘心,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,間間,,</inst6>,</#4>,<#5>,<inst1>,34,90,31#2#100;;31#2#100;;31#2#100;;;43#2#100;;41#2#100;;38#1#100;43#1#100;38#1#100;41#2#100,G||G||G|||G||F||D|G|D|F,</inst1>,<inst2>,46,106,峠間,,</inst2>,<inst3>,42,90,億先,,</inst3>,<inst4>,38,120,甘声,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,峠間,,</inst6>,</#5>,<#6>,<inst1>,34,90,34#2#100;;34#2#100;;34#2#100;;;43#2#100;;41#2#100;;38#1#100;43#1#100;38#1#100;41#2#100,#A||#A||#A|||G||F||D|G|D|F,</inst1>,<inst2>,46,106,間美,,</inst2>,<inst3>,42,90,先椿,,</inst3>,<inst4>,38,120,甘心,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,間間,,</inst6>,</#6>,<#7>,<inst1>,34,90,36#2#100;;36#2#100;;36#2#100;;;43#2#100;;41#2#100;;38#1#100;43#1#100;38#1#100;41#2#100,C||C||C|||G||F||D|G|D|F,</inst1>,<inst2>,46,106,峠美,,</inst2>,<inst3>,42,90,億椿,,</inst3>,<inst4>,38,120,甘心,,</inst4>,<inst5>,36,120,火美,,</inst5>,<inst6>,49,100,峠間,,</inst6>,</#7>,<#8>,<inst1>,34,90,39#2#100;;39#2#100;;39#2#100;;;43#2#100;;41#2#100;;38#1#100;38#1#100;36#1#100;34#2#100,#D||#D||#D|||G||F||D|D|C|#A,</inst1>,<inst2>,46,106,間間,,</inst2>,<inst3>,42,90,先間,,</inst3>,<inst4>,38,120,甘全,,</inst4>,<inst5>,36,120,火間,,</inst5>,<inst6>,49,100,間間,,</inst6>,</#8>,,,,,,,,,,,,,,,,,,,,,,,,
画面折りたたみ機構を応用して、上部の各種表示部分もページ切り替え式に改造してスッキリさせたyo おかげでテキストエリアをまた広く表示できるようになったので、ベースパートが増えて一気に文字数が増えたパターンデータを見るのに便利になったyo(苦笑)
ここまで出来上がったら、次はもう単なる「複数小節ループ」だけではなく、「曲進行」を制御できないかということが視野に入ってくるよne 小節単位でデータを切り出すことが簡単にできるようになっているから、「仮想曲配列」をつくってそこに小節を並べていき、合体物を再生する命令を実行すれば何も考えなくても「曲進行」どおりに演奏してくれるw まあ、その進行を指定する行為自体が煩雑であったり、コードやら色々考慮しなくちゃならないので敷居が高いんだけどne それで機械的なループシークエンサーみたいなものが隆盛なんだろうけどne
まあ、いきなり「曲進行」はきついので、まずは「コード指定」あたりを今のループマシンに導入して、ついでに白玉のコードも鳴らさせたりするのはたぶん簡単にできるだろうw(余裕笑) その次によくあるコード進行なんかを勝手に入れる機能をつくり、ちょうどいいあたりで勝手にオカズを入れてくれる機能をつくり、そういうのが熟成したあたりで、ループから離れて自由に進行させる構造へと手を出そうか。とりあえず、「自宅練習の友w」的なジャムマシーンを作る!というのが当面の目標なので、オカズつきでいい感じのループ演奏が半自動でバンバン作れるくらいのところまでもっていこうと思ってるyo 入力の手間さえかければ今のBeat v2.0でもかなりのことはできるんだけど、まだまだ「半自動」からはほど遠いからne(苦笑) そんな感じの構想で開発を進めてるyo(技術者笑)
一番悩むのが音符入力方法をどう作るかだよne ボクの考えた方式は、まずクロックインジケータが走るラインが真上にあるので、それを位置指定ボタンがわりにクリックするyo その位置にどの高さの音を入れるかを「Note」セレクタで選ぶyo そしてクロックいくつ分の長さにするかを「Length」セレクタで選ぶyo 音の強さベロシティーは枠の右下に表示されている数値で入力されるyo この数値はBeatと同様に画面左端のスライダーで増減することができるyo これらの指定が終われば「Enter」ボタンをクリックすると指定したパラメータでデータが書き込まれるyo 詳細データは画面右上のテキストエリアの中に表示されるyo 詳細はそっちで見るとして、スコアシート上ではパッと見でわかりやすい表示がほしいよne そこで「C|A||#G|」といった感じのアルファベットだけの簡易表示で入力されている内容を示すようにしたyo これがあるのとないのとでは作業性がかなり違うと思うのでナイスアイデアだと思うんだよne(画期的笑)
入力を削除するときは、音符単体を削除するなら、クロックインジケータをクリックしてタイミングを指定し、「Length」セレクタにある「DEL」を選んでEnterを押せばいいyo 小節全体の入力をクリアしたいときは、「Length」セレクタにある「CLR」を選んでEnterだyo(明快笑)
あと、これはモノモードで発音させるように作っているので、仮に音の長さの指定で音が重なるように入力していたとしても、次の音が発音するときに前の音は消されるようになってるyo あと、かなり頑張ったところでは、小節をまたぐ長い音符やループの終わりから先頭にかけてまたがるような長い音符でも、切れずに正しいタイミングで消音されるように処理を継承させてるyo 小節ごとにブツ切りなんてことはないので安心してくれw(当然笑)