blog

Profile

mewlist
mewlist
寄り道する
音楽バカ
  • mixi
  • friendfeed
  • twitter

  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2

Categories

Discography

  • Unities_128 UNiTiES
    2009
  • Human_128 HUMAN
    2005
midiom Version0.93を公開しました。
サーチ機能が搭載されました。強力な、データ抽出、変換機能を提供します。
STedのものに近い構文を用いますが、基本的な部分は各エディットボックスに入力することで自動的にスクリプトを組み上げるようにしてあります。ヘルプではまだ十分な解説ができていません。以下、補足します。


[動作モード]
・コピーモードでは、サーチに適合したデータをコピーバッファにコピーします。
・削除モードでは、削除します。
・カットモードでは、コピーした後に削除します。
・コンバートモードでは、選択されたデータタイプのデータへ、変換スクリプトを適用し、変換します。


[変換スクリプトの動作順]
先頭から逐次実行します。演算子に優先順位はありません。

+5 *2 /1.2 +100

では5を足した結果を2倍し、その結果を1.2で割り、最後に100を足しこみます。

[サーチ範囲]
選択範囲がある場合は、選択範囲内。無い場合は、全データを対象にサーチを行います。

--------------------------------------------------

マーカー機能を搭載しました。
マーカーの1と2はそれぞれ、Loop範囲に対応します。Shift+Ctrl+数字キーでマーカーの書き込みが行えるため、エディタ上からキーボードのみでループ範囲の設定が行えます。
また、いつでも、 Ctrl+Lでループ再生スイッチをトグルできるようになりました。

---------------------------------------------------

メジャープレイ機能を搭載しました。数値エディタ上でのみ動作します。(グリッドエディタ上にも実装予定)
[Mキー]でレコンポーザのメジャープレイに似た動作を行えます。

---------------------------------------------------

[グローバルリンクスイッチ]
トラックエディタのツールバーにボタンが一つ増えました。
このスイッチをオンにすることで、すべての数値入力エディタ、グリッドエディタのカーソル位置がリンクします。

---------------------------------------------------

フレーズ上で、Shift+Tabでフレーズをすぐに編集できます。

---------------------------------------------------

たくさんの方からご意見いただきました。ありがとうございます。
今回のバージョンで対応可能なものはいくつか実装されています。
時間的、設計的な制約もありますが、可能なものは対応したいと思っております。


midiom Version0.913を公開しました。
変更点は以下のとおりです。

・ピッチベンド入力レンジ設定ができるようになりました。
・ピッチベンドデータに相対音階入力が行えるようになりました。
・トラックの削除に確認ダイアログを出すようにしました。
・グリッドエディタで、ノートデータ選択状態でヴェロシティレーンを編集した場合に、選択されたノートデータのみのヴェロシティを変更するように変更。(同時刻に重なったデータでも、マウスでヴェロシティを個別に編集できるようになりました)

ピッチベンド関連の機能詳細は、ヘルプの該当箇所をご覧ください。


midiom Version0.91を公開しました。
数値入力エディタ部の、MIDI入力モードに、レコンポーザのMONO, POLYモード相当のモードを追加しました。

インサートモードが通常モードの場合、

既存ノート上では、ノートの変更、
ノート以外のデータ上では、次のノートへカーソルを進め、
終端では新規データの作成を行います。

挿入、上書きモードでは、
カーソル位置に新規データを作成します。


midiom Version0.9を公開しました。
midiomサイトへ

スケジュールは遅れていますが、開発は着々と進んでいます。プレビュー版の最終系列となるmidiom Version0.9を公開開始しました。

本バージョンより、グリッドエディタが使用できるようになっています。基本的な機能は、多くのピアノロール型エディタと同等であるため、初心者の方でも扱うことが出来ると思います。


本バージョンより、製品版を見据えてインストーラを実装してみました。

サンプルソングも用意したいところですが、時間がないため、あしからず。

グリッドエディタはキーボードでの作業効率を考えて作られています。とくに、ヴェロシティを数字キーで設定できる機能は、様々な場面で効率があがります。ノートを範囲選択後、一括してヴェロシティを設定するなどの操作もワンタッチで行えます。

それでは、前回のバージョンから時間がだいぶ経ってしまいましたが、是非使ってみてください。


MIDI入力フィルタの考察
MIDIフィルタは一般的に特定のMIDI情報をそぎ落とす目的に使用される。僕が使用するケースとしては、MIDIキーボードの Ch.AfterTouch (MIDI規格的にはKeyPressure)情報がピアノのような演奏情報にまぎれてしまうことによって、データの見通しが悪くなってしまう場合に、AfterTouchの信号をフィルタリングすることがある。

普通は、AftertTouchに限らず、ControlChangeやProgramChange, Pitch情報などもフィルタリングの対象となりうるが、これらの情報は、演奏者が意図的に出力しようとしない限り送信されることはないため、使用目的は限られてくる。(いまどきMIDIケーブル経由でタイミングが劣化していくのを承知でトラックのコピーをすることはないと、思うが、もちろんそういう場合の利用法もある)

そこで、CubaseSXに搭載されているロジカルプリセット(だったか?)のように、データの削除のみならず、データの変換に重きを置いたものを実装してみた。

現在完成している仕様では、多段でフィルタを組むことが出来るようになっており、MIDIキーボードのピッチベンドコントローラを、ControlChangeのデータ変更に使用するといった情報の変換機能を持つ。

そして、Procedureへの変換も可能であり、さらに、MIDI Throughに設定されたポートへのリアルタイム情報変換送信が可能である。

単純にmidiomを立ち上げ、演奏情報を一度midiomを通してスルーすることによって、複雑な音源設定をピッチベンドコントローラのような一般的に用いられるコントローラで制御可能となる。もちろん、変換された情報はレコーディング可能である。

ex.
----------------------------------------------
鍵盤のノートオン --(convert)--> CuttOff Frequency
----------------------------------------------

この変換によって、MIDI鍵盤によるリボンコントローラのような操作が可能である。(離鍵時の動作はリボンコントローラとはまったく異なっているが)
ロータリーエンコーダでは出来なかったような、離散的なデータ入力が、鍵盤というインターフェイスを利用することで可能になるという点で、ちょっと面白いのではないだろうか。

ん・・・? ということは、日の目をみないOffVelocityなどもコンバートされること前提で利用価値がでてくるような・・・。うちのキーボード、律儀にOffVelocityを吐き出しているようなので、面白いかも。


そういった、MIDIフィルタに特化したツールソフトウェアなんかも別コンセプトで作ると面白いのかな・・・?


midiomもうすぐ完成するかなー
最近、「midiomの完成まだか?」と周囲の人間に言われる機会が多くなって、「今月中には!」と、先月から言っているのですが、5月半ばには製品版出せそう? な、ペースでやってます。

ピアノロール型編集機能である「グリッドエディタ」はすでに完成しており、数値入力部の完成度に遜色ない出来であると自負してます。キーボードで操作が出来るピアノロールエディタがどんなものか、期待してくださるとうれしいです。

去年のように、家に引きこもって開発を続けることが出来なくなってしまったため、ペースは落ちているのですが、現在、空き時間を利用して残された作業に取り組んでいます。

もう一年以上もこれのプログラムやってるんだよなぁ・・・。
感慨深い。


演算機能を試してみる


演算機能がどのようなアプローチを許すのかテスト。

発音状態のパートにピッチ情報を演算機能によって生成してみる。

<%media(20050408-midiomSEDemo.mp3|listen mp3)%>("Microsoft GS Wavetable SW Synth"にて再生)

"Microsoft GS Wavetable SW Synth"のバグかわからないのだが、ピッチベンドをフルレートに近い頻度で送信するとPCの電源が落ちることがあるので危険だ。

面白い。

命令郡の羅列を見る限り何をやっているかはわかりにくい。今後関数を追加していくことで、なにやら怪しげなSEを作るのに重宝するかも。


進捗状況
グリッドエディタのノート編集機能の骨子がほぼ完成。

マウスオペレーションによる一般的なピアノロール型編集機能と、キーボードオペレーションによる新機軸のグリッド編集機能。

数値エディタとのカーソル連動によって、レコンポーザの楽譜ビューのようなデータモニタとしても使用できるが、やはり、数値入力型のエディタでは面倒な、絶対位置を意識した編集が容易であることが大きい。

現在は、骨組みの段階で、コントローラ部のGUI編集機能は未着手であるため、もう少し時間がかかりそう。

新しいピアノロール
作っていくうちに、実はそんなにCubaseなんかのピアノロールと変わらなくなっていっている。 キーボードでノートデータをゼロから打ち込めるという部分に関しては、いくらか試験的に使用してみて、ドラムトラックエディタとピアノロールエディタを統一的に扱えるという利点がある。

GUIソフトウェアの設計は決して難しいものでは無いのだが、やはり膨大な作業量と、直感的ではないコーディングが理由で、時間は多くかかってしまう。

----------------------------------------------------

開発は休むこと無く続けています。次は製品に近い形のβ版になると思います。現段階で、midiomの提案すべき「数値入力エディタ」の、存在価値は確かめられたので、製品版をじっくり作っていきたいと思います。


以下、質問頂いたことに関して言及します。

----------------------------------------------------
・「Cherry(ふみぃ氏)のVCC(バーチャルコントロールチェンジ)は搭載されていないのか?」

midiomでは「プロシージャ」という機能が該当します。VCCと同様に、一連の設定記述(CC、Exclusive)を取りまとめ、ワンコマンドで設定可能で、また、他CCと同様に、コントロールカーブによる連続記述も可能です。

プロシージャは、今後仕様拡張を考えていますが、現在の仕様で恐らくほとんどのことを行えます。

プロシージャを使用する利点として、
「ポイントプレイ(途中再生)」時に、音源状態が正常に再生されます。

単にExclusiveの生データを記述した場合は、midiomの再生エンジンは、各Exclusiveが、どのような設定記述なのかを知るすべがありません。この場合に、音源状態を再現するために曲の頭からすべてのエクスクルーシブメッセージを音源に送信することは、現実的な解決方法ではありません。エクスクルーシブメッセージの送信には適当な間隔を置かなければならないため、ポイントプレイの度に何秒も再生開始を待たなければいけないといった状況が起こる可能性があります。

しかし、この設定記述をプロシージャとして登録することで、midiomは同一のプロシージャが連続記述された場合、再生開始位置の直前のプロシージャ記述のみ、音源に送信すれば良いだけとなるため、すべてのデータを送信する必要は無く、負荷が低くなります。

しかし、GMリセットのような、音源状態をすべて変更してしまいかねない、再生開始時に一度だけ送信すれば良いようなデータは、問題を起こします。

解決方法として、このようなデータは、必ず先頭トラックの最初に配置する必要があります。セットアップトラックという概念は、あくまでもmidiomの上に乗っかった概念になってしまうため、問題が起こるデータも作成できてしまうでしょう。

他のシーケンサでは、再生オプションで設定できるものもあります。

midiomにおいては、すべてのデータが目に見える形で存在するということが重要であるため、このような設定は行いません。

とはいえ、もう少しスマートな解決方法を考えてみたいと思います。

(追記) スマートな問題解決方法が、思いつきました。データ入力者が注意を払う必要はなくなります。

----------------------------------------------------
・自動小節線入力に関して

設計段階から、自由な小節線の入力は考慮していません。私の判断では、その自由度による恩恵よりも、自由に入力できることで生じるリスクのほうが大きいと感じました。
ループに関しても同様の理由です。


その代わりとして、小節繰り返し(セイムミーズ)機能と、フレーズ機能を使っていただきたいところなのですが、この部分に関しても現在仕様変更を考えています。

小節繰り返し機能は使いどころは多いのですが、開始位置が各小節の先頭しか設定できないという部分は使い勝手の悪いものになっています。

そこで、手動小節線の変わりに、ある一連のデータの開始位置を示すマーカーイベントを挿入できるようにし、セイムミーズコマンドにてマーカーを呼び出し対象に設定できるようにします。


あけましておめでとうございます



midiom に搭載するピアノロール型エディタには、斬新な機能を提供する予定だ。

このピアノロールエディタは「グリッドエディタ」と呼ばれ、midiomのコンセプトでもあるキーボード操作を主体とした編集機能を持つものである。

既存のピアノロールエディタはよく完成された形であるが、あくまでもマウスでの操作が前提となっているため、編集の性能は頭打ちに思われる。

そこで、midiomではグリッドを編集機能に強く結びつける。ピアノロールには珍しいXYカーソルを持ち、このカーソルはグリッドを縦横無尽に移動する。

ここで発生する、グリッド外のデータに対するカーソルのアクセスという問題は、オートグリッドと呼ばれる機能を用いることによって解決する。

オートグリッドとは、存在するノートデータのタイミングをグリッドに変換し、そのグリッドを用いるという機能である。
これは、レコンポーザで利用されてきたドラムエディタの操作感に似たものである。

オートグリッドと、固定グリッド、そして、すでに数値エディタのクォンタイズで指定したフリークォンタイズのように自由なグリッドを生成するフリーグリッド。この三つのグリッドを行き来することによって、ステップシーケンサのようなドラムトラックメイキング、データの修正、楽譜からのデータ起こしなどの正確な入力をキーボードからすばやく行えるようにする。

グリッドカーソル上のノートに対してのヴェロシティとゲートの指定は、数値エディタ部で行ったようなファンクションキーによるゲートの指定、キーボードの数字キーによる10段階ヴェロシティの指定が可能である。