利用できるSFZの制約
Sound Signal Processing Library for Spresense (ssprocLib) の SFZSink クラスはSFZ形式のサウンドフォントを利用できるが、どんなSFZを使えるわけではなく制約がある。
変換スクリプト
琴の音色
試しに下記で琴の音色のSFZデータ (音源サンプルファイルはFLAC、また pitch_keycenter も使用) をダウンロードして、KOTO\Sustain_Front.sfz を上記のスクリプトで変換してみた。
しかしなぜか再生できない。SFZファイルの仕様に詳しくないのでよく分からないが、あまり複雑なSFZファイルには対応できないのかも。そこで、サンプルコード用の音源ファイル(こちら) の SawLpf.sfz を参考に手作業で簡単なSFZファイルを作成したところ、再生に成功した。ポイントとして、SawLpf.sfz は持続的なノコギリ波の音色なので loop_mode=loop_continuous だが、琴は撥弦楽器であり持続しないので loop_mode=no_loop とした。それにともない、loop_start や loop_end もなくした。
<group> loop_mode=no_loop <region> key=50 sample=Koto/050050_Front_d3_Sustain1.wav <region> key=51 sample=Koto/051051_Front_d#3_Sustain1.wav <region> key=52 sample=Koto/052052_Front_e3_Sustain1.wav <region> key=53 sample=Koto/053053_Front_f3_Sustain1.wav <region> key=54 sample=Koto/054054_Front_f#3_Sustain1.wav <region> key=55 sample=Koto/055055_Front_g3_Sustain1.wav <region> key=56 sample=Koto/056056_Front_g#3_Sustain1.wav <region> key=57 sample=Koto/057057_Front_a3_Sustain1.wav <region> key=58 sample=Koto/058058_Front_a#3_Sustain1.wav <region> key=59 sample=Koto/059059_Front_b3_Sustain1.wav <region> key=60 sample=Koto/060060_Front_c4_Sustain1.wav <region> key=61 sample=Koto/061061_Front_c#4_Sustain1.wav <region> key=62 sample=Koto/062062_Front_d4_Sustain1.wav <region> key=63 sample=Koto/063063_Front_d#4_Sustain1.wav <region> key=64 sample=Koto/064064_Front_e4_Sustain1.wav <region> key=65 sample=Koto/065065_Front_f4_Sustain1.wav <region> key=66 sample=Koto/066066_Front_f#4_Sustain1.wav <region> key=67 sample=Koto/067067_Front_g4_Sustain1.wav <region> key=68 sample=Koto/068068_Front_g#4_Sustain1.wav <region> key=69 sample=Koto/069069_Front_a4_Sustain1.wav <region> key=70 sample=Koto/070070_Front_a#4_Sustain1.wav <region> key=71 sample=Koto/071071_Front_b4_Sustain1.wav <region> key=72 sample=Koto/072072_Front_c5_Sustain1.wav <region> key=73 sample=Koto/073073_Front_c#5_Sustain1.wav <region> key=74 sample=Koto/074074_Front_d5_Sustain1.wav <region> key=75 sample=Koto/075075_Front_d#5_Sustain1.wav <region> key=76 sample=Koto/076076_Front_e5_Sustain1.wav <region> key=77 sample=Koto/077077_Front_f5_Sustain1.wav <region> key=78 sample=Koto/078078_Front_f#5_Sustain1.wav <region> key=79 sample=Koto/079079_Front_g5_Sustain1.wav <region> key=80 sample=Koto/080080_Front_g#5_Sustain1.wav <region> key=81 sample=Koto/081081_Front_a5_Sustain1.wav <region> key=82 sample=Koto/082082_Front_a#5_Sustain1.wav <region> key=83 sample=Koto/083083_Front_b5_Sustain1.wav <region> key=84 sample=Koto/084084_Front_c6_Sustain1.wav