zkunがいろんなことを横書きするブログのようですw(含み笑)
Zkun Jamを支えている大黒柱はなんと言ってもオートベースだよne そのへんのつまらないシークエンスソフトや伴奏機材なんかよりも、はるかに柔軟で多彩なフレーズを吐き出してくれてるよne これの開発を成功したときに「このソフトはイケるw」と確信を持ったyo 内部ロジックはそのへんのヘッポコベーシストの頭の中とほぼ同等の演算を高速で間違いなくやってくれるので、実際性格的に問題のあるベーシストよりかは、はるかに有能だと思うyo(妥当笑)
そんな偉大なオートベースはデビュー以来ほとんど手をつけてこなかったyo 手をつける必要がないというのもあったけど、かなり複雑に動いているので、ちょっとやそっとの覚悟では修正もおぼつかないくらいややこしいんだyo これをいじるならば、絶好調で内部も隅々までケアできている今しかないでしょwということで着手してみたyo
そもそもの動機は、これまではオートベースがふさわしくない場面では、そこだけオリジナルプレイにモード変更して、打ち込みフレーズを鳴らせばよかったんだけど、最近作ったキーボードパートがオリジナルフレーズを使用してる場合だとそうもいかなくなってきたんだよne 饒舌なオートベースに少し静かにしてほしいんだけど、かと言ってベースをオフにしちゃうと明らかに曲の体裁がおかしくなるよne そこで、コマンドを送って地味にルートの長音などを弾かせることをできるようにしようと考えたわけだyo まあ、アルペジオ記号の応用みたいなもんだけどne そのアルペジオ記号もコード指定特殊記号の応用みたいなものだけどne 開発を続けているといろんなヒントがころがっているというわけだyo
さらに、これまでメインのグルーブを指定する「Hits A」を手動で設定し、あとはB(固定)やC(変動)はランダムに選ばせるという方式だったけど、「HitsB」も手動またはランダムを選べるように改良したyo これで、特定のAとBのコンビネーションを指定しつつも、4拍目はさらに別のパターンをランダムで入れるということも可能になったので、1小節の中でも細かく指定しつつ変化もつけやすくなったyo
さらには、「AAAB」などの1小節のHits Changeのパターンもこの機会に一挙に増量したyo これはプログラム的には単純なことなんだけど、「HitsB」の個別指定が可能になったことで増やす意味が生まれたというところがあるんだよne
これらもすべて完全上位互換で読み書き対応させているので、新機能を特にいじらないなら全く従来どおりに使えるyo それがzkunの方針だからne
オートベース以外にも大きく変更したところがあるyo 「Recording」のメニューを廃止して、再生ボタンなどと統合させたyo 「REC」「PLAY」という感じでボタン1つに凝縮させたyo 動作自体は変わってないyo 録音終わって「STOP」を押したら、オーバーダブしていいかきいてきて、OKなら録音され、キャンセルなら元と変わらず、という動作だyo ボタンがあっちにもこっちにもあると誤動作のもとなので、1つに統合できるならば統合しようというわけだyo おかげでメニューが1つ減ってレイアウトがすっきりしたyo
あと、これまでのSMF-PLAYを「PLAY」に、旧PLAYを「trace-PLAY」に名称変更したyo 今後は速度的にも勝る「PLAY」をメインにすえて、「trace-PLAY」は進行チェックなど補助的に使うものという位置づけにするyo 高機能化とともに速度的にきつくなってきてるからne でも、ラジオボタンでプレイ位置を表示できる機能や、開始位置を指定して再生する機能はSMF-PLAYには無い機能なので、今後も作曲・編集時用ツールとしてその役目をはたしてもらうことにするyo(感謝笑)
そんな偉大なオートベースはデビュー以来ほとんど手をつけてこなかったyo 手をつける必要がないというのもあったけど、かなり複雑に動いているので、ちょっとやそっとの覚悟では修正もおぼつかないくらいややこしいんだyo これをいじるならば、絶好調で内部も隅々までケアできている今しかないでしょwということで着手してみたyo
そもそもの動機は、これまではオートベースがふさわしくない場面では、そこだけオリジナルプレイにモード変更して、打ち込みフレーズを鳴らせばよかったんだけど、最近作ったキーボードパートがオリジナルフレーズを使用してる場合だとそうもいかなくなってきたんだよne 饒舌なオートベースに少し静かにしてほしいんだけど、かと言ってベースをオフにしちゃうと明らかに曲の体裁がおかしくなるよne そこで、コマンドを送って地味にルートの長音などを弾かせることをできるようにしようと考えたわけだyo まあ、アルペジオ記号の応用みたいなもんだけどne そのアルペジオ記号もコード指定特殊記号の応用みたいなものだけどne 開発を続けているといろんなヒントがころがっているというわけだyo
さらに、これまでメインのグルーブを指定する「Hits A」を手動で設定し、あとはB(固定)やC(変動)はランダムに選ばせるという方式だったけど、「HitsB」も手動またはランダムを選べるように改良したyo これで、特定のAとBのコンビネーションを指定しつつも、4拍目はさらに別のパターンをランダムで入れるということも可能になったので、1小節の中でも細かく指定しつつ変化もつけやすくなったyo
さらには、「AAAB」などの1小節のHits Changeのパターンもこの機会に一挙に増量したyo これはプログラム的には単純なことなんだけど、「HitsB」の個別指定が可能になったことで増やす意味が生まれたというところがあるんだよne
これらもすべて完全上位互換で読み書き対応させているので、新機能を特にいじらないなら全く従来どおりに使えるyo それがzkunの方針だからne
オートベース以外にも大きく変更したところがあるyo 「Recording」のメニューを廃止して、再生ボタンなどと統合させたyo 「REC」「PLAY」という感じでボタン1つに凝縮させたyo 動作自体は変わってないyo 録音終わって「STOP」を押したら、オーバーダブしていいかきいてきて、OKなら録音され、キャンセルなら元と変わらず、という動作だyo ボタンがあっちにもこっちにもあると誤動作のもとなので、1つに統合できるならば統合しようというわけだyo おかげでメニューが1つ減ってレイアウトがすっきりしたyo
あと、これまでのSMF-PLAYを「PLAY」に、旧PLAYを「trace-PLAY」に名称変更したyo 今後は速度的にも勝る「PLAY」をメインにすえて、「trace-PLAY」は進行チェックなど補助的に使うものという位置づけにするyo 高機能化とともに速度的にきつくなってきてるからne でも、ラジオボタンでプレイ位置を表示できる機能や、開始位置を指定して再生する機能はSMF-PLAYには無い機能なので、今後も作曲・編集時用ツールとしてその役目をはたしてもらうことにするyo(感謝笑)
PR
ランダムにコード進行を埋める際、条件に合うものがどうしても選べない場合にフリーズしてしまうケースがあったので、これを改めて、特定回数ランダムでやっても駄目なら先頭からシラミつぶしで照合していき、それでも駄目なら最悪一番末尾の進行を使うという方式に変更したyo やはりフリーズはよくないからne(妥当笑) あと各行末尾のコードが7thでない場合は7thにするように変更してみたyo
レコーディングの際、先にオケの再生が終了した場合、レコーディングメニュー内の「STOP」ボタンも連動してdisableになっていたけど、これだと録音終了ができなくなってしまうので挙動を変更したyo あくまでも録音中はレコーディングメニュー内の「STOP」を押すまでは録音が継続され、それを押した時点で書き込みをするかどうかのダイアログが出るという仕様だyo(作者以外わかってない笑)
曲データを読み込んだとき、曲全体が3ビートの場合は各小節のラジオボタンを12個だけ表示するようになっていたけど、小節単位でのビート変更が含まれていてもそれは表示には反映されてなかったんだけど、これも演奏データ通りに見た目も反映させるように変更したyo これで「Demo Bird」のような変則拍子の曲を読んだときも、見た目で小節の長さがわかりやすくなったyo(妥当笑)
こういう地道な改善が完成度を高めていくと信じているyo(含み笑)
レコーディングの際、先にオケの再生が終了した場合、レコーディングメニュー内の「STOP」ボタンも連動してdisableになっていたけど、これだと録音終了ができなくなってしまうので挙動を変更したyo あくまでも録音中はレコーディングメニュー内の「STOP」を押すまでは録音が継続され、それを押した時点で書き込みをするかどうかのダイアログが出るという仕様だyo(作者以外わかってない笑)
曲データを読み込んだとき、曲全体が3ビートの場合は各小節のラジオボタンを12個だけ表示するようになっていたけど、小節単位でのビート変更が含まれていてもそれは表示には反映されてなかったんだけど、これも演奏データ通りに見た目も反映させるように変更したyo これで「Demo Bird」のような変則拍子の曲を読んだときも、見た目で小節の長さがわかりやすくなったyo(妥当笑)
こういう地道な改善が完成度を高めていくと信じているyo(含み笑)
重要なことに気付いたyo 旧再生のほうでは、「レファラレ」というコードから「ファラレファ」という高いコードに移る場合、プログラムのループ処理の順番の都合で前のファを消したときに新しいファも消音されてしまうという現象が起こっていることに気付いたyo なるほど、単純にコード構成音第1から第5に向けて、各々消音→発音の順で処理していたから、たった今鳴らした新しい音が消そうとしている音と同じ高さだったら消音されてしまうよなw(納得笑)
というわけで、先に消音を全部処理し終えてから、発音を全部やるという処理順に変更したyo これでスッキリ問題解決したyo しかし去年の夏からやってるのに今までこの問題に気付いてなかったとはw(大苦笑) つくづくあまりキーボード和音を弾かないボクだということがバレてしまうようだne
このブログに掲載しているマニュアルへのリンクも画面下部につけたyo まだ書き上げてないマニュアルもあるので、早々に埋めていこうと思うyo 言葉で説明するのはけっこう難しいんだよne 特に英単語でもなるべく意味をとれるようにしてるんだけど、内容が込み入ってくると、日本語で説明することでやっとという場合も多くなってきてるんだよne
あと、新機能もつけたyo 「CHORD MENU」に「ランダム進行で埋める」というボタンをつくったyo これを押すと、今表示されているスコアシートをランダムに選んだ4コード進行で埋めていくyo 一応、4小節ごとに強進行でつながるようにトランスポーズだけはしてあるよw(失笑) 最後の小節は先頭に続くように、つながりやすいようなパターンが選べるまでループさせてるので、たまにフリーズするかもしれないyo 上のセレクタでスタートキーと短調か長調かだけは選べるようになってるyo まあ、お遊び的な機能なのでこれで自動作曲とは言わないけど、部分的にハッとするようなコード進行が埋もれているのを発見することができるので、アイデア探しに利用すればおもしろいかもしれないyo(含み笑) もうちょっと素材となっている4小節コード進行の量と質を上げたいところだne なんせ今入れてるやつは2ちゃんで拾った4コード進行だから、ネタやジョークのもまざってると思うからne どっかのサイトで良質のものをまとめてないかなw(物色笑)
というわけで、先に消音を全部処理し終えてから、発音を全部やるという処理順に変更したyo これでスッキリ問題解決したyo しかし去年の夏からやってるのに今までこの問題に気付いてなかったとはw(大苦笑) つくづくあまりキーボード和音を弾かないボクだということがバレてしまうようだne
このブログに掲載しているマニュアルへのリンクも画面下部につけたyo まだ書き上げてないマニュアルもあるので、早々に埋めていこうと思うyo 言葉で説明するのはけっこう難しいんだよne 特に英単語でもなるべく意味をとれるようにしてるんだけど、内容が込み入ってくると、日本語で説明することでやっとという場合も多くなってきてるんだよne
あと、新機能もつけたyo 「CHORD MENU」に「ランダム進行で埋める」というボタンをつくったyo これを押すと、今表示されているスコアシートをランダムに選んだ4コード進行で埋めていくyo 一応、4小節ごとに強進行でつながるようにトランスポーズだけはしてあるよw(失笑) 最後の小節は先頭に続くように、つながりやすいようなパターンが選べるまでループさせてるので、たまにフリーズするかもしれないyo 上のセレクタでスタートキーと短調か長調かだけは選べるようになってるyo まあ、お遊び的な機能なのでこれで自動作曲とは言わないけど、部分的にハッとするようなコード進行が埋もれているのを発見することができるので、アイデア探しに利用すればおもしろいかもしれないyo(含み笑) もうちょっと素材となっている4小節コード進行の量と質を上げたいところだne なんせ今入れてるやつは2ちゃんで拾った4コード進行だから、ネタやジョークのもまざってると思うからne どっかのサイトで良質のものをまとめてないかなw(物色笑)
これも結構簡単にできちゃったyo もとの設計が秀逸なので何を作るのも簡単になってきたyo 既存のルーチンをほとんど使い回しできるので、一生懸命コードを打ち込まなくちゃいけないことが減ってきたよne(効率のいい笑)
詳しくはJamの画面下の「コード表記の手引き」に説明をのせてるyo 概要を説明すると「Cm7/G」とかコード記号を記載しているボックスに「Cm7/G*OLHR」のように「*」で始まる4文字のアルファベット大文字をくっつけるだけで、その「拍」で演奏するアルペジオを記述できてしまうというものだyo コード構成音最大5音に対してオクターブ上下の指定と休符の選択もできて実に15文字の中から選べるので、15x15x15x15=50625通りものアルペジオパターンを1拍の中で指定できるというわけだyo(呆れ笑)
もちろん、これまで通りのかんたんアルペジオ指定も有効で、ランダムもカスタムもこれまで通り動作するよ。デモソング「Demoming」では曲の基本アルペジオを上部メニューのセレクタで選んでおき、それ以外のパターンで鳴らしたい「拍」でのみ「*OFMLR」のような下りフレーズを指定して変化させてるyo 有効な記述がある場合のみアルペジオ記号が優先され、そうでない場合は従来のセレクタで指定されているアルペジオパターンが鳴るというわけだyo
これの音長やベロシティは「GUITARIST」メニュー内のセレクタで従来どおりに設定されるyo 音がプチプチする感じがある場合は音長を変えてやれば自然に聴こえる場合があるようだyo
あと細かいことだけど、小節ブロックの行もドラムパターンエディターと同様に、個別に折り畳むこともできるように「close」ボタンをつけたyo 長い曲でドラムパターンエディターを見ながら作業したいときに便利になったよne
これは別件だけど、Firefoxでは「Recording」機能だけが動いてくれないようだne クロムとオペラではオンラインならちゃんと動くのだが。まあ、クセの強いFirefoxはなかなか一筋縄ではいかないne(苦笑) これについてはプラグイン側で対応しないと無理そうなのでボクにはどうすることもできないと思うyo(無理な笑)
さらに別件だけど、Firefoxのエラーコンソール画面は秀逸だねw 重大なエラーはエラーで表示されるけど、それ以外の書式ミスや勘違いの誤記なども「警告」という形で全部リストアップしてくれるんだne おかげで「;」を「:」に打ち間違えてるところや、存在しない属性を指定してるところなんかを全部指摘してくれるので、そこを直したら、どうもおかしいな?と思ってたボタンサイズが正しく直せるようになったりと、色々目からウロコだったyo たまには違うブラウザをいじってみるとまた新しい発見があるものだne 時々Firefoxで開いてみるだけでバグチェックになるならありがたいことだyo(含み笑)
詳しくはJamの画面下の「コード表記の手引き」に説明をのせてるyo 概要を説明すると「Cm7/G」とかコード記号を記載しているボックスに「Cm7/G*OLHR」のように「*」で始まる4文字のアルファベット大文字をくっつけるだけで、その「拍」で演奏するアルペジオを記述できてしまうというものだyo コード構成音最大5音に対してオクターブ上下の指定と休符の選択もできて実に15文字の中から選べるので、15x15x15x15=50625通りものアルペジオパターンを1拍の中で指定できるというわけだyo(呆れ笑)
もちろん、これまで通りのかんたんアルペジオ指定も有効で、ランダムもカスタムもこれまで通り動作するよ。デモソング「Demoming」では曲の基本アルペジオを上部メニューのセレクタで選んでおき、それ以外のパターンで鳴らしたい「拍」でのみ「*OFMLR」のような下りフレーズを指定して変化させてるyo 有効な記述がある場合のみアルペジオ記号が優先され、そうでない場合は従来のセレクタで指定されているアルペジオパターンが鳴るというわけだyo
これの音長やベロシティは「GUITARIST」メニュー内のセレクタで従来どおりに設定されるyo 音がプチプチする感じがある場合は音長を変えてやれば自然に聴こえる場合があるようだyo
あと細かいことだけど、小節ブロックの行もドラムパターンエディターと同様に、個別に折り畳むこともできるように「close」ボタンをつけたyo 長い曲でドラムパターンエディターを見ながら作業したいときに便利になったよne
これは別件だけど、Firefoxでは「Recording」機能だけが動いてくれないようだne クロムとオペラではオンラインならちゃんと動くのだが。まあ、クセの強いFirefoxはなかなか一筋縄ではいかないne(苦笑) これについてはプラグイン側で対応しないと無理そうなのでボクにはどうすることもできないと思うyo(無理な笑)
さらに別件だけど、Firefoxのエラーコンソール画面は秀逸だねw 重大なエラーはエラーで表示されるけど、それ以外の書式ミスや勘違いの誤記なども「警告」という形で全部リストアップしてくれるんだne おかげで「;」を「:」に打ち間違えてるところや、存在しない属性を指定してるところなんかを全部指摘してくれるので、そこを直したら、どうもおかしいな?と思ってたボタンサイズが正しく直せるようになったりと、色々目からウロコだったyo たまには違うブラウザをいじってみるとまた新しい発見があるものだne 時々Firefoxで開いてみるだけでバグチェックになるならありがたいことだyo(含み笑)
フレーズエディターを改造して平凡なHTMLに変更したおかげで、上部メニューの位置ズレの心配もなくなり、自由にサイズ変更とかができるようになったyo さらにはその移植しやすい構造を利用して、アルペジオのフレーズ指定をするエディターも簡単に作ることができたので作ってみたyo
「CUSTOM Arp」というメニューを開くと、どこかで見たような画面が開くyo 左4つが「Custom1」で、右4つが「Custom2」だyo これらを矢印ボタンで上下させてやると、それぞれルート音からテンションノートまで上下するので、その止まってる位置でアルペジオの4音パターンが形成されるというわけだyo これは転送等をしなくてもそのまんまシステムに反映されるので、その状態のままピアノプレイモードで「Arpeggio」を選び、アクティブになるセレクタで下のほうに追加した「Custom1」か「Custom2」を選んでやれば、もうその4音パターンでアルペジオを始めるという超簡単オペレーションだyo
アルペジオ各音のベロシティは「GUITARIST」メニューで通常は指定できるんだけど、Customに関してだけはこのページで指定したベロシティが使われるという仕様になってるyo あと、アルペジオの音の長さは「GUITARIST」メニューでの指定が有効だyo この2つのページは兄弟ページともいうべき密接な関係があるので覚えておいてくれw
あと素晴らしい機能が「Custom1+2」という機能だyo これはアルペジオパターンの「Random by 2」を元に考案したもので、要は「奇数拍ならCustom1、偶数拍ならCustom2が有効になる」というものだyo つまり、2つ合わせて「8音パターン」のアルペジオの繰り返しを作れるというわけだyo ややこしいプログラミングがいるかなあと思っていたら、わずか1分で書き終えちゃったyo(ひらめき笑) これを使えばrest(休符)をまじえながら、ところどころ長音を使ったフレーズを作れるので、ぐっと表現の幅が広がるはずだyo コツとしては「GUITARIST」メニューで音の長さを3か4にしておくと、音の伸びが生きた感じのギターっぽいアルペジオになりやすいと思うyo
この機構もSaveTextB形式で保存すれば、空き領域にきちんと保存されて読み書きできるので、テキストからの読み込みですべて再現可能だyo だんだん段取りが手慣れてきたので一発でそこまで対応できるようになってきたyo(微笑)
次の段階として考えているのは、拍ごとのコード指定記号の中に、使うアルペジオの種類を指定する符号を設定してやれば、それが書かれていたらこのアルペジオパターンを使うというような細かな使い分けが可能になるよne そして、そこまで細かく使い分けられるようになるならば、現行の12パターン+ランダム+カスタム2個という枠にとらわれず、もっと膨大なパターンを定義して使い分けることも可能だろう。さらに言えば、コード指定欄に直接記述するような方式で読み込めるようにすれば、いちいちパターン番号とかを参照しなくてもよくなるよな。どこまでやるかは検討の余地があるけど、拍単位で細かく指定できるようになれば、曲データ全体の中でアルペジオの使い道が大きく広がることはまちがいないよne(納得笑)
「CUSTOM Arp」というメニューを開くと、どこかで見たような画面が開くyo 左4つが「Custom1」で、右4つが「Custom2」だyo これらを矢印ボタンで上下させてやると、それぞれルート音からテンションノートまで上下するので、その止まってる位置でアルペジオの4音パターンが形成されるというわけだyo これは転送等をしなくてもそのまんまシステムに反映されるので、その状態のままピアノプレイモードで「Arpeggio」を選び、アクティブになるセレクタで下のほうに追加した「Custom1」か「Custom2」を選んでやれば、もうその4音パターンでアルペジオを始めるという超簡単オペレーションだyo
アルペジオ各音のベロシティは「GUITARIST」メニューで通常は指定できるんだけど、Customに関してだけはこのページで指定したベロシティが使われるという仕様になってるyo あと、アルペジオの音の長さは「GUITARIST」メニューでの指定が有効だyo この2つのページは兄弟ページともいうべき密接な関係があるので覚えておいてくれw
あと素晴らしい機能が「Custom1+2」という機能だyo これはアルペジオパターンの「Random by 2」を元に考案したもので、要は「奇数拍ならCustom1、偶数拍ならCustom2が有効になる」というものだyo つまり、2つ合わせて「8音パターン」のアルペジオの繰り返しを作れるというわけだyo ややこしいプログラミングがいるかなあと思っていたら、わずか1分で書き終えちゃったyo(ひらめき笑) これを使えばrest(休符)をまじえながら、ところどころ長音を使ったフレーズを作れるので、ぐっと表現の幅が広がるはずだyo コツとしては「GUITARIST」メニューで音の長さを3か4にしておくと、音の伸びが生きた感じのギターっぽいアルペジオになりやすいと思うyo
この機構もSaveTextB形式で保存すれば、空き領域にきちんと保存されて読み書きできるので、テキストからの読み込みですべて再現可能だyo だんだん段取りが手慣れてきたので一発でそこまで対応できるようになってきたyo(微笑)
次の段階として考えているのは、拍ごとのコード指定記号の中に、使うアルペジオの種類を指定する符号を設定してやれば、それが書かれていたらこのアルペジオパターンを使うというような細かな使い分けが可能になるよne そして、そこまで細かく使い分けられるようになるならば、現行の12パターン+ランダム+カスタム2個という枠にとらわれず、もっと膨大なパターンを定義して使い分けることも可能だろう。さらに言えば、コード指定欄に直接記述するような方式で読み込めるようにすれば、いちいちパターン番号とかを参照しなくてもよくなるよな。どこまでやるかは検討の余地があるけど、拍単位で細かく指定できるようになれば、曲データ全体の中でアルペジオの使い道が大きく広がることはまちがいないよne(納得笑)
日曜丸一日かけて、フレーズエディターを根本からつくり直したyo(疲れ笑) 今度はドラッグしたマウスイベントを拾うという手法は使わず、↑↓ボタンで上下させるという枯れた技術を使ってつくったので、どのブラウザでも確実に動くし、位置指定がややこしくなって調整が面倒になることもないyo 操作性はSafariだけで言えば若干落ちたけど、この程度の差ならば汎用性のほうが重要なので構わないyo 機能自体は従来のベースエディターと全く同じで、矢印ボタン以外についてはデザインもほぼ同じにしてるyo
唯一変更したのは、持続音を指定している場合、従来は途中のスライダーを動かそうと思っても動作ロックがかかっていて、先にチェックボックスを外さないとスライダーを動かせないというあまりにも凝り過ぎた仕様になっていたyo しかし、変更したいから動かそうとするのであって、むしろ「動かした場合はロックが解除される」という仕様のほうがストレスがたまらないと思ったので変更したyo ただ、前後のつながりが思ってるとおりにならない場合も起こりうるんだけど、そこは「プレビュー再生機能」がついてるので、聴きながら確認できるのでそれはもう自己責任で判断してもらうことにするyo プレビュー再生できてる通りの音がエクスポートされるので、間違いようがないよne(さむらごうち笑)
ほかにもテーブルのサイズやフォント、余白などなど諸々の指定を調整して、どうにか4ブラウザでふつうに使える状態に整備できたと思うyo Firefox問題も回避できたので、無事フレーズエディターを動かすことができるようになってるyo たった一日ですべて解決しちゃうボクはなかなか有能かもしれないne(上から笑) ただし、こういうものは趣味でやるから楽しいのであって、業務でやったら最低で、二度と画面に向かいたくなくなるだろうne 仕事にしていいものとすべきでないものがあるよne(含み笑)
唯一変更したのは、持続音を指定している場合、従来は途中のスライダーを動かそうと思っても動作ロックがかかっていて、先にチェックボックスを外さないとスライダーを動かせないというあまりにも凝り過ぎた仕様になっていたyo しかし、変更したいから動かそうとするのであって、むしろ「動かした場合はロックが解除される」という仕様のほうがストレスがたまらないと思ったので変更したyo ただ、前後のつながりが思ってるとおりにならない場合も起こりうるんだけど、そこは「プレビュー再生機能」がついてるので、聴きながら確認できるのでそれはもう自己責任で判断してもらうことにするyo プレビュー再生できてる通りの音がエクスポートされるので、間違いようがないよne(さむらごうち笑)
ほかにもテーブルのサイズやフォント、余白などなど諸々の指定を調整して、どうにか4ブラウザでふつうに使える状態に整備できたと思うyo Firefox問題も回避できたので、無事フレーズエディターを動かすことができるようになってるyo たった一日ですべて解決しちゃうボクはなかなか有能かもしれないne(上から笑) ただし、こういうものは趣味でやるから楽しいのであって、業務でやったら最低で、二度と画面に向かいたくなくなるだろうne 仕事にしていいものとすべきでないものがあるよne(含み笑)
文字化けしてるとイチャモンつけてきた人がいたので、はじめてSafari以外のブラウザでJamを開いてみたyo 昔はいちいち各種ブラウザでの見え方とかまで気を配りながらWebをつくってたことがあったけど、はっきり言ってきりがないのである時期から全くやらなくなったんだよne
同じマージンやパディングを指定しても、ブラウザごとにてんでバラバラの間隔で表示されるので、細かく指定しだすと本当にキリがないw(呆れ笑) ブラウザごとに指定をしない場合のデフォルト値とかが違うので、結局すべてをガチガチにドット単位で指定する羽目になるけど、それでも色々例外ルールがあって、結局レイアウトは同じにならないんだよne(虚しい笑) そんなことでストレスをためるよりも、プログラム自体に専念するほうがどう考えても賢いだろ? キリがついた所で、ざっとまとめて一度にケアして、だいたい操作に支障がなくなればいいんだyo(妥当笑)
今回はまずクロムを見たよ。激しくレイアウトがずれていたne(大苦笑) サファリのデフォルト値のほどよさに甘えて、あまりこと細かに指定をしてないからねw(微笑) フォントサイズや行間、幅や高さなどを調整していったyo 各小節ブロックを18px広げればマック版クロムでもまあまあまともなレイアウトになるので、思い切ってちょっと拡幅したyo サファリ的にはちょっとラジオボタンの間が空くんだけど、まあ多くのユーザーのことを考えて目をつぶるyo それに最近は旧再生からSMF再生にメインが移ってきてるので、ラジオボタンを追う機会も減ってきてるということもあるしne
Firefoxではクロムで直した分でだいたいオッケーだったyo ただ、これはキャビ研究所を作ったときから分かってたんだけど、マウスイベントの記述方法が異なるので、「フレーズエディター」が現状ではFirefoxでは動かないんだよne ブラウザを判別して動作させる記述方法もできるんだけど、なんせマウスイベントに関することなのではっきり言って処理が重くなりそうで二の足を踏むんだよne
ただし、「フレーズエディター」はあまりにも凝った作りのため、サファリ以外のすべてのブラウザでレイアウトがずれちゃってるんだよne(苦笑) そのへんも含めて大改造をしたほうがよさそうな感じなので、そのときにFirefoxでも共用で動くような仕組みに変更するかもしれないyo 動作原理自体は完璧に仕上がっているので、UI部分を再考してみるyo
Operaも見たけど、まあだいたい同じだne とりあえず1度サファリでJazz-Pluginをインストールしてあると、ほかのすべてのブラウザでもそのまま利用できるということもわかったyo あっ、ウインドウズでの検証はいっさいしてないから、動くのかどうかもわからないyo(Winには完全に興味ない笑) それにしても元々のJazz-Pluginを作った人は本当にすごいと思うyo ボクはその人の手のひらの上で遊んでるようなものだよne(微笑)
同じマージンやパディングを指定しても、ブラウザごとにてんでバラバラの間隔で表示されるので、細かく指定しだすと本当にキリがないw(呆れ笑) ブラウザごとに指定をしない場合のデフォルト値とかが違うので、結局すべてをガチガチにドット単位で指定する羽目になるけど、それでも色々例外ルールがあって、結局レイアウトは同じにならないんだよne(虚しい笑) そんなことでストレスをためるよりも、プログラム自体に専念するほうがどう考えても賢いだろ? キリがついた所で、ざっとまとめて一度にケアして、だいたい操作に支障がなくなればいいんだyo(妥当笑)
今回はまずクロムを見たよ。激しくレイアウトがずれていたne(大苦笑) サファリのデフォルト値のほどよさに甘えて、あまりこと細かに指定をしてないからねw(微笑) フォントサイズや行間、幅や高さなどを調整していったyo 各小節ブロックを18px広げればマック版クロムでもまあまあまともなレイアウトになるので、思い切ってちょっと拡幅したyo サファリ的にはちょっとラジオボタンの間が空くんだけど、まあ多くのユーザーのことを考えて目をつぶるyo それに最近は旧再生からSMF再生にメインが移ってきてるので、ラジオボタンを追う機会も減ってきてるということもあるしne
Firefoxではクロムで直した分でだいたいオッケーだったyo ただ、これはキャビ研究所を作ったときから分かってたんだけど、マウスイベントの記述方法が異なるので、「フレーズエディター」が現状ではFirefoxでは動かないんだよne ブラウザを判別して動作させる記述方法もできるんだけど、なんせマウスイベントに関することなのではっきり言って処理が重くなりそうで二の足を踏むんだよne
ただし、「フレーズエディター」はあまりにも凝った作りのため、サファリ以外のすべてのブラウザでレイアウトがずれちゃってるんだよne(苦笑) そのへんも含めて大改造をしたほうがよさそうな感じなので、そのときにFirefoxでも共用で動くような仕組みに変更するかもしれないyo 動作原理自体は完璧に仕上がっているので、UI部分を再考してみるyo
Operaも見たけど、まあだいたい同じだne とりあえず1度サファリでJazz-Pluginをインストールしてあると、ほかのすべてのブラウザでもそのまま利用できるということもわかったyo あっ、ウインドウズでの検証はいっさいしてないから、動くのかどうかもわからないyo(Winには完全に興味ない笑) それにしても元々のJazz-Pluginを作った人は本当にすごいと思うyo ボクはその人の手のひらの上で遊んでるようなものだよne(微笑)
ピッチベンドは超簡単だったyo(失笑) ノートオンと同じ書式と同じ個数のパラメータだったので、分岐を増やして数値を変えるだけで一丁上がりだったyo ついでにコントロールチェンジもほぼ同様だったので、モジュレーション、エクスプレッション、パンもホイールコントロールを受信すれば反映するようにさせたyo これで十分だよne てか、これ以上はQuickTime音源のほうが対応してないからw(苦笑) あまりにも簡単にアプデできたのでバージョンとしては同一のままにしておくyo 外観もまるで変わってないしne(含み笑)
とりあえずSaveTextB書式のデモを1個作ったyo 「目覚めよと呼ぶ声がする」だyo ドラムはハットだけの地味なパターン。ベースパートはオートベースにしてピチカートストリングスを効果音的に鳴らさせてみたyo ピアノパートはコードを「Cz」のようなルート音だけのコード指定にして、アコースティックベースで実質的なベース音を鳴らさせてるyo PCKeyboardパートは打ち込み入力でドローバーオルガンでメインメロディーを演奏させてるyo 1番はこれら4パートだけで演奏させてるよ。リピートした2番では、MIDIキーボードパートでちょこっとだけ歌唱部分を録音してみたyo(鍵盤は苦手笑) このように、録音パートは繰り返しの各回ごとに別々の状態を録音できるので、1番だけ出てくるフレーズ、2番だけ出てくるフレーズなどを鳴らさせるのにも都合がいいという性質をもっているyo(あとづけ笑)
いやあ、物凄いところまで来たne あとはアルペジオパターンにもう少し発展させる余地があるように思うんだけど、まあ現行でも十分といえば十分だけどね。今の4音パターンのままバリエーションを増やす方法と、8音一組にしてもう少し長めの「よくあるアルペジオパターン」を表現させる方法とが考えられるんだけど、どちらもけっこう大ごとになるのであまり気が進まないyo 特に8音化しようとするとかなり改造しないといけないからne(苦笑) まあ、しばらくバグチェックを進めながら考えるyo(余裕の笑)
とりあえずSaveTextB書式のデモを1個作ったyo 「目覚めよと呼ぶ声がする」だyo ドラムはハットだけの地味なパターン。ベースパートはオートベースにしてピチカートストリングスを効果音的に鳴らさせてみたyo ピアノパートはコードを「Cz」のようなルート音だけのコード指定にして、アコースティックベースで実質的なベース音を鳴らさせてるyo PCKeyboardパートは打ち込み入力でドローバーオルガンでメインメロディーを演奏させてるyo 1番はこれら4パートだけで演奏させてるよ。リピートした2番では、MIDIキーボードパートでちょこっとだけ歌唱部分を録音してみたyo(鍵盤は苦手笑) このように、録音パートは繰り返しの各回ごとに別々の状態を録音できるので、1番だけ出てくるフレーズ、2番だけ出てくるフレーズなどを鳴らさせるのにも都合がいいという性質をもっているyo(あとづけ笑)
いやあ、物凄いところまで来たne あとはアルペジオパターンにもう少し発展させる余地があるように思うんだけど、まあ現行でも十分といえば十分だけどね。今の4音パターンのままバリエーションを増やす方法と、8音一組にしてもう少し長めの「よくあるアルペジオパターン」を表現させる方法とが考えられるんだけど、どちらもけっこう大ごとになるのであまり気が進まないyo 特に8音化しようとするとかなり改造しないといけないからne(苦笑) まあ、しばらくバグチェックを進めながら考えるyo(余裕の笑)
さらに試行錯誤していたら、うまいこと多重録音したトラックだけを分離してテキスト変換する方法がわかったのでさっそく改造してみたyo これによって、多くの制約がとっぱらわれて、多重録音の合間でもほかのトラックの音色やプレイモードなどを変更できるようになったし、演奏を録音した状態のスコアシートを再び開いて作業を続けることが可能になったyo 保存形式として新たに「SaveTextB」形式を定義したyo これは「SaveText」の上位互換なので、これまでのDEMO SONGのデータもそのまま読めるyo 録音データなしの曲データとして読めるというわけさw それに録音を付加して新たに「SaveTextB」テキストで保存しておけば、次に読み込んだときは録音付きの「SaveTextB」データとして読めちゃうというわけだyo
この技術ができたことで、やろうと思えば複数トラックで録音パートの読み書きをさせて、さらに多くの楽器パートを同時に鳴らすことも可能になったne でも、それらを生演奏録音していかなくちゃならないとなると手軽さは失われていくし、あとからエディットとかもできないのでDTMソフトとしてはえらく不便だしne(苦笑) それはもうZkun Jamの範囲を超えてしまうので、やるとしたら別ソフトになるだろうね。
ただ、midiの生データを1つずつ抽出することも可能になってるので、めちゃくちゃ頑張れば、録音したデータを小節ごとに区切って、必要ならクオンタイズして、フレーズデータに変換してOriginal Playの窓で表示させるということも理論的には不可能ではなくなってるんだよne ただ、そこまでやる意味があるかどうかw(疑問な笑) 細かく作り込みたければCubaseを使えばいいんだからne(妥当笑) Jamでしかできない超簡単なオケ作成こそがキモなのであって、操作が煩雑になるならボク自身も多分使わないw(賢明な笑)
次にトライすべきは、ピッチベンドへの対応だろうね。現状では実はNote ON とNote OFFしか録音できないんだよねw(失笑) まあ鍵盤楽器はいいんだけど、ギターっぽくチョーキングのフレーズを収録できてこそ生演奏レコーディングを付加した意味が大きいと思うからne 次回バージョンではぜひともピッチベンド対応を実現しようじゃないかw データサイズが大きくなりそうでこわいけどne(苦笑)
この技術ができたことで、やろうと思えば複数トラックで録音パートの読み書きをさせて、さらに多くの楽器パートを同時に鳴らすことも可能になったne でも、それらを生演奏録音していかなくちゃならないとなると手軽さは失われていくし、あとからエディットとかもできないのでDTMソフトとしてはえらく不便だしne(苦笑) それはもうZkun Jamの範囲を超えてしまうので、やるとしたら別ソフトになるだろうね。
ただ、midiの生データを1つずつ抽出することも可能になってるので、めちゃくちゃ頑張れば、録音したデータを小節ごとに区切って、必要ならクオンタイズして、フレーズデータに変換してOriginal Playの窓で表示させるということも理論的には不可能ではなくなってるんだよne ただ、そこまでやる意味があるかどうかw(疑問な笑) 細かく作り込みたければCubaseを使えばいいんだからne(妥当笑) Jamでしかできない超簡単なオケ作成こそがキモなのであって、操作が煩雑になるならボク自身も多分使わないw(賢明な笑)
次にトライすべきは、ピッチベンドへの対応だろうね。現状では実はNote ON とNote OFFしか録音できないんだよねw(失笑) まあ鍵盤楽器はいいんだけど、ギターっぽくチョーキングのフレーズを収録できてこそ生演奏レコーディングを付加した意味が大きいと思うからne 次回バージョンではぜひともピッチベンド対応を実現しようじゃないかw データサイズが大きくなりそうでこわいけどne(苦笑)
PCキーボードパートの次はMIDIキーボードでの演奏を録音できるようにしたyo とは言ってもまあ制約はいっぱいあるけどne そこはもう本格的なMIDIシーケンサーではないんだから、とりあえず簡易な録音ができれば儲け物くらいに思って使ってくれyo(苦笑) マジで録音したけりゃCubaseでも使いなよって話だしne(さすがに笑)
でも作る以上はあまり粗末なものにはしないyo Jamで作った演奏パターンを鳴らしながら同時録音が可能なので、演奏性という点では申し分ないyo さらに重ね録りを何回でもオーバーダビングしていくことができるので、たとえば4小節分くらいずつ成功した演奏だけをOKにして足し込んでいって、長い演奏を完成させることも可能だyo また上下2声のメロディーを2回に分けて録音して重ねることもできるyo 発音数に特に制限もないyo
よいことずくめのようだけど、これはSMFファイルにしか保存できないので、Jamのスコアシートに読み込んで展開して再編集できるような構造ではないyo あくまでも出来上がったJamの曲データに最後に生演奏をミックスしてSMFで書き出すという使い方になるyo PCキーボードパートのほうが曲データとして編集・変更が可能という点では優れているということになるyo(一長一短笑)
いろいろ細かな操作説明や注意書きは画面のほうに書いてあるからよく読んでくれyo 作るのも結構ややこしくてたいへんだったyo ふだんは全く使うことのないバイナリの構造やら変換やら、ろくな参考文献もなしにJazz-Pluginのルールを類推しながら作ってるので、どこまでができてどこまでができないのかすらよくわかってないんだよne(大苦笑) それでもたとえばテンポ90の曲がしっかりズレなく録音再生できてるし、補正機構も考えてつけたし、多重録音まで出来るとは自分でも思ってなかったけど、あれこれいじってるうちに、これなら理論上いくらでも多重にかぶせられるよなというのが見えてきて搭載したという感じだyo(迷走笑)
Base64テキストをボタンで直接再生する仕組みも「FILE MENU」に作ったし、だんだんカオス状態になってきたne(失笑) そのうちメニュー体系をもう一度整理するときがくるかもしれないne まあ、必要がなければ新機能は使わなければいいだけで、新たな設定もいらないし、アプデも強制されないし、当然課金も発生しないw ボクのプログラムは時代へのアンチテーゼになっているんだyo(偏屈笑)
でも作る以上はあまり粗末なものにはしないyo Jamで作った演奏パターンを鳴らしながら同時録音が可能なので、演奏性という点では申し分ないyo さらに重ね録りを何回でもオーバーダビングしていくことができるので、たとえば4小節分くらいずつ成功した演奏だけをOKにして足し込んでいって、長い演奏を完成させることも可能だyo また上下2声のメロディーを2回に分けて録音して重ねることもできるyo 発音数に特に制限もないyo
よいことずくめのようだけど、これはSMFファイルにしか保存できないので、Jamのスコアシートに読み込んで展開して再編集できるような構造ではないyo あくまでも出来上がったJamの曲データに最後に生演奏をミックスしてSMFで書き出すという使い方になるyo PCキーボードパートのほうが曲データとして編集・変更が可能という点では優れているということになるyo(一長一短笑)
いろいろ細かな操作説明や注意書きは画面のほうに書いてあるからよく読んでくれyo 作るのも結構ややこしくてたいへんだったyo ふだんは全く使うことのないバイナリの構造やら変換やら、ろくな参考文献もなしにJazz-Pluginのルールを類推しながら作ってるので、どこまでができてどこまでができないのかすらよくわかってないんだよne(大苦笑) それでもたとえばテンポ90の曲がしっかりズレなく録音再生できてるし、補正機構も考えてつけたし、多重録音まで出来るとは自分でも思ってなかったけど、あれこれいじってるうちに、これなら理論上いくらでも多重にかぶせられるよなというのが見えてきて搭載したという感じだyo(迷走笑)
Base64テキストをボタンで直接再生する仕組みも「FILE MENU」に作ったし、だんだんカオス状態になってきたne(失笑) そのうちメニュー体系をもう一度整理するときがくるかもしれないne まあ、必要がなければ新機能は使わなければいいだけで、新たな設定もいらないし、アプデも強制されないし、当然課金も発生しないw ボクのプログラムは時代へのアンチテーゼになっているんだyo(偏屈笑)