忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PX7が予想以上に反響が大きかったのに気を良くして、PX7を拡張する感じでDAW
(Digital Audio Workstation)的な物というかDS-10っぽいようなソフト作ってみています。
現在はこんな感じ↓
s-20120709_025510.jpg
画像はピアノロール入力画面。
グラフィックは後で綺麗にするつもりなので適当ですが、タッチペンで入力して16トラック重ねて
演奏させる程度には出来て来ました。

しかし問題も色々ありまして、当初私は演奏させる命令にBGMSETDを使おうと思っていたのですが
BGMSETDは予め入力されたMMLしか演奏出来ない感じっぽい?んですよね。
リアルタイムに入力を判別して色んな音を鳴らすって事を行う為にはBGMSET命令を使わないと
駄目っぽい。
で、このBGMSET命令なのですが、最大で2304文字までしか登録出来ないんです。
2304を16トラックで割ると1トラックにつき144文字までしかMML登録出来ないって話
になってしまいます。

で、どうするべかなーと考えたのが1小節毎に演奏する曲番号を変更して行く方法。
曲番号は128~256まで使えるので例えば
1小節目を128で演奏したら、2小節目は129で演奏するって感じで1小節ごとにBGMPLAYで
演奏させる感じにしてみました。
ただ、この方法だと64小節までしか登録出来ないんですよね。8トラックにすれば128小節まで使える
のですが、1トラック1音しか鳴らせない事を思うと16トラックは欲しいなぁって事で64小節にしました。

あと、小節を跨いで音を鳴らす事も出来ないんですよねぇ。ここをどうするかで色々と悩み中。
他にも問題山積みって感じなので、本当に完成するのか自分でも心配です(笑)
PR
PX7をVer1.03にアップデートしました。
ダウンロードはコチラ↓
http://www.geocities.jp/sp1_ssr/px7.htm

修正点は・・・
カオスパッド使用時、時々Illegal MMLエラーが出る事があるのを修正
BEEP音選択時はカオスパッドを使用出来ないように修正
コピーボタンを押さずにペーストすると音が鳴らなくなる場合があるのを修正
トラック2選択時にカオスパッドを選択するとトラック2の選択が解除されるのを修正
最初の一回目のみコピー&ペースト時にトラックボリュームが0でコピーされてしまうのを修正
と言った感じ。
バグばっかりで申し訳ないです^^;

そして、予想以上に紹介されたりTwitter上ではRTされたりしていて作者としては嬉しい限り^^
DTM Magagine
http://www.dtmm.co.jp/item/978

KOTAKU Japan
http://www.kotaku.jp/2012/05/petit_com_synth.html

べりたすふぃりあ
http://veritasphilia.blog.fc2.com/blog-entry-1920.html

制作のしおり
http://sshiori.dtiblog.com/blog-date-20120524.html

と言った感じで中々評判良いみたいなので、調子にのってDAW的な物を作ってみようかなぁと思い
とりあえず16トラックは扱えるようにしたいよなーって事で、まずはPX7を16トラック対応にするべく
制作中です。
s-DSC_0195.jpg
でも作るの相当大変そうな気がするので、途中で挫折してしまう可能性大な気もしますが^^;

それと、Reflect EDGEとPX7の動画をYoutubeでも公開しました。



プチコンmkII用シンセサイザー、PX7を公開しました!


ダウンロードはコチラから↓
http://www.geocities.jp/sp1_ssr/px7.htm

動かすとこんな感じ↓


結局、作り始めて1ヶ月以上かかってしまいました。
作って行くうちにアレもコレも入れたいと追加してたら、最終的にQRコード58枚にw
PX7を元にしてDAW的なもの作りたいなーなんて思ってましたが、とても無理そうですね(^^;)

まぁ、でも一応ちゃんと完成したのは良かったなーと。
後はバグが無いことを祈るばかりです(笑)

※5/19追記
Ver1.01にアップデートしました。
音色番号224~255以外の時にセーブ/ロードの位置をタッチするとプログラムが終了
してしまう不具合を修正
カオスパッド選択時にセーブ/ロードボタンを表示しないように修正
起動時にNOW LOADINGを表示するように修正

※5/20追記
カオスパッド使用時、パラメータを沢山選択するとString too longエラーになるのを修正
トラック選択時にオクターブを選択せずに音をならすとオクターブがズレてしまうのを修正
~$+STR$(~)の記述方法を変更
プチコンシンセ、かなり完成に近づいてきた感じです。
今の所こんな感じ↓
s-DSC_0108.gif

大まかなレイアウトはこんな感じで行こうかと。ゴチャゴチャしてますが、自分がゴチャゴチャ
したのが好きなので仕方ないです(笑)

s-DSC_0111.gif
波形エディット画面。
サンプル数は128、64、32、16、8、4から選択出来るようになっています。
ナムコ(WSG)っぽい波形やSCCっぽい波形も収録してみました^^

s-DSC_0110.gif
カオスパッド(のようなもの)も実装。
画面タッチで16分音符が鳴ります。押す場所によってGATEの値が変わるようになっています。
で、ついでに簡単なリズムも鳴らせるようにしたのですが、ココで問題が。

鳴っているリズムに合わせてLEDが光ってるようにしたかったのですが、演奏しているMMLの場所を
知る方法がわかりませんでした。
で、そんな事をTwitterでつぶやいているとスマイルブームの中の人が丁寧に教えて下さいました^^
https://twitter.com/#!/notohoho/status/199259682685194241

方法としては、MML用に用意された変数ってのがありまして、それを利用して任意のポイントに
変数を配置するって方法。
具体的には
BGMPLAY 0,"[$0=0CDEFGA$0=1B]とかにしておいて、メインループでA=BGMGETV(0,0)で
変数Aの値を監視しておいて、IF A==0 THEN ~みたいな感じで使うと上手く出来ました^^

といった感じで、後は音色のセーブ/ロードとコーラスやディレイっぽいエフェクトを実装すれば
完成かなーと思っているのですが、予想外に時間がかかってしまっているので
早く完成させたいです^^;
とりあえず好きな音色をトラック毎に選択して音を重ねて音色を作れるようになりました。
s-jelca.jpg
最大8トラックまで重ねる事が出来るようにしています。
コレでGM音源部分は殆ど完成なので、あとは波形メモリ用のエディタを実装してセーブ、ロードが
出来るようになれば完成かなーと思っているのですが、エディタを作るのが一番大変そうなん
ですよね^^;
あと、まだ重ねれるトラックは余っているのでディレイ的なエフェクトみたいなのや、カオスパッド的な
物を入れたいなーなどと、アレコレ妄想しておりますw
Twitter
カレンダー
10 2024/11 12
S M T W T F S
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
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]