前へ:04 ソースを弄る(1)
ソースを読みながら、ソース中にコメントを追加
ソース変更は、Windows 用テキストエディタ
変更したときは小まめに確認
実行用ファイルの、コンパイル/動作確認はコマンドプロンプトから
動作確認用バッチに、単サンプル変換/単サンプル削除 を追加
テスト用バッチ test.bat
syro 98Kick3ss.wav s98c:02Kick3.wav
fc /B 98Kick3ss.wav 98kick3ss_.wav
syro 98Erace.wav e98:
fc /B 98Erace.wav 98Erace_.wav
syro pattern.wav p1:p01.dat p2:p02.dat p3:p03.dat p4:p04.dat p5:p05.dat p6:p06.dat p7:p07.dat p8:p08.dat p9:p09.dat p10:p10.dat
fc /B pattern.wav pattern_.wav
syro sample.wav ac:preset.asp
fc /B sample.wav sample_.wav
最近、Borland IDE ばかり使っていたので、MIFES for Win でショートカットキー操作ミスが頻発
ソース変更/コンパイルは C++Builder IDE に乗り換える (コマンドラインプログラム作成)
C++Builder IDE : ソース変更/コンパイル
コマンドプロンプト : 上記動作確認 test.bat
先に korg_syro_type.h (元の場所 SDK syro\) で <stdint.h> を include しない様にする
korg_syro_type.h
変更前
#ifndef KORG_SYRO_TYPE_H__
#define KORG_SYRO_TYPE_H__
#ifndef _MSC_VER
#include <stdint.h>
#else // #ifndef _MSC_VER
#ifndef uint8_t
続く
|
変更後
#ifndef KORG_SYRO_TYPE_H__
#define KORG_SYRO_TYPE_H__
//#ifndef _MSC_VER // !MSC for gcc clang
#ifdef _GCC_CLANG_ // 定義していないので #else へ
// MSC以外
#include <stdint.h> // CC99 以降の規格
#else // #ifndef _MSC_VER
// MSC <stdint.h> の内容の一部をここで定義
// VisualStudio2008 では <stdint.h> はまだ無い
#ifndef uint8_t
続く
|
まずは外堀、 korg_syro_volcasample_exsample.c (元の場所 SDK example\):
・起動コマンドラインを解釈
・ソース指定文字列(複数)に従い SyroData[] に必要な情報を設定する
・SyroData[] 他を引数に SyroVolcaSample_Start() を呼出す
・総フレーム数(16bit,2Ch で 1 フレーム) を返す
・推測:「総フレーム数が返る」事から、関数から戻った時には「変換処理は終っている」のかな?
2015/01/05 追記:
・変換処理は終っていない 「nフレーム分になる(筈)だから準備しておけ」(大意)
・ターゲット(.wav) イメージをメモリに確保
・ターゲットイメージに .wav のヘッダをセット
・総フレーム数がわかっているので 'RIFF' 'data' それぞれにデータ長をセット
・ターゲットイメージ 'data' に波形データを書き込む
・SyroVolcaSample_GetSample() を呼出すと、1フレーム分(16bit,左右)が返る
・総フレーム分、繰返す
2015/01/05 追記:
・ここで波形に変換(呼出し毎ではない)
・後始末 SyroVolcaSample_End()
・SyroData[] の後始末
・ターゲットイメージをファイル(.wav)に書出す
・ターゲットイメージのメモリを解放
「ソースを読みながら、ソース中にコメントを追加」だけのつもりが…
変えた:
・Syro で定義している型(構造体)名のアタマに 'T'を付加 (Borland っぽく)
・korg_syro_volcasample.h (元の場所 SDK syro\)
・<windows.h> を include し、型名 BYTE,WORD,DWORD を使用
・変数名変更 (「ソースのドキュメント性向上」のつもり)
・コンパイルは通る
・上記 test.bat で、生成 syro stream のテストは OK
・単サンプルの元データが 16bit/Mono のみ
・16bit/Stereo 24bit/Mono 24bit/Stereo のテストデータも用意したほうがよいか?
引き続き、本丸に乗り込む わくわく
(いや、別に敵じゃないけどね)
次へ:06 ソースを弄る(3)
前へ:04 ソースを弄る(1)
変更後の korg_syro_volcasample_exsample.c :
↓ ダウンロード