Hello, my name is pornanime.

進捗

音色切替を実装。楽譜の再現という面では最低限機能が揃ったか。ただ、これだとモノラルなのでパンポットが必要かな。

ところでTwitter以外から来た人は何をやってるのか分からないと思うので改めて説明しておくと

  1. スーパーファミコンの音源チップ(SPC700)用ドライバ
  2. (1)を埋め込んだSPCファイルとSMCファイルを生成するMMLコンパイラ

を作ろうという話です。

f:id:gyuque:20160601023621p:plain

今回使ったMML

http://dic.nicovideo.jp/b/a/%E3%83%AD%E3%83%83%E3%82%AF%E3%83%9E%E3%83%B3/331-#343 より

#INST 0={0, 15, 7, 4, 18}
#INST 1={2, 15, 2, 2, 7}

$HI=v3o7 q15;
$SN=v9o4 q15;
$SNi=v9o5 q7;


t150

o4 l16 v7 @0
/:4e4grbr<d8.c+8.>a8<c8.>b8.g8argredre
  ere8 ere8 ere8 ere8 /ere8f+rf+8grbrd4 :/
  ddrdrdrde   bbggeec 

/
  /: e8e8r8e8egrbrge8 e8e8r8e8egrbrge8 d8d8r8d8df+rarf+d8 e8e8r8e8egrbrge8:/
  /: grg8 grg8 grg8 grg8  f+rf+8 f+rf+8 frf8frf8 l8ref+egere 
     bbeeb+16b+16eee l16:/
;

o5 l16 q15 v15 @0
/:4 e4grbr<d8.c+8.>a8<c8.>b8.g8argredre
<r8f+f+f+grrf+f+f+gr4/ rrf+f+f+grbrbargrf+r>:/
<aarararab4r4>
/
l8 /:rebab4agabre2gf+rf+r/f+ede&e2 rega:/gaf+e&e2 regb
q16<d1c+2c2q15 >ge4.regaa+ba+baged @w25
q16<d1c+2c2q15 >ge4.regb<e>bbb<d+f+ab>
;

o5 l16 v6 @0
/:4 r8e4grbr<d8.c+8.>a8<c8.>b8.g8argredre
    <ddderrddder4/ rrdddergrgf+rerdr> :/
    <f+f+rf+rf+rf+g4r4>
/
  /:gargrgrgf+grf+rf+rf+ dererde8 dererde8
    gargrgagrgrf+rf+gf+ dererde8 dererde8:/
  /:q16b1a+2a2q15  l8rgagbgrgagbgrgf+g:/ l16
;

o2 l16 v15 @1

/:60 $SNi c $HI ccc :/ $SNi ccrcrcrcc cc  ccc cc
/
 /:8 $HI crrr $SN c8r $HI ccccr $SN c8rr :/
 /:  $HI crcrcrcrcrcr $SN c8r8 $HI crcr $SN c8r8 $HI crcr $SN c8r8
    /  $HI crcr $SN c8r8 $HI crcr $SN c8r8 $HI crcr $SN c8r8 $HI crcr $SN c8r8  :/
 /: $HI crcr $SN c8r8:/
 $HI crcrcrcr cc c8c8c8
;

qSPC現況

進歩としては

  • 曲全体のループをサポート
  • オクターブ相対指定(< >)の記号を入れ替えるオプションをサポート
  • タイ・スラーを実装
  • 1トラックあたり256バイト以上のスコアデータをサポート

といったところで、宣言通りコンパイルの曲を一つ。ちなみに今回は実機収録です。

自分で収録してきたドラムの音がいまいち使い物にならないので、これぐらいしか鳴らせる曲がありません。
あとはハドソンで、ボンバーキング

この曲はわりとピアノにばっちりハマる感じがする。そういえばこれ高橋名人が歌ってるバージョンがあるんですよね。怖くて聞いてませんが。
あとは音色関連を実装すれば機能的には最低限揃う感じです。ただ、他人に使わせるには、MMLのパースエラーをまともに表示するという地味な作業が残っています。

qSPC進捗

マクロ、繰り返し、移調、三連符……などなど。
盛り込んだ結果、この曲を演奏できるようになりました。

データは
ニコニコ大百科: 「ロックマン3 Dr.ワイリーの最期!?」について語るスレ 31番目から30個の書き込み - ニコニコ大百科
よりqSPC用に修正。

#TITLE ROCK3PASS

$i=q16v8l16o5ns1;
$a=rfrfereere;

t112 $i/:arcarc grcgrcfrcfrcgrcgrc /fra<crdrrdrrd8.rcr>a<c>eb-aeb-:/
<c>rfar<crr>far<c8.>{b-b+b-}argarefrg;

$i/:f.r.f.r.e.r.e.r. c.r.c.r. e.r.e.r.crfarfrrfrr/f8.$a:/frr$a;

v10ns6q10/:o3l8.cceeffggaaggffg8f16e8d16:/

次の目標はやっぱり、コンパイル系の曲をいっときたいですね。

MMLを書くとスーファミのROMが出てくるやつ(進捗)

アルファ版と名乗るのも図々しいぐらいの「最低限」ですが、smcとspcが出るようになりました。あとは

  • 音色:ADSRと楽器サンプルの組み合わせをMMLの中で定義、参照できるようにする
  • スコアデータ:1トラック256バイト固定なので延長できるようにする
  • マクロと制御:ループぐらいはできるようにする

ぐらいをクリアすれば、公開して遊んでいただけるかと思います。

(今気づいたんですが、ドライバにバグがあって音が全部半音下がっています。移調しているだけなのでそれっぽくは聞こえますが……)

進捗状況

連休を利用して最低限のMMLを演奏できるところまで実装。テスト用の曲はお馴染み、以前ソフトウェア音源実装の時にも使ったディスクシステムの起動音です。元のMMLTSSCP Wikiより借用……したんだけどそのTSSCP Wikiはエラーが出まくってもうまともに見られなくなっている。動的Webは簡単にぶっ壊れるので20年後が不安だ。と言いつつTwitterに書いちゃうんだけど。

t200
l8o5q16v7l8c4.f4.b-4.agfg4g<c4.e-4.dc>b-<c4.>a4.b-4.f4df1;
l8o4q16v7a4.a4.<c4.c>b-ab-4b-<f4.b-4.b-aga4.c4.d4.>a4b-a1;
l8o4q13v7frrffffrrfrrfrrfrrfrrfff frrfrrfrrfrrfrrffffrr1r1;
l8o4q12v15f+rrf+f+f+f+rrf+rrf+rrf+rrf+rrf+f+f+ f+rrf+rrf+rrf+rrf+rrf+f+f+f+rrr1r1

聞き取りづらいけど4番目のトラックはドラムパートになっていて、その設定は……まだドライバにハードコードされている。ということで次は音色設定の実装かね。

進捗状況

f:id:gyuque:20160430012956p:plain
まあ何と言いますか、モノがサウンドドライバなんで絵面が地味ですが……作るものとしては

  • MMLコンパイラ(PC上で動作)
  • ホストプログラム(SFCのメインCPU上で動作)
  • サウンドドライバ(SFCの音源チップ上で動作)

の3つです。MMLコンパイラにかけるとSPCとSMCがポンと出てくる、というのでどうでしょう。

さて実は、ある方からSPC上での作曲に興味があるというご連絡をいただきまして、最低限の機能が出来たら、実際の作曲に必要なコマンドを相談しながら強化していくという感じで考えています。

Tokyo Indies 報告

Tokyo Indiesというイベントでスーファミ実機のデモを行い、こんな感じで紹介スライドもスーファミから出力してウケを取りに行ったりした。

さて、完成が見えてきたゲーム本体に対してサウンドの方がさっぱりなので、隣にいたレトロゲームに興味がある会社社長という人に
「プロにドライバ頼んだらどれくらいかかりますかね?」
と聞いたところ
「まともにやったら半年はかかるから、個人で払える額じゃないよ。自分で作った方がいい」
と言われて、まあそこまではいいとして
「募集すれば誰かやってくれるなんて、自分の作品にそこまでの魅力があるとでも思ってんの?」
とか
「グラフィックのギャラが○万って随分ナメた金額だね、頼み込んで描いてもらったの?」
だの、随分と言いたい放題言ってくれやがって。なめんなよこの糞デブ。破裂して死ね。
あ、失礼。 とにかくまあ、今に見てろよと思ったので、自分でやる方向になりました。

尚これは完全に個人間での揉め事なので、イベント自体の運営への不満ではないことを強調しておきます。