2017-09-01
さよなりωさんのスーファミのコントローラで、まずはIchigoJam標準BEEP音源で楽器づくり!
バンブラこと、任天堂「大合奏!バンドブラザーズ」では、上下左右と4ボタンに音階を割り当てて、ゲーム機を本格楽器化したのが画期的でした!(バンドブラザーズ解説)


ということで、IchigoJamで再現しました
Rキーで半音アップ、Lキーで1オクターブアップも対応!
古い記憶が蘇ります!

1 'SFC-C BBS 10 POKE#700,16,181,80,35,27,2,28,70,36,4,91,28,27,4,1,34,18,3,164,24,0,34,90,96,0,33,0,34,154,96,34,104,146,10,138,64,128,24,2,34 20 POKE#728,154,96,1,49,16,41,244,209,1,34,90,96,16,189 30 OUT1,1:OUT1,2:A=#700:B=0 31 LET[0],60,57,54,51,48,45,42,40,38,36,34,32 32 LET[12],9,7,-1,-1,4,0,2,5,11,12 40 N=~USR(A,0):P=N&~B:B=N 55 IF N&#3F3=0 BEEP0:GOTO40 60 T=-1:FORI=0TO9:IF [I]<0 GOTO80 70 IF P&(1<<I) T=I:I=9 80 NEXT 90 IF T<0 GOTO40 100 T=[12+T]+N>>11+N>>10&1*12 110 BEEP[T%12]>>(T/12),1000 120 GOTO40

1画面に収まる、516byte!
スーファミコントローラ接続ですが、キーボードやオリジナルボタンを使った改造のベースにもどうぞ!

音階はバイナリリコーダーでも使った、IchigoJam MML 音階周期対応表を参照、O3を基準に使いました(31行、配列0〜11)。12で割った値でビットシフトしてオクターブアップ。

IchigoJam MML 音階周期対応表

バンブラ奏法用に「RLXA→←↓↑スタートセレクトYB」の12bitで並ぶスーファミコントローラの値から、ボタンが押されたビットを検出して、音階Tを算出(32行、配列12〜)。

スピーカーは、IchigoJam標準の圧電サウンダーで物足りなければ、100円均一でスピーカーや、アンプを買ってつなぐのもオススメです!

ボタンに関するミニテクニック。
12コあるスーファミのボタンの状態をマシン語で読み取った、まとめてビット演算は「論理学習IchigoJamプリント」の応用で、全ビットを反転する「~」を使っています。

スーファミコントローラのボタンが押された(P)、離された(R)を取得するサンプルプログラム。

1 'SFC-C 10 POKE#700,16,181,80,35,27,2,28,70,36,4,91,28,27,4,1,34,18,3,164,24,0,34,90,96,0,33,0,34,154,96,34,104,146,10,138,64,128,24,2,34 20 POKE#728,154,96,1,49,16,41,244,209,1,34,90,96,16,189 30 OUT1,1:OUT1,2:A=#700:B=0 40 N=~USR(A,0):P=N&~B:R=~N&B 50 ?BIN$(P,12),BIN$(R,12) 60 B=N:GOTO 40

2週目の最終日の夏のjig.jp高専インターン生達と、河和田アートキャンプ蔵BAR」へ

開発と食事会とオールナイト - jigintern2017の日記

今年の蔵丼と、新メニュー蔵コロッケ!蔵で食べるとまた格別!

学生の熱い夏はまだまだ続きます!

links
- 河和田アートキャンプ
- 蔵BAR

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS