2011年07月19日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム 音楽
楽譜を入力してそれを再生するソフトです。(曲は入ってません)
※このソフトは作曲には向いてません(すでにある楽譜を入力してください)
ぼくはプログラム初心者なので、色々おかしなところやバグが
あると思いますので気をつけてください。
@LOOP のとこからプログラムを書けばゲームのBGMを鳴らすのにも
利用することができます。(重いですが)
(最終更新日 7/20)
・毎回@BPMなどに飛ぶのは無駄なので、それらが変更された時だけ飛ぶようにしました。
(しかも@BPM書き忘れていたという)
DATA文に入力してください。
♪=テンポ(999まで) あまり大きくしすぎても意味ありませんが。
♪は単独で使用してください
S=和音です。(「1S,3S,4」のように入力すると3つの音をほぼ同時に鳴らせます、というかこのままだと3音ぐらいまでしか和音に聞こえません)
和音の音符の種類を変えるには最後の音を変えてください。
¥=音の波形を変えます(0〜69)
L=音符の種類(4で4分音符、6で付点8分音符、のような感じです)
W=ループ(というか繰り返し)です(番号に対応するラベルまで飛びます(@RES を見てください))
G=二回目だけ効果のあるループです。
^=音階(-24〜24)先頭に書けば^は省略できます。
ド =0~
ド# =1
レ =2
レ# =3
ミ =4
ファ=5
ファ#=6
ソ =7
ソ# =8
ラ =9
ラ# =10
シ =11
例(DATA ♪120,L08^-15¥22#64,16,14,16,12,16,11,16,9
プログラムはプチコンがはじめてだったので難しかったです。
仕様とかも自分で勝手に決めたものなので、正直使いづらいです。
色々と機能不足ですし、すぐ処理落ちするし、バグもあるのでいいとこないですね。
(何で投稿したんだろう)
動作しているところを撮影した写真や動画があれば貼り付けてください。
- @BGM1
- @S001
- DATA
- DATA
- DATA
- DATA
- DATA END
- CLEAR
- `−−−ショキカ
- BPM=60
- ONR=127
- TR=1
- TR3=2
- P=4096/12
- `−−−
- @LOOP
- GOSUB @MML
- IF M1==1 THEN VSYNC 1
- GOTO @LOOP
- @RES
- IF LOP==1 THEN RESTORE @S001
- IF LOP==2 THEN RESTORE @S002
- IF LOP==3 THEN RESTORE @S003
- IF LOP==4 THEN RESTORE @S004
- IF LOP==5 THEN RESTORE @S005
- L=L+1
- LOP=0
- RETURN
- @BPM
- `−−−オトノナカ゛サ テイキ゛
- P04=60/BPM
- P06=P04*0.75
- P08=P04/2
- P12=P08*0.75
- P16=P08/2
- P24=P16*0.75
- P32=P16/2
- P64=P32/2
- P03=P04*1.5
- P02=P04*2
- P01=P02*2
- F04=60*P04
- F06=60*P06
- F08=60*P08
- F12=60*P12
- F16=60*P16
- F24=60*P24
- F32=60*P32
- F64=60*P64
- F03=60*P03
- F02=60*P02
- F01=60*P01
- RETURN
- @MML
- `−−−DATAシュトク
- IF TR==1 AND M1==0 THEN READ MML$
- IF MML$==”END”THEN END
- IF MML$==”” THEN @MML
- O=0
- `−−−メイレイ ハンヘ゛ツ
- FOR I=0 TO LEN(MML$)−1
- IF MID$(MML$,I,1)==”♪”THEN BPM=VAL(MID$(MML$,I+1,3)):GOSUB @BPM:O=0
- IF MID$(MML$,I,1)==”L”THEN ONP=VAL(MID$(MML$,I+1,2)):GOSUB @ONP_CHK:O=1
- IF MID$(MML$,I,1)==”S”THEN ONP=99
- IF MID$(MML$,I,1)==”W”THEN LOP=VAL(MID$(MML$,I+1,3)):GOSUB @RES
- IF MID$(MML$,I,1)==”G”THEN GOL=VAL(MID$(MML$,I+1,1)))
- IF MID$(MML$,I,1)==”T”THEN TR3=VAL(MID$(MML$,I+1,2)):O=2
- IF MID$(MML$,I,1)==”¥”THEN HKI=VAL(MID$(MML$,I+1,2) ):O=1
- IF MID$(MML$,I,1)==”^”THEN PIT=P*VAL(MID$(MML$,I+1,3)):O=1
- IF MID$(MML$,I,1)==”#”THEN ONR=VAL(MID$(MML$,I+1,3)):O=1
- IF O==0 AND MID$(MML$,0,1)!=”♪”THEN PIT=P*VAL(MID$(MML$,0,3)):O=1
- NEXT
- GOTO @SE1
- `−−−オンフ゜ ノ シュルイ ハンヘ゛ツ
- @ONP_CHK
- IF ONP!=99 THEN ONP2=ONP
- IF S==1 THEN ONP=ONP2
- IF ONP==1 THEN BP=F01
- IF ONP==2 THEN BP=F02
- IF ONP==3 THEN BP=F03
- IF ONP==4 THEN BP=F04
- IF ONP==6 THEN BP=F06
- IF ONP==12 THEN BP=F12
- IF ONP==16 THEN BP=F16
- IF ONP==24 THEN BP=F24
- IF ONP==32 THEN BP=F32
- IF ONP==64 THEN BP=F64
- IF ONP==99 THEN S=TR3:BP=0
- RETURN
- @SE1
- `−−−オト ヲ ナラス
- IF M1==0 AND O==1 THEN BEEP HKI,PIT,ONR:M1=1:F1=MAINCNTL
- IF S>0 AND M1==0 AND O==1 THEN S=S−1
- IF M1==1 AND MAINCNTL−F1>BP THEN M1=0
- IF S>0 THEN S=S−1
- RETURN
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.133 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:13 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30