WAV2CSV
エクセルで読めるCSVファイルに変換します
OPTION CHARACTER BYTE FILE GETNAME F$,"WAVファイル|*.WAV" IF F$="" THEN STOP OPEN #1:NAME F$ LET A$="" FOR I=1 TO 12 CHARACTER INPUT #1 : X$ LET A$=A$ & X$ NEXT I IF A$(1:4)<>"RIFF" THEN PRINT "WAVファイルではありません" CLOSE #1 STOP END IF LET WAVEFILESIZE=CVL(A$(5:8)) IF A$(9:12)<>"WAVE" THEN PRINT "WAVファイルではありません" CLOSE #1 STOP END IF DO LET A$="" FOR I=1 TO 4 CHARACTER INPUT #1 : X$ LET A$=A$ & X$ NEXT I SELECT CASE A$(1:4) CASE "fmt " LET A$="" FOR I=1 TO 4 CHARACTER INPUT #1 : X$ LET A$=A$ & X$ NEXT I LET HEADERSIZE=CVL(A$(1:4)) LET A$="" FOR I=1 TO HEADERSIZE CHARACTER INPUT #1 : X$ LET A$=A$ & X$ NEXT I LET WAVETYPE=CVI(A$(1:2)) IF WAVETYPE<>1 THEN PRINT "対応していません" CLOSE #1 STOP END IF LET CHANNEL=CVI(A$(3:4)) LET SAMPLINGFREQ=CVL(A$(5:8)) LET DATARATE=CVL(A$(9:12)) LET SAMPLESIZE=CVI(A$(13:14)) LET SAMPLEBIT=CVI(A$(15:16)) CASE "data" LET A$="" FOR I=1 TO 4 CHARACTER INPUT #1 : X$ LET A$=A$ & X$ NEXT I LET PCMSIZE=CVL(A$(1:4)) LET SECOND=PCMSIZE/DATARATE LET NUM=INT(SAMPLINGFREQ*SECOND) EXIT DO CASE "fact" LET A$="" FOR I=1 TO 8 CHARACTER INPUT #1 : X$ LET A$=A$ & X$ NEXT I LET SIZE=CVL(A$(1:4)) LET SAMPLE=CVL(A$(5:8)) CASE ELSE PRINT "対応していません" CLOSE #1 STOP END SELECT LOOP INPUT PROMPT "SAVE FILENAME(.CSV)=":N$ IF POS(N$,".")=0 THEN LET N$=N$ & ".CSV" OPEN #2:NAME N$,ACCESS OUTPUT PRINT #2:"サンプリング周波数,";STR$(SAMPLINGFREQ) PRINT #2:"サンプルビット数,";STR$(SAMPLEBIT) PRINT #2:"チャンネル数,";STR$(CHANNEL) PRINT #2 PRINT #2:"No.,"; SELECT CASE CHANNEL CASE 1 PRINT #2:"モノラル" CASE 2 PRINT #2:"左チャンネル,右チャンネル" CASE 3 PRINT #2:"左チャンネル,右チャンネル,中央チャンネル" CASE 4 PRINT #2:"左チャンネル,中央チャンネル,右チャンネル,サラウンド" CASE ELSE FOR I=1 TO CHANNEL-1 PRINT #2:CHR$(34);"チャンネル";I;CHR$(34);","; NEXT I PRINT #2:CHR$(34);"チャンネル";CHANNEL;CHR$(34) END SELECT FOR K=1 TO NUM PRINT #2:STR$(K); !'行ナンバー FOR I=1 TO CHANNEL LET B$="" FOR J=1 TO SAMPLEBIT/8 CHARACTER INPUT #1 : L$ LET B$=B$ & L$ NEXT J IF SAMPLEBIT=8 THEN LET C=ORD(B$)-128 IF SAMPLEBIT=16 THEN LET C=CVI(B$) PRINT #2:",";STR$(C); !'PCMデータ NEXT I PRINT #2 NEXT K CLOSE #1 CLOSE #2 END
|