From ed2e5f90bb2273e4444aed9bb73411b9f8752d1e Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 23 Aug 2020 12:30:36 +0100 Subject: vague attempt at dumping a tsf object statically I don't think it can be done, the `fontSamples` are a float array but we can't see how big --- sf-compile/sf-compile.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sf-compile/sf-compile.cpp (limited to 'sf-compile/sf-compile.cpp') diff --git a/sf-compile/sf-compile.cpp b/sf-compile/sf-compile.cpp new file mode 100644 index 0000000..aab971b --- /dev/null +++ b/sf-compile/sf-compile.cpp @@ -0,0 +1,56 @@ +#include +#include + +#define TSF_IMPLEMENTATION +#include "../tsf/tsf.h" + +void dumpChars(std::ostream& os, const char *ptr,size_t size) { + os << "{" << std::hex; + for (size_t i=0;ipresets, presetEnd = preset + f->presetNum; preset != presetEnd; preset++) { + std::cout << " {\n" + << " .presetName= "; + dumpChars(std::cout,preset->presetName,20); + std::cout << ",\n" + << " .preset= " << preset->preset << ",\n" + << " .bank= " << preset->bank << ",\n" + << " .regionNum= " << preset->regionNum << ",\n" + << " },\n" + ; + } + std::cout << "};\n"; + + std::cout << "tsf theSoundFont PROGMEM = {\n" + << " .presets= g_presets,\n" + << " .fontSamples = " << f->fontSamples << ",\n" + << " .voices= 0,\n" + << " .channels= 0,\n" + << " .outputSamples= 0,\n" + << " .presetNum= " << f->presetNum << ",\n" + << " .voiceNum= " << f->voiceNum << ",\n" + << " .maxVoiceNum= " << f->maxVoiceNum << ",\n" + << " .outputSampleSize= " << f->outputSampleSize << ",\n" + << " .voicePlayIndex= " << f->voicePlayIndex << ",\n" + << " .outputmode= TSF_MONO,\n" // cheat + << " .outSampleRate= " << f->outSampleRate << ",\n" + << " .globalGainDB= " << f->globalGainDB << ",\n" + ; + + + std::cout << "};\n"; + + TSF_FREE(f->fontSamples); +} -- cgit v1.2.3