zkunがいろんなことを横書きするブログのようですw(含み笑)
再生関係で実にいろいろな機能を搭載したyo これらは往年のドラムマシン専用機なんかによく搭載されていた機能を単純なプログラム改造で実現したものだyo
まず、「Shuffle」セレクタ。これは表拍と裏拍のタイミングをずらすことによって、シャッフルやスイングのパターンをつくれるもの。ON GRID(0%)から100%まで10%刻みで選べるyo まあ、50%くらいがゆったりしたテンポなら気持ちいいシャッフルになるyo
次は「Human Tempo」セレクタ。これは人が叩いてるように、本来のタイミングから誤差を発生させるものだyo これもON GRID(誤差なし)、Both(ジャストから前後両方にぶれる)3段階、Before(ジャストよりも先走る)3段階、After(ジャストより遅れる)3段階から選べるyo これは各クロックにその都度当該条件でランダムを発生させて誤差を差し引きさせているので、平均でみればそのような感じの人が叩いているような雰囲気が出てると思うyo
次は「Velocity Random」セレクタ。各インストを叩くベロシティは各行左端のスライダーで指定できるんだけど、それもずっと同じ一定の強さで叩いているとマシンっぽさが強くなるよne 人が叩けば必ず強さに微妙なむらができるものだから、これも乱数を発生させてすべての発音都度に差し引きさせるようにしたyo つまり、同じクロックでも各インストごとに差し引きされる数値がそれぞれバラバラになるので、いかにも一斉に変化しましたという感じにはならないyo これも0から10までの段階で選べるyo この3つは、まさに人間が叩いてるっぽさを出すための繊細で膨大な微調整を単純なプログラムで代行させているものだyo(納得笑)
その次は細かな追加。「Play from Top」のチェックボックスは、これがチェックされていれば必ず第1小節から再生されるyo それは今までどおりなんだけど、これをオフにしたときが新しいyo クロックインジケータが止まっている位置から再生をスタートするyo つまり、一時停止させるのと同じように使えるyo しかも、止まった位置とは別のラジオボタンをクリックすると、そこから再生をスタートさせることもできちゃうyo なかなか優れモノだろw 複数のラジオボタンがチェックされてる場合は、一番後のクロックの位置からスタートするyo(妥当笑)
次はコピー機能に「COPY #4 ↓」を追加したyo これは4小節単位の終わりに細かなオカズを叩いて変化をつけることが多いと思うけど、複雑なパターンを入力したものをまた何回も指定し直すのはダルいよne しかも全体コピーしたくても途中をすでにいじってるから、やり直しになっちゃうんだよな〜というようなときに、4小節目の倍数だけを縦方向にコピーできる機能だyo 細かい機能だけどあれば助かるよne(微笑)
そして最後に、画面上部の空きスペースにミニ鍵盤を押し込んだyo こいつはPCのキーボードで演奏するタイプなので、MacのUS Keyboard配列でキミも演奏してくれyo(互換性無視笑) まあ、USB MIDIでつないだキーボードからも演奏できるので持ってる人はそちらでw Zkun Keyboardでは鍵盤画面にオマケでリズムマシンをつけたけど、今度はドラムマシン画面にオマケでキーボードをつけたyo(苦笑) ヒューマンテンポのシャッフルを聴いてると思わず何か演奏したくなるだろ? そのために鍵盤をつけたというわけだyo ただし今回のやつはマウスクリックでの演奏は割愛したyo あれは正直言って実用的じゃないからne(失笑)
いやあ、我ながら物凄い量の小ネタをねじ込んだものだyo(呆れ笑) でも、やればやるほど、まだまだアイデアがわいて来る状態だyo この先の展開を左右するようなコロンブスの卵的発想のアイデアもひらめいたけどそれはまだ秘密にしておくyo いつか、「どうだい、これがあの時ちらっとほのめかしてた『コロたま』だyo(ドヤ顔笑)」と書く日がくると思うので楽しみにしててくれyo(含み笑)
まず、「Shuffle」セレクタ。これは表拍と裏拍のタイミングをずらすことによって、シャッフルやスイングのパターンをつくれるもの。ON GRID(0%)から100%まで10%刻みで選べるyo まあ、50%くらいがゆったりしたテンポなら気持ちいいシャッフルになるyo
次は「Human Tempo」セレクタ。これは人が叩いてるように、本来のタイミングから誤差を発生させるものだyo これもON GRID(誤差なし)、Both(ジャストから前後両方にぶれる)3段階、Before(ジャストよりも先走る)3段階、After(ジャストより遅れる)3段階から選べるyo これは各クロックにその都度当該条件でランダムを発生させて誤差を差し引きさせているので、平均でみればそのような感じの人が叩いているような雰囲気が出てると思うyo
次は「Velocity Random」セレクタ。各インストを叩くベロシティは各行左端のスライダーで指定できるんだけど、それもずっと同じ一定の強さで叩いているとマシンっぽさが強くなるよne 人が叩けば必ず強さに微妙なむらができるものだから、これも乱数を発生させてすべての発音都度に差し引きさせるようにしたyo つまり、同じクロックでも各インストごとに差し引きされる数値がそれぞれバラバラになるので、いかにも一斉に変化しましたという感じにはならないyo これも0から10までの段階で選べるyo この3つは、まさに人間が叩いてるっぽさを出すための繊細で膨大な微調整を単純なプログラムで代行させているものだyo(納得笑)
その次は細かな追加。「Play from Top」のチェックボックスは、これがチェックされていれば必ず第1小節から再生されるyo それは今までどおりなんだけど、これをオフにしたときが新しいyo クロックインジケータが止まっている位置から再生をスタートするyo つまり、一時停止させるのと同じように使えるyo しかも、止まった位置とは別のラジオボタンをクリックすると、そこから再生をスタートさせることもできちゃうyo なかなか優れモノだろw 複数のラジオボタンがチェックされてる場合は、一番後のクロックの位置からスタートするyo(妥当笑)
次はコピー機能に「COPY #4 ↓」を追加したyo これは4小節単位の終わりに細かなオカズを叩いて変化をつけることが多いと思うけど、複雑なパターンを入力したものをまた何回も指定し直すのはダルいよne しかも全体コピーしたくても途中をすでにいじってるから、やり直しになっちゃうんだよな〜というようなときに、4小節目の倍数だけを縦方向にコピーできる機能だyo 細かい機能だけどあれば助かるよne(微笑)
そして最後に、画面上部の空きスペースにミニ鍵盤を押し込んだyo こいつはPCのキーボードで演奏するタイプなので、MacのUS Keyboard配列でキミも演奏してくれyo(互換性無視笑) まあ、USB MIDIでつないだキーボードからも演奏できるので持ってる人はそちらでw Zkun Keyboardでは鍵盤画面にオマケでリズムマシンをつけたけど、今度はドラムマシン画面にオマケでキーボードをつけたyo(苦笑) ヒューマンテンポのシャッフルを聴いてると思わず何か演奏したくなるだろ? そのために鍵盤をつけたというわけだyo ただし今回のやつはマウスクリックでの演奏は割愛したyo あれは正直言って実用的じゃないからne(失笑)
いやあ、我ながら物凄い量の小ネタをねじ込んだものだyo(呆れ笑) でも、やればやるほど、まだまだアイデアがわいて来る状態だyo この先の展開を左右するようなコロンブスの卵的発想のアイデアもひらめいたけどそれはまだ秘密にしておくyo いつか、「どうだい、これがあの時ちらっとほのめかしてた『コロたま』だyo(ドヤ顔笑)」と書く日がくると思うので楽しみにしててくれyo(含み笑)
PR
またバグ発見したけどすぐ直したyo 2進数、16進数、10進数が入り乱れて、桁揃えのためにゼロを足したりといろいろやっていて、前のバージョンではちゃんと動いていたものが、スクリプトを短くするために式をまとめたり、一度に記述したりすると、なぜか特定の値が出てきたときだけ予期せぬ挙動をしたりするので難解だyo まあ、とりあえず前のバージョンの記述方法に戻すことで正常に動くようになったけど、まだ理屈が把握できないyo まあ、まだボクの分からないマイナーなルールがあるんだと思うyo(苦笑) とりあえず正しく動いてくれれば細かな理屈はわからなくてもいいけど、こういうこともあるから正常に動いている時点のバージョンをこまめに保存して、いつでも元のスクリプトを参照できるようにしておくことは重要だよne 今、Beat v1.6で約1090行のソースになっているから、バグを直すのもかなりたいへんになってきてるyo 開発をドンドン進めてるけど、製品テストの時間をあまりとってないので、もうちょっと試用時間を多くすれば、まだまだ細かなバグがみつかるかもしれないne バグを潰しきってから次のステップへ進まないと、あとあと修正するのはたいへんかもねw もうちょっと思いついてることがあるので、それを搭載したらしばらく実用テストに時間をかけようと思うyo 漢字辞書ももう少し字の意味と内容の関係性をもたせたいと思うので、ちょっと時間をかけて調整してから仕様を確定させたいと思うんだよne(野心的笑)
Zkun Beatの進化は止まらないyo 入力簡略化の機能をさらに強化したyo 第1小節を全体にコピーするボタン、第1〜4小節を全体にコピーするボタンをつけたyo これで基本となるリズムをいったん全体に仮コピーしておいて、変化をつけるところだけいじればよくなるから、入力の手間がますます省けるようになったyo(優れ笑)
あと、黄色いセレクタは横方向に自動コピー入力できて便利なんだけど、時にはコピーしない方が助かる場合もあるよne そんなときのために黄色いセレクタの機能をON/OFFできるボタンもつくったyo OFFにすると黄色い着色が消えるので、見た目上もすぐ区別がついてわかりやすい機能だyo(賢い笑)
さらに面白機能として、テキストをコピペしてパターンデータを入出力する機能をつけたyo クッキー保存はすでに導入しているけど、テキストでパターンのやり取りができるようになると、掲示板上に文字列を貼るだけでファイル交換ができるので便利じゃないかなw メールでパターンを送ることもできるしne(未来的笑) えらく高機能になってきたyo(ドヤ顔笑)
あと、黄色いセレクタは横方向に自動コピー入力できて便利なんだけど、時にはコピーしない方が助かる場合もあるよne そんなときのために黄色いセレクタの機能をON/OFFできるボタンもつくったyo OFFにすると黄色い着色が消えるので、見た目上もすぐ区別がついてわかりやすい機能だyo(賢い笑)
さらに面白機能として、テキストをコピペしてパターンデータを入出力する機能をつけたyo クッキー保存はすでに導入しているけど、テキストでパターンのやり取りができるようになると、掲示板上に文字列を貼るだけでファイル交換ができるので便利じゃないかなw メールでパターンを送ることもできるしne(未来的笑) えらく高機能になってきたyo(ドヤ顔笑)
とりあえず長い小節数をループできるようにしてしまおうということで改造したyo 最初はひたすら右へ伸ばして横に移動しながら操作するものを作ってみたyo それだけならほんの3分で改造が完了したyo(失笑) もともとそういう構造になっていたから、右へむかってリピート回数を増やすだけw ただ、それだとリピートの状況とかもわかりにくいし、パターンを見通しにくいからあまり使い勝手のいいものにはならないよne やはり4小節単位でのループを考えるならば画面を折り返さなくちゃねw
ところが、これを実際にプログラムしようとすると、めちゃくちゃ面倒くさいw(大苦笑) 柔軟構造でインスト数を自由に増減できるようにしているから、何小節にしてインストいくつにした場合の各行の先頭小節に作るFORMはいったい何番目のFORMになるか、とか細かい設定をシミュレーションして作らないといけないので、なかなか骨の折れる作業になったyo v1.4のバグ取りで非常に鍛えられたせいか、かなり完成度の高いv1.5に仕上がったyo
内部構造を完璧に構築したので、4の倍数ならば理論上何百小節でも増設可能だyo まあ、操作がめんどくさいし、動作も重くなるから実際は無茶な話だろうけどne とりあえず32小節までのループができるようにしてあるので、童謡とか短いオールディーズならこれで直入力可能かもねw
ところが、これを実際にプログラムしようとすると、めちゃくちゃ面倒くさいw(大苦笑) 柔軟構造でインスト数を自由に増減できるようにしているから、何小節にしてインストいくつにした場合の各行の先頭小節に作るFORMはいったい何番目のFORMになるか、とか細かい設定をシミュレーションして作らないといけないので、なかなか骨の折れる作業になったyo v1.4のバグ取りで非常に鍛えられたせいか、かなり完成度の高いv1.5に仕上がったyo
内部構造を完璧に構築したので、4の倍数ならば理論上何百小節でも増設可能だyo まあ、操作がめんどくさいし、動作も重くなるから実際は無茶な話だろうけどne とりあえず32小節までのループができるようにしてあるので、童謡とか短いオールディーズならこれで直入力可能かもねw
Beat v1.4でクッキー保存がなんだか途中からおかしくなって、どこをどう検証してみてもおかしいところはないように思われる。セレクトとオプションの動作自体は論理的に正しく反応しているし、idとかinnerHTMLもずれてるわけでもない。じゃあ、なんでクッキーが崩れるの? と不思議に思い、変数を片っ端から表示させてみても特に異常はない。最終的にクッキーを読み書きする汎用ルーチンの部分になにか問題があると考えた。
この汎用ルーチン自体は以前から別のスクリプトで安定して動いていたもので信頼を置いていたのだが、どう考えてもここでトラブっているとしか考えられない。document.cookieそのものを大きなテキストエリアに表示して挙動を見てみた。すると、こちらの読み込み動作に反応して、キーワードにひっかかる部分がその都度前へ送り出されているようだ。こんな挙動をしているとは夢にも思ってなかったw そして、Keyword=という行が出てくるよりも前に、なんだかよくわからんkeyword%、、、みたいな行があって、それが邪魔をしているようだった。その行にはoptionという単語や、ほかのキーワード名がいくつか並んでいたので、ははあ!と勘づいたyo
その行は、おそらくパターン名をつけてクッキーに書き込みを行い、その名前で<option>をつくってidをその名前でつけて、<select>の内部に入れこむ作業を行ったときになぜか生成される一時的な文字列で、そいつもdocument.cookieを仮置き場に使っていたということのようなのだw それでいくらやっても途中から正しく読み込めなくなっていたみたい。こんなの、どんな本を読んでも調べることも気付くこともできないよwww(無理ゲー笑)
そこで、これまではそんな妨害を受けたことがなかったので正常に機能していたクッキー読み書き汎用ルーチンを一部改造して、「keyword=」まで「=」を含めて検索させるようにしたら、document.cookieの先頭にほしいデータが現れるようになり、正しくパターンデータを取り出せるようになったyo かなり焦ったけど、原因を着実につきとめていけば、直せないバグはないよne こんなことをしてるうちに、Safariのメニューで「開発」というところをいろいろいじっていくと、どこでエラーが発生しているか、どんなタイプのエラーなのかがある程度表示されるということもわかってきたし、なかなか便利な時代になってきたなあと実感したyo まあ、以前はほんとにテキストエディタのみで書いていたのでバグとりは鬼だったけどw(死笑)
でも、今回のクッキーの不具合は、文法自体にエラーがあったものではなく、勝手に違う場所から見当はずれなデータを読もうとして、結果期待する処理が完了しないという不具合なので、システム上のエラーメッセージが発生せず、いったいどこが悪さしてるのかがさっぱりわからないものだったyo(大苦笑) それでも解決しちゃうんだからボクの分析能力もなかなかたいしたものだと思わないかい?(ドヤ顔笑)
この汎用ルーチン自体は以前から別のスクリプトで安定して動いていたもので信頼を置いていたのだが、どう考えてもここでトラブっているとしか考えられない。document.cookieそのものを大きなテキストエリアに表示して挙動を見てみた。すると、こちらの読み込み動作に反応して、キーワードにひっかかる部分がその都度前へ送り出されているようだ。こんな挙動をしているとは夢にも思ってなかったw そして、Keyword=という行が出てくるよりも前に、なんだかよくわからんkeyword%、、、みたいな行があって、それが邪魔をしているようだった。その行にはoptionという単語や、ほかのキーワード名がいくつか並んでいたので、ははあ!と勘づいたyo
その行は、おそらくパターン名をつけてクッキーに書き込みを行い、その名前で<option>をつくってidをその名前でつけて、<select>の内部に入れこむ作業を行ったときになぜか生成される一時的な文字列で、そいつもdocument.cookieを仮置き場に使っていたということのようなのだw それでいくらやっても途中から正しく読み込めなくなっていたみたい。こんなの、どんな本を読んでも調べることも気付くこともできないよwww(無理ゲー笑)
そこで、これまではそんな妨害を受けたことがなかったので正常に機能していたクッキー読み書き汎用ルーチンを一部改造して、「keyword=」まで「=」を含めて検索させるようにしたら、document.cookieの先頭にほしいデータが現れるようになり、正しくパターンデータを取り出せるようになったyo かなり焦ったけど、原因を着実につきとめていけば、直せないバグはないよne こんなことをしてるうちに、Safariのメニューで「開発」というところをいろいろいじっていくと、どこでエラーが発生しているか、どんなタイプのエラーなのかがある程度表示されるということもわかってきたし、なかなか便利な時代になってきたなあと実感したyo まあ、以前はほんとにテキストエディタのみで書いていたのでバグとりは鬼だったけどw(死笑)
でも、今回のクッキーの不具合は、文法自体にエラーがあったものではなく、勝手に違う場所から見当はずれなデータを読もうとして、結果期待する処理が完了しないという不具合なので、システム上のエラーメッセージが発生せず、いったいどこが悪さしてるのかがさっぱりわからないものだったyo(大苦笑) それでも解決しちゃうんだからボクの分析能力もなかなかたいしたものだと思わないかい?(ドヤ顔笑)
4小節までのループならこれでオッケーだyo 最大16インストまで同時使用できるように改造したyo 小節数(Bars)とインスト数(Instruments)をセレクトして「Redraw」ボタンを押せば画面が更新されて新しいグリッドが出現するyo
各インストはセレクタで自由に指定できるyo しかも、各インストごとにベロシティー調整のスライダーをつけたので、音量バランスの調整ができるyo どうしてもシンバルの「強」と「弱」を鳴らしたいと思ったら、シンバルを2つ別々にインストにアサインして、ベロシテイーで差をつけてやればいいyo(解決笑)
さらに進化させたのは、クッキー保存に対応させたことだyo 作ったパターンに名前をつけて保存して画面上のリストウインドウに名前を表示し、そいつを選択してロードボタンを押せば、そのパターンの設定が画面上に展開されるようにしたyo これで手軽にいくつものパターンを切り替えて演奏できるようになったne ちなみにPLAY中でもリアルタイムでパターンが切り替わるのでなかなかよく動いてるyo
4小節までならほぼバッチリというところまで完成したので、英語版も作って海外向けリリースをするyo 英語版のほうでは意味不明と思われるので「漢字表示」は非表示にしてるyo(苦笑) まあ、内部ではバッチリ漢字変換しながら動いてるんだけどne(含み笑)
各インストはセレクタで自由に指定できるyo しかも、各インストごとにベロシティー調整のスライダーをつけたので、音量バランスの調整ができるyo どうしてもシンバルの「強」と「弱」を鳴らしたいと思ったら、シンバルを2つ別々にインストにアサインして、ベロシテイーで差をつけてやればいいyo(解決笑)
さらに進化させたのは、クッキー保存に対応させたことだyo 作ったパターンに名前をつけて保存して画面上のリストウインドウに名前を表示し、そいつを選択してロードボタンを押せば、そのパターンの設定が画面上に展開されるようにしたyo これで手軽にいくつものパターンを切り替えて演奏できるようになったne ちなみにPLAY中でもリアルタイムでパターンが切り替わるのでなかなかよく動いてるyo
4小節までならほぼバッチリというところまで完成したので、英語版も作って海外向けリリースをするyo 英語版のほうでは意味不明と思われるので「漢字表示」は非表示にしてるyo(苦笑) まあ、内部ではバッチリ漢字変換しながら動いてるんだけどne(含み笑)
v1.3での追加点は、作成できるループ長を1〜4小節にのばしたことと、4つのインストをそれぞれ自由に選択指定できるようにしたことだyo それに伴い、先頭小節でセレクタを使ってパターンを入力すると、そのインストの後続小節にも自動的に同じパターンが仮入力される「オートコピー機能」を搭載してみたyo ほとんどの場合、基本となるビートパターンは同じで一部に変化を入れるというのがセオリーだから、この「オートコピー機能」は入力の手間を省くのに絶大な効果を発揮すると思うyo もちろん、仮入力された後も各小節についているセレクタで独自に変更することができるし、直接各グリッドのチェックボックスをクリックして細かくエディットすることができるyo
でも、進化はまだまだこんなもんじゃないyo 今すでに次のv1.4が半分以上完成してるけど、次は一挙に大進化するyo 4小節までならほとんどこれでいいんじゃないか?というところまでいくyo(含み笑) そうすると、その次のv1.5は当然4小節よりも長いループへと目が行くんだけど、それ以上の長さになってくると、ループというよりは「曲」になってくるよne しかも、5小節とか7小節のループとかはまず利用されず、ほとんどが4の倍数でたまに1とか2とかが混ざるというのが実態だよne つまり、最長4小節のループを並べていくことでそれ以上の長さのループを構成していけば実際は事足りるし、むしろ8小節もの長いループを個別に作っても再利用する機会が少なく、4小節単位で統一したほうが効率がよいかなとも思うんだよne つまり、そこから先はソングエディターにしたほうがいいんじゃないかということだyo
まあ、純粋に技術的な興味もあるからv1.5でとりあえず8小節ループも作ってみるyo それが完成すれば、16も32も64も同様にできるから、長くすることに関しては開発完了するからne ただ、実際は4小節単位で組み立てる方向性でv1.6以降を構想していこうと思うyo(技術者笑)
でも、進化はまだまだこんなもんじゃないyo 今すでに次のv1.4が半分以上完成してるけど、次は一挙に大進化するyo 4小節までならほとんどこれでいいんじゃないか?というところまでいくyo(含み笑) そうすると、その次のv1.5は当然4小節よりも長いループへと目が行くんだけど、それ以上の長さになってくると、ループというよりは「曲」になってくるよne しかも、5小節とか7小節のループとかはまず利用されず、ほとんどが4の倍数でたまに1とか2とかが混ざるというのが実態だよne つまり、最長4小節のループを並べていくことでそれ以上の長さのループを構成していけば実際は事足りるし、むしろ8小節もの長いループを個別に作っても再利用する機会が少なく、4小節単位で統一したほうが効率がよいかなとも思うんだよne つまり、そこから先はソングエディターにしたほうがいいんじゃないかということだyo
まあ、純粋に技術的な興味もあるからv1.5でとりあえず8小節ループも作ってみるyo それが完成すれば、16も32も64も同様にできるから、長くすることに関しては開発完了するからne ただ、実際は4小節単位で組み立てる方向性でv1.6以降を構想していこうと思うyo(技術者笑)
Recorder v1.0は接続したMIDIキーボードからの演奏をレコーディングして、プレイバックしたりMIDIファイルに保存したりできるプログラムだyo Examplesのやつは録音中にモニター音が出ないし演奏の内容も表示されないけど、Recorder v1.0ではそこを改造して可能にしているyo まだまだ改良の余地があるけどとりあえず最低限の機能でリリースしてみたyo
Beat v1.2では2小節のドラムパターンをループ再生できるようにしたyo 単に2倍にしただけでなく、エレメントの自動生成方式に内部構造を作り替えたので、今後容易に小節数を増やしていくことができるようになったyo さらに、今どこのタイミングを演奏しているかを点灯するインジケーターもつけたので、ドラムマシーンっぽさが増したyo(微笑)
Beat v1.2では2小節のドラムパターンをループ再生できるようにしたyo 単に2倍にしただけでなく、エレメントの自動生成方式に内部構造を作り替えたので、今後容易に小節数を増やしていくことができるようになったyo さらに、今どこのタイミングを演奏しているかを点灯するインジケーターもつけたので、ドラムマシーンっぽさが増したyo(微笑)
Beat v1.1にさっそくアップデートしたyo 各インストのグリッドパターンを「漢字名」に変換する機構を開発したyo 2拍分の8ビットパターンを2バイト文字に変換して、漢字1文字で表すという仕組みだyo 最初はそのまんま文字コードの一部として読みこませて変換してみたんだけど、それだと中国語みたいななんて読むのかわからないような漢字ばかり頻出して、読むこともイメージすることも難しかったので、親しみやすい日本語の漢字256文字を厳選してその中から抽出する方式に変更したんだyo(工夫笑)
「漢字名」なんか付けて何の役に立つのかと思うかもしれないけど、たとえば「間全桃空星菊青島」のたった8文字で1小節分のOH, CH, SD, BDのグリッドパターンを完全に記述できるわけだから、それを配列変数などに格納してプログラム処理をするのが非常に容易になるというメリットがあるんだyo まあ、そのままだと強弱指定のない固定打ちだけど、しょせん機械打ちのリズムを生成するわけで、どこまで細かな表現を目指すかはそれに伴う指定の煩雑さとの兼ね合いを考えながらになると思うんだよne やるとしてもインストごとの音量差にするか、タイミングで全インストに音量差をつけるか、そういう割り切った方式でも十分かもしれないね。まあそのあたりは今後様子を見ながら考えていくyo(含み笑)
MIDI Player v1.0は、Jazz-PluginのExamplesにあったスクリプト3つを合体させたものに「簡易ミキサー」をくっつけたものだyo MIDIファイルを読み込んで中身の詳細を表示し、内蔵音源を使ってプレイバックし、ファイルの書き出しもできてしまうというものだyo まあ、今のところデータをエディットして保存するということは出来ないんだけど、詳細を解析して表示する機構が既にあるのだから、それを逆変換してファイルに戻すプログラムをつくり、詳細表示の代入先をテキストボックスなどに置き替えてやれば、データのエディットもできるようになるなという見通しはすでに立ってるyo そうなると、もう「MIDIシーケンサーソフト」になっちゃうよne(猛烈笑)
ただ、それをやるならちゃんとデザインやユーザーインターフェースを考えてから作らないと、ただただゴチャゴチャと細かく指定できるだけの画面になっちゃうので、手間をかける割には既存のシーケンサー以下の機能性のものしか出来ないと思うので無駄になっちゃうだろうne ボクの目的にあう範囲でデータの一部だけを簡単にエディットできるような機構を実験的に付加してみるという範囲でいいかも。たとえば、音色を変える、初期ボリュームを変える、パンを変える、初期テンポを変える、指定したトラックを削除する、トラックのMIDIチャンネルを変える、ベンドデータを除去する、など用途を限定するならば、それ用のインターフェースだけ作ればいいので簡単になるよne 実際、1音1音を編集するなら市販のDTMソフトを使うに決まってるしねw(妥当笑)
「漢字名」なんか付けて何の役に立つのかと思うかもしれないけど、たとえば「間全桃空星菊青島」のたった8文字で1小節分のOH, CH, SD, BDのグリッドパターンを完全に記述できるわけだから、それを配列変数などに格納してプログラム処理をするのが非常に容易になるというメリットがあるんだyo まあ、そのままだと強弱指定のない固定打ちだけど、しょせん機械打ちのリズムを生成するわけで、どこまで細かな表現を目指すかはそれに伴う指定の煩雑さとの兼ね合いを考えながらになると思うんだよne やるとしてもインストごとの音量差にするか、タイミングで全インストに音量差をつけるか、そういう割り切った方式でも十分かもしれないね。まあそのあたりは今後様子を見ながら考えていくyo(含み笑)
MIDI Player v1.0は、Jazz-PluginのExamplesにあったスクリプト3つを合体させたものに「簡易ミキサー」をくっつけたものだyo MIDIファイルを読み込んで中身の詳細を表示し、内蔵音源を使ってプレイバックし、ファイルの書き出しもできてしまうというものだyo まあ、今のところデータをエディットして保存するということは出来ないんだけど、詳細を解析して表示する機構が既にあるのだから、それを逆変換してファイルに戻すプログラムをつくり、詳細表示の代入先をテキストボックスなどに置き替えてやれば、データのエディットもできるようになるなという見通しはすでに立ってるyo そうなると、もう「MIDIシーケンサーソフト」になっちゃうよne(猛烈笑)
ただ、それをやるならちゃんとデザインやユーザーインターフェースを考えてから作らないと、ただただゴチャゴチャと細かく指定できるだけの画面になっちゃうので、手間をかける割には既存のシーケンサー以下の機能性のものしか出来ないと思うので無駄になっちゃうだろうne ボクの目的にあう範囲でデータの一部だけを簡単にエディットできるような機構を実験的に付加してみるという範囲でいいかも。たとえば、音色を変える、初期ボリュームを変える、パンを変える、初期テンポを変える、指定したトラックを削除する、トラックのMIDIチャンネルを変える、ベンドデータを除去する、など用途を限定するならば、それ用のインターフェースだけ作ればいいので簡単になるよne 実際、1音1音を編集するなら市販のDTMソフトを使うに決まってるしねw(妥当笑)
Zkun Beatはリズムマシンの原形になるものとして制作したyo こいつに色んな機能を付加していって、便利なソフトに進化させていく予定だyo(壮大な笑) とりあえずv1.0として出したけど、特徴はスネア、バスドラなどのインストごとに4ビットの「□■□■」というような1拍分のパターンを2種類選択し、それを自由に4つ並べて1小節分のパターンを作るという方式をとってることだyo パターンは各16通り、並べ方は8通りから選べるので、セレクトメニューを選択するだけで2048通りものグリッドパターンの入力・変更がリアルタイムでできてしまうという優れモノだyo(微笑)
Zkun Keyboard v1.1は、各演奏方式ごとにオクターブ指定をできるようにしたので、PCキーボード下段で弾くベース音だけを2オクターブ下げたいというような指定ができるようになったyo あと、裏技としてマウスキーボードでは和音の「ホールド奏法」もできるようになったyo それに伴って、すべての演奏方式に共通の「All notes off」ボタンもつけたので、ホールドした和音を一括でオフにしたいときや、なぜか音が出っぱなしになったときに押してくれyo(苦笑)
マイナーアップデートの場合はファイル名最後の11と10だけを変えてUploadするので、旧バージョンのファイルもサーバー上に残しておくことにするyo メジャーアップデートの場合は名称自体を変更して、右のリンク欄に新たな項目を立てることにするyo 旧バージョンをチェックしたい人はURL末尾の数字を手入力変更してアクセスしてne(細かい笑)
Zkun Keyboard v1.1は、各演奏方式ごとにオクターブ指定をできるようにしたので、PCキーボード下段で弾くベース音だけを2オクターブ下げたいというような指定ができるようになったyo あと、裏技としてマウスキーボードでは和音の「ホールド奏法」もできるようになったyo それに伴って、すべての演奏方式に共通の「All notes off」ボタンもつけたので、ホールドした和音を一括でオフにしたいときや、なぜか音が出っぱなしになったときに押してくれyo(苦笑)
マイナーアップデートの場合はファイル名最後の11と10だけを変えてUploadするので、旧バージョンのファイルもサーバー上に残しておくことにするyo メジャーアップデートの場合は名称自体を変更して、右のリンク欄に新たな項目を立てることにするyo 旧バージョンをチェックしたい人はURL末尾の数字を手入力変更してアクセスしてne(細かい笑)