[HMC]年間5250円で独自ドメイン付属、ウィルスチェックありのレンタルサーバ!
Last update : ----/--/--
MIDI音楽編集ソフト「Domino」(仮)  開発日誌
Ver.1.00リリースまでに使っていた日誌です。
途中で投げ出す可能性もあったので(?)こっそり作っていましたが、
今後はトップページの日記の方へ書いていこうかと思います(?)。

▼ 2007/01/28 晴れ
Domino Ver.1.00 beta005をアップしました。

マニュアルも一通り書き終わりましたので、後はEXEアイコンを待ちながら不具合を修正していき、正式版リリースをしたいと思います。
ここのサイトも日記メインではなくてDomino紹介ページに変えないといけません。
(凝るつもりはないので、すぐに作れるでしょうけど^^;)

今日も不具合報告をありがとうございましたm(_ _)m
以下を修正
  • 「ヘルプ」→「音源定義ファイル情報」の「テーブル表」の並び順がおかしい。

▼ 2007/01/27 晴れ
Domino Ver.1.00 beta004をアップしました。

midiデータいじりを頼まれてdominoで読み込もうと思ったらSMF format0で読めないって事でformat0に急遽対応。

おまけにholdがonになったまま演奏を停止すると音が鳴りっぱなしになる不具合も見つけてしまったため、 演奏時にholdメッセージの監視をして演奏停止時にhold offにするようにしました_| ̄|○

不具合報告もありがとうございました。
早速修正いたしました。
  • 「環境設定」の「マウス操作」で設定する「ノートのプロパティを表示」の効果が無い。
マニュアルも使い方編が終わって、定義ファイル仕様周りを書いています。

▼ 2007/01/26 晴れのち雨
Domino Ver.1.00 beta003をアップしました。

今日は不具合修正およびマニュアル書きをやりました。
修正した不具合は次の通りです。
  • 「MidRadio Player」 で再生すると 「曲のプロパティ」 で入力した曲名が表示されない。
  • ループ再生ボタンが押下されてると任意の場所から再生できない
  • ストロークのダイアログでカスタムを選択して↑↓ボタンをクリックしても↑↓が入力されない
  • トラックリストにてツールクオンタイズの値が反映されない
  • ひとつのトラックに複数のチャンネル情報が混在するMidiFileを読み込むと内容が変化してしまう。
不具合報告、今回もありがとうございましたm(_ _)m

またmidiデータいじりを依頼されてしまったので、数日間そちらで時間をくいそうです。

▼ 2007/01/25 晴れ
帰宅→ZZガンダムのDVDを見る→コタツが居心地良すぎて寝る のパターン。
1時間ぐらいでアラーム掛けてても起きれず。
コタツ恐るべし。
明日はこの罠に引っかからないようにしないと。

マニュアルをちょこっと書いて今日もさっさと寝ます(^^;
明日は不具合に挙がっているMidRadio Playerの調査などをしたいと思います。

▼ 2007/01/24 晴れ
Domino Ver.1.00 beta002をアップしました。

今日も不具合を報告していただいて有り難うございますm(_ _)m
助かります。
早速いくつか修正しました。
  • イベントグラフで「不正な処理」ダイアログが表示される。
  • "曲線のカスタマイズ"アイコン(Y=2X)の右の▼が働いていない
  • (報告はされていませんが)一括変更時に「%」指定が動かない
ノートのGateを長くしまくって、右の方を見に行くと途中でそのノートが表示されなくなる現象がありますが、 設計上仕方ないと言いますか、仕様となります。ただ、その表示する限界値を引き延ばすことは可能ですので、もしご希望とあらば後で「限界値を設定したい」というような要望を出してください^^;;;
(伸ばせば伸ばすほど負荷になる可能性がありますが、これぐらいしか今のところはやりようがありません)

マニュアルも内容の善し悪しはともかく順調に進んでいます。
最近寝不足気味なので今日は早めに寝ますorz

▼ 2007/01/23 晴れ
Domino Ver.1.00 beta001を公開しました。

wikiもwikihouseからwikiwikiへ引っ越したことで、夜でもレスポンスが良くなりました(しかもデザインも結構オシャレ)。
早速不具合を報告していただいてありがとうございますm(_ _)m
今日の更新でいくつか修正いたしましたので、確認をお願いいたします。

  • dominoでSMF書き出ししたファイルをSSWで読むとポートがおかしい場合がある
  • 選択ノートのドラッグ移動時のプレビューがCH1固定になっている
  • SC-8850 の定義ファイルで CH10 以降の 「Part Mode」 の設定がズレてしまう。
  • メニューの[編集(E)]と[イベント(E)]のアクセスキーがダブっている。

今現在、スカッドハンマーをやりつつマニュアル書き中です。
定義ファイルよりはマニュアルの方が楽かな・・・。

▼ 2007/01/22 晴れ
Domino Ver.1.00 beta000を公開しました。

選択範囲に直線・曲線を入力する機能を実装しました。

マウスドラッグ操作でカーブなどを入力すると、開始・終了位置が調節しづらいんですが、この機能を使えば その辺の微調整がしやすくなるかと思います。

昔PC−98のDOSの頃にミュージ郎だとかBallade3だとかを使っていたのですが、 それらのボリュームやエクスプレッション入力がこんな感じの二点指定でした。

ピッチベンドの時に限っては、キー指定をする欄が出まして、現在のピッチベンドレンジと希望のキー(オフセット)を指定することで 自動的にピッチベンド値を算出する事が出来るようになっています。


ピッチベンドレンジとかは、そのトラックのイベント状態を解析して、
ちゃんとその時点でのレンジを導き出して使用しています。


一応これでVer.1.00betaとなりますが、新規ソフトですので不具合が結構出ると思います。
もし不具合を見つけられましたら、お手数ですが不具合報告サイトにて報告をお願いいたします。

ちなみに、不具合報告サイトとしてwikihouseからwikiをレンタルしているのですが、 夜間は結構重いみたいですorz
すぐに移転するかもしれません・・・。

明日からは動作チェック&マニュアル作成作業に入ります。

▼ 2007/01/18 晴れ
最新版:Domino_dev034.ZIP

今日も地味に定義ファイルを更新。
一応SC-8850とGM Level1が終わりました。
GM Level2も作ろうかと思っていましたが、あんまり普及してないみたいなので、要望が多数来てから作ろうかと思います。

Ver.1.00β版までの残件は
  • 選択範囲にイベントカーブを入力する機能の実装
  • EXEアイコン
  • マニュアル
ぐらいまで減りました。

EXEアイコンは知り合いのデザイナーさんが協力してくださるという事で楽しみに待っているところです。
マニュアルはHTML形式(htm)、Win32help形式(hlp)、コンパイル済みHTMLファイル(chm)、MSワード(doc)、 いろんな形式があって迷ったのですが、作りやすさと見やすさで一番バランスの取れているHTML形式にしようかなぁと 思います。

本当はMSワードが一番画像系が楽なんですが、画面上で見ることを考えるとHTML系の方が良いかな、と思います。
(俺はHTMLのマニュアルなんて絶対嫌だぜ!なんて方がいらしたら早めに言ってください。)

#19〜21日は開発をお休みします

▼ 2007/01/17 曇り
最新版:Domino_dev033.ZIP

今日も地味に定義ファイルのみ更新。
EFXマクロ(44〜55)を追加しました。
なんとか明日でSC-8850の定義ファイルは完成しそうだな。。。

▼ 2007/01/16 曇りのち雨
最新版:Domino_dev032.ZIP

今日も地味に定義ファイルのみ更新。
EFXマクロ(30〜43)を追加しました。
明日明後日でEFXマクロは終わらせたいなぁ・・・。
とは言っても直列3〜5でパラメータも20個フルに使ってるやつがゴロゴロ出てくるので大変そう。

不具合&要望管理掲示板もなかなか良いのが見あたらず。
livedoor wikiなんてのが出来たのを思い出したので試してみたけど、#bugtrackプラグインみたいなのないのねorz
(デザインとかレスポンスは良いんですけどね^^;)
wikihouseとかから借りようかなぁ。

今週末(金〜日)はスノボーツアーに行くハメになったので開発はお休みしまーす。
なんか、雪見るのって1〜2年ぶりな気がする・・・。板もサビサビ。

▼ 2007/01/15 晴れ
最新版:Domino_dev031.ZIP

スカッドハンマーズのやり過ぎで右腕が筋肉痛orz
今日は定義ファイルのみ更新。
SC-8850の定義ファイルにEFXマクロ(20〜29)を追加しました。

要望などもちらほら来ていますが、まずは開発当初の設計内容を一通り実装してVer.1.00リリースを目指したいと思います。
(マニュアルが一番面倒くさいですけど。)

その後で要望をちょこっとずつ消化していこうかと思いますが、あんまり沢山要望や質問がメールなどでどかどか来ても 対応しきれなくなってしまう、というか、プログラム組んでるよりメールの返事書いている時間の方が多くなってしまう、 なんて事も過去のソフトで経験していますので、そういう要望・不具合・質問を貯めておけて、かつ管理しやすい掲示板(CGI)がどっかに落ちてないかなぁと、放浪中。

要望対応したら、対応済み!みたいにスレッドタイトルに表示されるやつがいいなぁ・・・。
(無かったら自分で作るか有りモノで我慢するか・・・・)

▼ 2007/01/14 晴れ
最新版:Domino_dev030.ZIP

定義ファイルでは、値と文字の表をValue、Gate毎に自由に定義する事ができるのですが(Entryタグ)、
場合によっては定義済みの表を使い回したい時があるので、
そうしたテーブルの使い回しが出来るようにしました(Tableタグで定義、TableID属性で参照)。
(EFXも結構使い回してるテーブルがあります。)

今回もEFXマクロを追加(05〜19まで)。

あと、定義ファイルの「DefaultTrackList」タグですが、マークの追加やコンダクタートラックの指定、カレントトラックの指定などが 出来るようになりました。 トラック情報以外の情報も入れるようになった影響でタグ名も「DefaultData」に変更しました。

▼ 2007/01/13 晴れ
最新版:Domino_dev029.ZIP

「演奏位置とMIDI機器の状態を合わせる」機能をほんの少しだけ高速化しました。
あと、EFXのマクロを3つ追加
  • 02 Spectrum
  • 03 Enhancer
  • 04 Humanizer
途中でEFXのパラメータの後半で共通の内容が有ることに気がつきまして、
定義ファイル側で「マクロへのリンク」に対応させました。

これで、マクロIDを節約しつつ、全パラメータをツリー内に追加することができるようになりました。
(マクロリンクでは、IDとValue,Gate属性を指定可能)

残りEFX60個orz

▼ 2007/01/12 晴れ
最新版:Domino_dev028.ZIP

CCマクロをいくつか選んで一気に追加する機能を追加しました。

フォルダにチェックを入れると、そのフォルダ内のマクロが全てチェックされます。
これでテンプレートにしなくとも、EQやEFX設定を一度に挿入することが出来るようになりました。

あと、起動直後や新規作成時に用意されるトラック情報は、今まで固定情報を埋め込んでいたのですが、 例えば初期化に必要な情報というのは音源毎によって違いますので、 定義ファイル側で持つようにしました(DefaultTrackListタグ)。

これが無いとトラックが空の状態で立ち上がります^^;
トラック毎にCCを細かく入れることも出来ますし、テンプレートを使って挿入することもできます。

SC-8850定義ファイルの方は、いよいよEFXに突入。
まだStereo-EQしか作ってませんが、マニュアルの情報が飛び飛びで読みづらいですorz
時間掛かりそう・・・。

▼ 2007/01/11 晴れ
最新版:Domino_dev027.ZIP

日記一ヶ月記念。三日坊主にならなくて良かった。
まあでもネタが有るのは今のうちだろうな^^;

今日はマウス操作のカスタマイズ機能を実装しました。


設定を流用しているツールもあるので、全部が全部変えられるわけではないですが、 シングルクリックじゃなくてダブルクリックでノートを置くようにする程度の事は簡単に設定できますので、好きなように変えてください。

あと、ちょこっとメニュー構成もいじって、「イベント」メニューを「挿入」メニューと「イベント」メニューに二分しました。
それから、SC-8850定義ファイルに以下のマクロを追加。
  • Reverb各種パラメータ
  • Chorus各種パラメータ
  • Delay各種パラメータ
SystemEffectフォルダ内に更にフォルダを掘ってそこに入っています。
あんまり階層が深いと不便になってしまうのですが、この辺のパラメータは頻繁に使うモノじゃないのでたぶん大丈夫。
各種パラメータはわざわざテンプレートで用意しないで、「CCマクロをいくつか選んで一気に挿入する機能」を付けて、こっちで挿入してもらうようにしようと思います。

あとはEQと、EFXぐらいでしょうかね。EFXは大変そうだな。。。

EXEアイコンもそろそろ誰かに頼まないとなあ。。。

起動ロゴ(スプラッシュウィンドウ)も作り手側としては付けたいんですが、
ユーザー側としては邪魔くさいだけの存在なんですよね。
そんな画像表示してる暇あったらさっさと起動しろよ、と。
(てか、大抵のソフトってプラグインとかロードするついでに画像表示してるだけなんでしょうけど)

▼ 2007/01/10 晴れ
最新版:Domino_dev026.ZIP

イベントリスト上でCtrl+(Shift+)↑↓したら微調整する機能」は終わったっぽいです。

以前、ちょろっと書いた奴なんですが、

> 民謡アレンジをしている時に思ったのですが、例えばベースパートなんかで「長いGate、短いGate」を
> 繰り返し打ち込んだ後で長いGateの方だけをちょっと変えたい!なんて思うことが時々あります。
> 今までは一個一個ノートを指定してGateをちまちまと変えるしか無かったのですが、
> なんとか「Gate60〜300未満のノートのGateを−10する」みたいな条件付きの一括置換処理が実現できないか検討中

これを実現するために「選択範囲の絞り込み機能」を付けました。
(選択範囲フィルタと言った方が伝わる方もいるかもしれませんが)


この後で一括変換とかやればOKです。


あと、「音源定義ファイルの情報」画面も追加しました。

これに伴って定義ファイル側の属性を増やしまして、ファイルバージョンやWebSiteを指定出来るようになりました。

URLの表示部分のように青くなって下線が入ってマウスオーバーするとカーソルが指になって、クリックするとURLに飛んで・・・みたいな 動きのパーツを作るだけでも30分ぐらいかかってしまいまして、ただの「URLを開く」とかの四角ボタンなら一瞬なのに、デザインにこだわって無駄に(?)時間掛けてしまいます^^;


また、IDの空き状況を確認するために、ID順にCCマクロを表示してみました。

この辺が動いたついでに、SC-8850をちょっとだけ進めてみました。
↓を追加。
  • Part EQ (ON/OFF)
  • Part EFX (ON/OFF)
  • Random Panpot (通常のCCではこれにできないんだよね・・・)
  • Part Mode (normal/drum1/drum2)
  • M/P Mode (mono/poly)
  • Key Shift
この辺りのチャンネルは41hから順に1パート.2パート...という感じで指定しないといけないので、仕方なく#4RCHみたいな変な表記で対応。
システムエフェクトやEFX辺りもどんどん追加していこうかと思います。

▼ 2007/01/09 晴れ
最新版:Domino_dev025.ZIP

先にツールバーカスタマイズ機能を実装しちゃいました。
ツールバーのボタンなどを好きなように並べ替えられます。

コンボボックスとかを複数置いても大丈夫なように設計してあります。
この辺りのカスタマイズ機構はEDGE2からいろいろ流用&拡張しています(^^;

ちなみにEDGE2の頃はコンボボックスしかツールバー上に設置出来なかった(する必要がなかった)のですが、 dominoは小節表示パネルやデフォルトベロシティ入力欄と言ったコンボボックス以外のものも置けるようにしないといけないので、その辺で多少手を入れています。

あと、昨日書いた「イベントリスト上でCtrl+(Shift+)↑↓したら微調整する機能」の実装も始めていまして、 CCイベント辺りはそこそこ動くかと思います。
明日は各種イベントでもこの機能が動くように作り込みたいと思います。

▼ 2007/01/08 晴れ
最新版:Domino_dev024.ZIP

久々に早起き(?)したので眠いー。
今日も残件を実装。
  • テンプレート機能を実装しました。
  • ショートカットキーカスタマイズ機能(環境設定)を実装しました。
  • 演奏位置とMIDI音源の状態を合わせる機能を実装しました(ボリュームとかピッチベンドとか)。
    どこで合わせても100%状態が合う、というわけではありません。

    例えばピッチベンドイベントが沢山存在している場合、一個一個送信するのは無駄ですので、 演奏位置よりも前にある最後のベンドイベントのみを送信しています。

    逆に言うと、最後のイベントだけ処理すればいい、とは言えないイベント、 例えば時系列で順番に送信しないと正しく反映されないイベントはこの方法が使えません。
    (あと、GM System ONとかGS Resetとか時間の掛かるのは、処理してほしくありません)

    現状では、定義ファイルのCCMacroタグのSync属性が"Last"になっているものだけを、上記の方法で処理しています。
    (あとPCイベントも)
    個人的にはこれで十分です。

    自動で状態を合わせるモードにすることもできます(デフォルトではオフ)。
    自動モードの場合は、
    • 演奏位置をピアノロール(またはトラックリスト)で変えた場合
    • マークボタンを押した場合
    に、状態を合わせる処理が行われます。
    試しに再生直前で実行してみたら、もたついたので再生直前での自動実行は止めました^^;
    (再生中にマークボタン押すとわかると思いますが)
    (あと、イベントリストでカーソルを上下に移動させた場合は処理されません。)


    結構短期間でガンガンMIDIメッセージを送信しているので、機種によってはうまくいかないことも あるかもしれません。
明日はイベントリスト上でCtrl+(Shift+)↑↓したら微調整する機能を実装しようかと思います。

▼ 2007/01/07 台風並み
最新版:Domino_dev023.ZIP

明日から仕事開始ってことで憂鬱になりつつ残件実装。

  • Stepロック機能を実装しました。
    Stepロック(赤線)を仕掛けると、それ以前のstep値をいじっても、そこから先には影響しません。

  • End of Trackの位置を現在の演奏位置に来るように調節する機能を実装しました。
    後ろの変な空白時間とかもこれでなくせます。
  • イベントグラフで直線とか描画する際に、ノートイベントの直前にのみ描画するモードを実装しました。
    ランダム値とか使ってノートをグニョグニョさせたいときとかに使えるかも。

  • リズムトラックのデフォルトゲート値を定義ファイル側で指定出来るようにしました。
  • SMF読み込みの際、ポリフォニックキープレッシャーとチャネルプレッシャーはそれぞれCCマクロ130,131に復元していたのですが、 固定ID値を止めて定義ファイルの中から該当するマクロを検索するようにしました(マクロ名ではなくData部分から探っています)。
  • SMF読み込みの際、ProgramChangeイベントの前にBankSekectMSB LSBが有れば、1つのプログラムチェンジイベントにまとめてしまうようにしました。
  • イベントリスト上でProgramChangeイベントのValue値に値を入力出来るようにしました。Valueが出ている時はBankSelect MSB LSBを指定しない単純なProgramChangeイベントとして処理します。
  • ProgramChangeイベントの送信時やSMF書き出し時の順番をMSB→LSBの順にしました。
    それから、PCの値に1引くのを忘れたまま送信&書き出ししていたので、その辺も修正しました^^;
  • イベントリスト上でControlChangeイベントのイベント欄に値もしくは名前を入力する事でマクロを変更出来るようにしました。
    単純に数値を入れればID指定となり、文字などを入れればマクロ名から該当するマクロを検索します。
    例えば「Reso」だけ入力すれば「Resonance」がヒットします。
  • 歌詞イベントやキューポイントイベントにも対応しました。
  • 一昨日、トラックリストにおいて、トラックをドラッグする事で順番を変えることが出来るようになりましたが、ドラッグしない場合の動きがバグっていた不具合を修正しましたorz
  • ピアノロールに別トラックの内容を薄く表示する機能を実装しました(たまねぎボタン)

  • 変数の定義や定義済みの変数の内容を確認・編集・削除ができる変数表画面を実装しました。
  • 定期バックアップ機能を実装しました。環境設定から設定できます。

▼ 2007/01/06 雨のち暴風
最新版:Domino_dev022.ZIP

ソフト名、迷いに迷って「Domino(ドミノ)」にしました。
途中まで作って一回崩れて作り直してるところなんかがまさに・・・。

・・・というのは冗談で、特に意味はありません。
オシャレな雰囲気と、綴りの見た目で決めました。

若干まだ違和感がありますが、たぶんこういう名前って時間が経てば馴染んでくるんでしょうね。
(Wiiも最初変な感じだったけど馴染んじゃったし)

名前が変わった影響で専用ファイルの拡張子もmps→dms(Domino Sequanceファイル)に変わりました。
過去のデータも拡張子を変えるだけで読めます。
EXEアイコンはドッターさんに頼んでみようかなぁ、やってくれる人いるかなぁ^^;

今日は出かけてたりしたので、ろくに開発してないですが、いくつか残件を実装しました。
  • リアルタイム録音機能を実装しました(たまにしか使わない機能ですけど)。
  • 開始小節を0→1に変更しました。
  • 定義ファイルのコントロールチェンジマクロのデータで、空っぽのデータでもエラーにしないようにしました。
    これで、休符みたいなイベントが可能になります。
    とりあえず8850の定義ファイルには、128番にRestを入れておきました。
  • マウスでノートのゲートを変える際に、変なゲート値になる場合がある不具合を修正しました。
あと、SMF書きだしたしたファイルが昨日の修正でSSWでも読めるようになったそうです。

▼ 2007/01/05 晴れ
最新版:Portal_dev021.ZIP

残件をいくつか実装しましたー。
  • SMF書き出しした際のパスを記憶して次回も同じパスへ書き出しやすくする機能
  • トラックリスト画面でトラックをドラッグで並べ替え
  • ステップ録音機能
  • エクスクルーシブ受信機能
  • CCとかテンポとかのアイコン(音色がパレットというのはちょっと強引かも?)
ステップ録音は個人的に全く使わないのでこれで良いのか謎。
今は、リアルタイム録音機能辺りを書いてます。

あと、メールでいくつか不具合報告やらなにやらを頂いたので、そちらをいくつか対応しました。
  • SMF書き出ししたmidファイルがうまく読めない場合がある。
    SSW→よめない(?)
    KbMedia Player→フォーマット欄に「データの一部が壊れています」と警告が表示される

    どうやらコンダクタートラックのend of trackより後ろにマーク情報を書き込んでしまったのが原因だったようです。 一応KbMedia Playerでは警告が出なくなりましたが、SSWで読めるかどうかはまだわかりません。
  • 同じTickに配置してあるノートを一気に移動させるとイベントの順番が逆になる不具合を修正しました。
  • 拍子の分子を8→16に拡張しました。
  • CCイベントのプロパティ画面で、テーブル値:ラベルの、数値部分の横位置を揃えるようにしました。
  • CCイベントのプロパティ画面で、テーブルとキー参照ボタンが両方出るようにしました。

それから、小節の開始についてなんですが、0からじゃなくて1からの方が良いんじゃないかという指摘もありました。
たしかに今までSSW使ってる人からMIDIの編曲依頼なんかが来たときに、「○○小節からのフレーズを・・・」なんて 話をしてたときに一小節ずれてて、「○○小節からですよね?」なんて聞き返してたことがありましたが、 まさかソフトウェア側でずれてたとは思いませんでした_| ̄|○

たしかにその辺のソフト触っても0小節なんて無いので1からにしようかと思います。
(既に保存したmpsデータを読むとマークとか拍子とかの小節情報がずれちゃうかもしんないけどゴメン)

▼ 2007/01/04 晴れ
最新版:Portal_dev020.ZIP

SMF format1での書き出しが動いたっぽいです。
また、直線入力の際のインターバル設定画面や、トラックの追加・削除辺りも実装しました。
これでとりあえずmidiでの制作依頼とかがあっても使えるぐらいの出来になってきました。
(バグってデータ破損とかなきゃいいけどw)

自分で作ってると、いまいち信頼性が無いのが問題だな〜。
(安定性とか信頼性を得るにはどのみち時間が掛かるとは思うけど。)

それから、イベントグラフでピッチベンドとかを入力する際に、ユーザー定義の曲線を使えるようにしました。

↑直線にちょっとランダム値を足すとかが自由にできます。

サイン関数なんかも使えますので、「y1 + sin((x - x1) / 200) * (y2 - y1)」とかすれば

なんてこともできます。
ただ、曲線の式を作るのがめんどくさいし、解りづらいのが難点。


結構ソフトっぽくなってきたところで残件整理。
  • SMF書き出しした際のパスを記憶して次回も同じパスへ書き出しやすくする機能
  • トラックリスト画面でトラックをドラッグで並べ替え
  • ツールバーカスタマイズ機能
  • ショートカットキーカスタマイズ機能
  • 各マウス操作カスタマイズ機能
  • バックアップ機能
  • リアルタイム録音機能
  • ステップ録音機能
  • エクスクルーシブ受信機能
  • Stepロック機能(あるイベントのStepをいじっても、ロックした位置以降には影響しない機能)
  • オニオンスキン機能(他のトラックのノートを一緒に表示する機能)
  • 変数表画面(変数というより定数として使うべき・・・)
  • テンプレート挿入機能
  • イベントグラフの選択範囲へ直線・曲線を入力する機能(数値などで)
  • End of Trackの調節機能(無駄を省いたり引き延ばしたり)
  • 選択範囲の絞り込み(Gate0〜100のみのノートを絞り込むとか)
  • イベントグラフで直線とか描画する際に、ノートイベントの直前にのみ描画するモード
  • 演奏位置とMIDIの状態を合わせる機能(ボリュームとか)
  • プログラムチェンジとかテンポとかのアイコン
  • ツール名の決定(悩み中。ドミノかなぁ。)
  • EXEのアイコン(外注?w)
  • 定義ファイル情報確認機能
  • 定義ファイルの作り込み(こっちで用意できるのはSC-8850, SC-88Pro, GM Level1, GM Level2, GM Liteぐらい?)
  • マニュアル
うあーヽ(´・ω・`)ノ
まだ結構あるなー。

▼ 2007/01/03 晴れ
最新版:Portal_dev019.ZIP

SMF format1の読み込み機能を実装しました。
歌詞イベントなんかはスルーしています。
壊れたファイルを読み込ませると、たぶんバグります。

あと、結構不具合も潜伏してたので、その辺もいくつか潰しました。

次はSMF書き出し辺りをやろうかなぁと思います。

▼ 2007/01/02 曇り
SMF format1を読み込むプログラムを書いている所です。
参考書を読みながらコーディングするだけの、結構地味な作業。
SMFに限った話ではないですが、処理できないイベントとか出てきそう。

▼ 2007/01/01 晴れ
あけましておめでとうございます。
今年もよろしくお願いいたしますm(_ _)m

最新版:Portal_dev018.ZIP

トラックリスト編集画面を実装しました。
Tabキーで瞬時に切り替えられます。

マウス編集系の機能はだいぶ使えるようになってきたかと思います。
趣味に使うにしても、SMF形式での入出力が出来ないと意味がないので、その辺も徐々に実装していこうかと思います。


大晦日の夜から友人らと初詣に行ったのですが、そのときにMidiPortalの正式名称についていろいろ話をしてました。
開発コードネームは「Portal(ポータル)」でして、これは簡単に言ってしまえばmidiをこれから始めようとする人の「入り口」となるようなソフトを目指してこんな名を付けました。
(別に開発コードなんだから何でもいいんですけどw)

ソフト名はとりあえずこの開発コードネームに「Midi」を付け足して「MidiPortal」としてきましたが、ぶっちゃけ長いし「ミディ」って発音しにくい(=呼びにくい)よね、って事で名前を考えてみることに。

とにかく一言でバキッと言える名前が良いなぁとは思います。
メーラーで有名なところだとBecky(ベッキー)とか(笑)

DAWとかで有名なソフトも、短い名前が多いですよね。
  • Logic(ロジック)
  • Cubase(キューベース)
  • Acid(アシッド)
  • Soner(ソナー)
  • SOL2(ソール2)
  • Digital Performer(デジタルパフォーマーってこれは長いか)
あんまり音楽と関係なさそうな名前ばかりというのも、特徴かなぁとも思いつつ、携帯の辞書機能を使ったり、いろんな事を話しながら良いと思った単語をいくつか挙げてみました。

  • Corgi(コーギー)
  • Domino(ドミノ)
  • Seesaw(シーソー)
  • Seeker(シーカー)
  • Tenryu(天龍)
  • Pasta(パスタ)
  • Portal(ポータル)
なんか上から三つぐらいがオシャレでいいんじゃないかなと思っています。
EDGEの時なんて何度も「えどげ」って読まれてたので、ソフトをリリースする際はフリガナは必須です。

あと、ソフト名の前に添える一言ですが、「MIDIシーケンサ」、というか「シーケンサ」って解らん人多いと思うので もうちょっとかみ砕いて「MIDI音楽編集ソフト」とかにしようかなぁと思います。

ベータ版リリース前には決めないとなぁ^^;;

▼ 2006/12/31 晴れ
今日は遊びまくって開発時間ほぼ0。
K-1が再放送ばかりでたいくつなのでその間にちょろっと更新。

皆様、今年1年、こんなサイトに見に来てくださってありがとうございました。

▼ 2006/12/30 晴れ
最新版:Portal_dev017.ZIP

イベントグラフペインにて、アンカー表示をオンにしている場合に、アンカー(つまみ)を表示するようにしました。
ペンツールで上下左右にドラッグすることができます。


Shift+ドラッグでクォンタイズが効き、Ctrl+ドラッグで上下のみの移動となります。
この辺はまた変わるかもしれません。

▼ 2006/12/29 晴れ
最新版:Portal_dev016.ZIP

イベントグラフペインの実装を行いました。
ほとんど流用でいけました(^^;

パンポットとかピッチベンドって上限と下限のサイズが違うので計算上、ど真ん中の数値って0にならないんです。 とは言っても編集上は0の方が使いやすいので、なんとかその辺の計算をごにょごにょして0になるようにしています。
(うまく微調整できないケースが出たらごめんなさい)


たまには開発環境の話を。

今現在開発にはMicrosoft Visual C++ 6.0(& MFC)を使っています。
今年の頭ぐらいに(?)Visual Studio 2005を購入したのですが、MFC自体はあんまり変わってないですし、 IDEも他言語との統合やらをやられたおかげでVC6のClassWizard相当の機能がやたらと使いにくくなってしまって、 結局VC6を使っています(動作も軽いですしね。よく落ちますけど。)

MIDI制御の方法は↓で勉強しました。

Windowsサウンドプログラミング―音の知識×プログラミングの知識
翔泳社
発売日:
価格:\3,990


あんまりMIDI規格については詳しく触れていませんが、Windows上でのMIDI制御方法や、SMFの構造の説明が丁寧に書かれているのでお勧めです。 DirectXの本とかって海外の本を翻訳したモノが多くていつも解りにくいなぁと思っているんですが、この本は日本の方が日本語を使って書いているので、読みやすいです。
シーケンサ作ろうと思っている方は、書籍購入の選択肢に入れてみてください。

プログラミングの知識全くないけど、Windowsでシーケンサ作ってみたい!というエネルギッシュな方は
  1. とりあえずC/C++やDelphiと言ったたぐいの言語を勉強する(コンソールレベル)
  2. そうした言語を使ったWindowsプログラミングを勉強する(ウィンドウ、メニュー、ツールバー制御など)
  3. ソフトウェアの内部デザイン周り(オブジェクト指向だとかデザインパターンとか)を勉強する
  4. MIDI規格や制御方法を勉強する
という順番で覚えていけばいいんじゃないかと思います。
なんて書いたは良いけど「C言語勉強し始めたけどポインタでつまずいた」なんて言われても責任とれません(^^;

▼ 2006/12/28 晴れ
最新版:Portal_dev015.ZIP

スプリッターバーやウィンドウサイズを変更したときに、画面の更新に無駄があったので、その辺を改良してみました。
イベントグラフペインの高さを調節してる時のちらつきも前よりマシになったかと思います。

あと、ファイルのプロパティ画面を実装したので、曲名とか著作権とかを変えられます。

イベントグラフペインで表示する内容をコンボボックスで選べるようにしたいわけなんですが、 コンボボックスのボタンクリックで出てくるウィンドウって好き勝手にいじれないっぽいです。

そんなわけで自前描画でツリーコンボボックスを実装。なんかそれっぽくできた。

ただ、この手のポップアップウィンドウを表示するとメインウィンドウが非アクティブになってしまうのがたまにキズですが、 そんなの普通の人にしてみたらどうでもいい事ですね。

▼ 2006/12/27 晴れ
最新版:Portal_dev014.ZIP

ファイルセーブロード、一括処理、ストローク機能辺りを実装しました。

ストローク機能は、同じtickに配置してあるノートのタイミングを上もしくは下からちょっとずつ時間をずらす機能です。
ギターやら三味線やらの弦ごとのタイミングずらしを一括で行うことが出来ます。
ベロシティが大きな数値ほどノート間の間隔を短くする、という事も可能です。


イベントグラフペインの実装も徐々に始めています。
(背景だけ描画してみました。)

▼ 2006/12/26 雨
最新版:Portal_dev013.ZIP

コントロールチェンジイベント周りを実装中。
おおよそおわったかも。

コントロールチェンジイベントのプロパティ画面はこんな感じになりました。
(まだキーボード参照ボタンとか動かないですが)


各コントロールマクロがフォルダ分けしてあるのがミソです。

並びやフォルダ構成は定義ファイルで自由に変えられます。
各コントロールチェンジマクロにはIDが振られていて、0〜127は通常のコントロールチェンジ(だけじゃないけど)、 128〜255辺りはなるべく各音源で同じようなマクロを定義(RPN,NRPNなどなど)、256〜1023は好き勝手定義、という感じになるかと思います。
(最大、1024種類のマクロが1音源で定義できます。足りなかったら増やすかも・・・・)

まだSC-8850独自のマクロを全く追加していないので、 そのうちEFX、リバーブ、コーラスの設定もCCマクロ&テンプレで手軽に変えられるようにしようかと思います。

▼ 2006/12/25 晴れ
最新版:Portal_dev012.ZIP

各イベントのプロパティ画面をざっくりと実装しました。
「イベント」メニューからプログラムチェンジなりエクスクルーシブなりを挿入して、イベントリストでイベントをダブルクリックすると、プロパティ画面がでます。

昨日書いたエクスクルーシブの書式もそのまま実装できたと思います。

プログラムチェンジプロパティ画面では、音色名を検索出来る機能も付けておきました。
よく使う音色なら音色番号を覚えているのですが、たまにしか使わない「Shamisen」だとかを探すのに 時間が掛かるときがあるので、そう言った時に役立つと思います。


そろそろコントロールチェンジイベントやイベントグラフペインまわりの実装をしようかと思います。
Perryからあんまり流用できない箇所なので時間がかかるかもしれません。

▼ 2006/12/24 晴れ
メリークリスマス!てか、こんな日に見てる人いるか疑問ですが(笑)
今日はほとんど開発時間がなかったですが、エクスクルーシブデータの書式を決めました。

入力画面の説明文です。
  • スペース区切りで数値を入力してください。
  • 0xf5のように頭に「0x」、もしくはf5hのように後ろに「h」が付くと、16進数として認識されます。
  • 10や20のような数字は10進数として認識されます。
  • "[" と "]" で複数の数値を挟むと、その間のチェックサムを"]"の位置へ自動的に挿入します。
  • "("と")"はマーキングとして利用できます(何も処理されません)。
  • ダブルクォーテーションで囲むと文字列データとして認識されます。文字列の中にダブルクォーテーションを使いたい場合は「\"」と入力してください。
これの書式に対応したプログラムを書きます。

▼ 2006/12/23 晴れ
最新版:Portal_dev011.ZIP

今日は昼間に寝覚め、年賀状を作りまくって、久々にゼルダを進めて、その後にちょろっと開発。
マークの編集、拍子の編集辺りが動くようになりました。
あと、環境設定のMIDI-INも設定できるようになりましたので、 設定すればMIDIキーボードからの入力でトラックの音を出すことができます。

リズムトラックで左にとりあえずGM規格の音色名を出しておきました。
(GMLevel1用の定義ファイルを用意しましたが、まだ通常の音色名とかは全く記入してません)
そのうちトラックプロパティでドラムセット名を選べるようにします。

エクスクルーシブイベントのデフォルトのデータを入力している時に気がついたんですが エクスクルーシブデータってメーカーIDやモデルIDなんかが含まれているのでデフォルトを固定にしておけないんですよね。
そんなわけでこのデフォルトデータは定義ファイル側で持つ事にしました。

▼ 2006/12/22 曇りのち晴れ
最新版:Portal_dev010.ZIP

環境設定→MIDI-OUT部分で音源を選択出来るようにしました。
今のところどのぐらいの定義ファイルを用意できるか不明ですが、 沢山入れても目的の音源を探しやすいようにフォルダツリー構造にしました。
(現在はSC-8850しかないので、ツリーの恩恵を受けることはありませんが^^;)

あとは、昨日音符アイコンを描いたので、今回選択範囲のクォンタイズ機能を実装しました。

明日はマーク編集や拍子設定辺りをいじろうかと思っています。


そういえば、ペンと選択ツールの操作方法を載せ忘れていたので載せておきます。

≪ペンツールの操作方法≫
操作動作
左クリックノート配置
ノート左クリックノート移動
左ダブルクリックノート配置
ノート左ダブルクリックノート削除
右クリック音プレビュー
ノート右クリックスポイト(Vel,Gateを吸い取る)
右ダブルクリック選択ツールへ切り替え
ノート右ダブルクリックノートプロパティ画面

≪選択ツールの操作方法≫ (消しゴムツールもほぼ同じ)
操作動作
左クリック選択
範囲左クリック移動
左ダブルクリック貼り付け
範囲左ダブルクリック範囲のコピー
右クリック音プレビュー
範囲右クリックポップアップメニューの表示
右ダブルクリックペンツールへ切り替え
範囲右ダブルクリックポップアップメニューの表示

ちょっと癖があるかもしれませんが、各動作は全てカスタマイズ可能にする予定ですので変だったら変えてください。
ノートは左クリック(ドラッグ)で置けるようになっていますが、
ドラッグ中に右クリックすると操作をキャンセルできます(配置しません)。
これは、他のドラッグ操作でも同様にキャンセルできます。

▼ 2006/12/21 晴れ
クォンタイズコンボボックスにアイコンを付けました。
なんとか音符っぽく描けたかなー。
Portal_dev009.ZIP

ここ何日かで平行して定義ファイル(XML)を読み込むルーチンを書いていますが、あともうちょいです。
XMLパーサーは自作したので信頼性はあんまりないですが、読み込み速度はそこそこ速くなっているはずです。

▼ 2006/12/20 晴れ
環境設定画面からMIDI-OUTデバイスを選べるようにしました(MIDI-INはまだハリボテ)。
これでとりあえずノート置いて再生するぐらいはできるようになりました。
カレントトラックの変更もできます。
あとはいろいろアイコンを追加したりだとか。
Portal_dev008.ZIP

ノートを選択して上下にドラッグすると、その音階で試聴ができるのがミソです。

クォンタイズコンボボックスにもアイコンを付けようと思っていますので、 次は各種音符のアイコンを描くところからかな。

▼ 2006/12/19 晴れ
コタツで寝てしまったorz 現在午前4時。
ピアノロールの表示倍率変更あたりが動くようになりました。
(高さはピアノ画像を作らないといけないので、とりあえず二段階しかないですけど)
イベントリスト側のGateやVelocityをキーボードから数値入力する辺りも動くようになりました。
Portal_dev007.ZIP

MIDI In/Outの設定画面をそろそろ作ろうかなぁ。
(環境設定ボタン押せますが、まだハリボテです。設定できません。)

民謡アレンジをしている時に思ったのですが、 例えばベースパートなんかで「長いGate、短いGate」を繰り返し打ち込んだ後で 長いGateの方だけをちょっと変えたい!なんて思うことが時々あります。
今までは一個一個ノートを指定してGateをちまちまと変えるしか無かったのですが、 なんとか「Gate60〜300未満のノートのGateを−10する」みたいな 条件付きの一括置換処理が実現できないか検討中(一括置換機能の処理対象をオプションで変更って感じかな?)。

▼ 2006/12/18 晴れ
イベントリストのデザインをちょっといじってみた。
Portal_dev006.ZIP

今まではフォーカスがある場合→演奏線&カーソル表示
フォーカスが無い場合→演奏線のみ表示
だったものを フォーカスがある場合→カーソルを濃く表示
フォーカスが無い場合→カーソルを薄く表示
に変更してみました。
前よりはマトモになったかなぁ。

他にもいろいろ実装しまして、コマンドやアンドゥ・リドゥなどが使えるようになっています。
(例によってPerryから流用しまくりですが、流用できる所ももう少しで切れます。)

あとは、SC-8850の音源定義ファイルをModuleフォルダに入れてみました。
まだ途中ですが、おおよそ詰め込んであります。
これをどの程度のスピードで読み込ませられるか、が問題ですね。
起動が出来るだけ早くなるようにいろいろ工夫しないと。

▼ 2006/12/17 晴れ
イベントリスト&ピアノロールを流用しまくりで実装。
Portal_dev005.ZIP

一応ピアノロール上でノートを置いたり選択したりできます。
(まだ動かないコマンドばっかりですが)

イベントリストの方を15日に提案したイメージ通りにやってみたものの、
赤い演奏位置線 → 青い雰囲気の中で赤線は違和感ありまくりだったのでボツ
小節の変わり目をテキストではなく1ドットの直線にする → テキストの方が見やすいような気がする
・・・という感じで微妙です。

うーん、どうしようかなー。テキスト区切りに戻そうかなぁ。

▼ 2006/12/16 晴れ
ツールバー周りの配置変更、メニューアイコンの追加、イベントグラフペインの配置辺りを実装。
Portal_dev004.ZIP

イベントグラフ部分の高さは可変(スクロールではなく伸縮)にし、同時に二つまで表示出来るようにします。
ツールバーにいろいろ詰め込みすぎたかもしれませんが、動作環境は画面の横幅が1024以上になりそうです。
(800x600ユーザーさんごめんなさい・・・・いや別にツールバーカスタマイズしてもらえればいいのか。)

年賀状と民謡アレンジやらんとなぁ(憂鬱)。

▼ 2006/12/15 晴れ
忘年会が早く終わった(というか1次会しか参加しない)ので早速時間&テンポを表示するパネルを実装。
Portal_dev003.ZIP

アクアデザインはやっぱり浮いたのでべた塗りにしました。
それからイベントリストの枠&スプリッターバーも配置してみました。
Perryから流用できる部分が多いので、意外と早く完成するかもしれませんね。


次に、SC-8850から音色名を吸い取るアプリのCSV書き出し機構を実装。
ExtractSC8850_dev001.ZIP

これで書きだしたcsvからMidiPortal専用音源定義ファイル(xml)へ変換するプログラムを書こうと思います。
(その方がデバッグしやすいし。)

シーケンサ本体の方はイベントリスト周りのデザイン変更を考え中。
Perryのスクショを画像加工してイメージ作ってみました

ポイントは、小節の変わり目をテキスト(------ M1 ------)ではなく直線にすることで見やすくしよう(&選択できない不思議イベントを取っ払おう)、という試みです。
あと、これが直線になったら、演奏位置(カーソル位置)を示す線が反転線だと解りにくいから、赤い線にしよう(→ピアノロールも赤い線にしよう)、という辺りです。もしかすると反転線の方が良いのかもしれませんが^^;;;

それから、イベントリストの時間に関わる部分(meas,tick,step)とデータ部分を色分けすることで、これまた見やすくしようと試みています(各イベントの色も決めないとなぁ〜)。



ちなみに知り合いの音楽屋から民謡の和風ロックっぽいアレンジ(?)を頼まれてしまったので、そちらをやらないといけないです。 そういうの全然得意じゃない、というかむしろ音楽作成そのものがど素人なのですが、なにやら人手不足で困ってるみたいです^^;誰か代わりに頼まれてくれる人募集_| ̄|○(音源はSC-8850、報酬は要相談?)

▼ 2006/12/14 雨
昨日に引き続き、メニューアイコンを付けました。
Portal_dev002.ZIP

ツールバー類も適当に配置してみましたが、ボタンの順番などはもうちょっと変わるかもしれません。

ツールバーの白くなっている部分はmeas : tick、それからtempoを表示するパネルです。
アクアっぽいパネルにしようとは思っていますが、デザイン的に浮くかも・・・。

明日は忘年会があるので、実装はまた今度。

▼ 2006/12/13 雨のち曇り
定義ファイルそっちのけで、今日は本体をちょろっと開発。
Portal_dev001.ZIP

まずはアウトプットペインというのを画面下部に付けてみました。
これは普段は隠れていますが、エラーとかがあると出てくるウィンドウです(Visual Studioみたいに)。
起動時に「MIDIOUTのオープンに失敗しました」だとかその手の内容がメッセージボックスで表示されるといちいちOKボタン押さないといけなくて面倒なので、 そのあたりを全部アウトプットペインに出してしまおうというもくろみです。
他にも定義ファイルの構文エラーだとか、その他よくわからんエラーが出たときにここへ出力しようと思います。
ちなみに、アウトプットペインの高さを調節するバー(通称スプリッターバー)にイボイボを付けたりして、動かせる事をアピールしてみました。

あとは、メニューにアイコンを付けてみました(まだ途中ですが)。
半分以上はVisutal Studio 2005におまけで付いていたアイコン集からいただいています。
消しゴムとかは頑張って描いてみたんですが、ドット絵あんまり上手くないので困りもの。
メニューにアイコン付けるのって、実は結構面倒くさくて、一応自前で実装しているのですが、 いつかOffice2003の一個前(アイコン部分が白い帯のもの)とかに変更するかもしれません。

それから、各エリアの名称ですが、手元のMIDIの書籍によるとメジャーなインターフェース案としてイベントリスト(左側)→「ステップビュー」、ピアノロール(右上)は「ピアノロール」、 コントロールペイン(右下)は「イベントビュー」という名称で紹介されていました。が、ステップビューなんて名前を付けたらレコンポーザみたいな入力方式を想像されてしまいそうで怖いのでやっぱり「イベントリスト」にしようと思います。 右下の部分も、「コントロールペイン(ケークウォークだとコントローラ?)」「イベントビュー」などと呼ばれるようですがちょっとピンと来ないなぁと思いまして、 「イベント値ペイン」「ベロシティ/バリューペイン」「イベントグラフペイン」辺りを候補に思いつき、とりあえず「イベントグラフペイン」にしておきました。

▼ 2006/12/12 雨
ゼルダを遊びすぎて開発があまり進まない。
SC-8850から音色名をダンプさせて受け取るアプリを作成中。
ExtractSC8850_dev000.ZIP

あとは書き出す部分を作るだけです。
このままSC-8850の定義ファイルを作ってしまおうかと思います。

1音源に対して1つの定義ファイルを作ります。
形式はXML、このXMLの中に、
  • 音色情報(通常の楽器情報、ドラムセット情報、各ドラムのノート名)
  • コントロールチェンジマクロ情報
  • テンプレート情報
などを詰め込もうと思います。

▼ 2006/12/11 晴れ
Perryの設計ミスや配布ミスを反省しての(?)シーケンサ作り直し開始。
定義ファイルはXML形式にして、独自フォーマットにします。
ユーザーインターフェースはPerryとほぼ同じ(ピアノロール+コントロール+イベントリスト)になる予定です。

名前は「MidiPortal」と付けておきましたが、また気が変わるかもしれません。

とりあえずメニューだけ再構築してみました。
Portal_dev000.ZIP
(まだなんも動かないです)

音源定義ファイルの音色リスト部分は流石に全部手打ちというわけにはいかないので、 どこかにデータが落ちていないかとローランドのサイトに行ってみたものの 加工しにくいしドラムのトーン一覧は無いしで、使い物にならん・・・。

と、音源本体からダンプ出来ないかとマニュアルを探ってみたら出来ることが判明。
今は音源から音色一覧を吸い出すプログラムを書いてます。