Format-Tag:
0x4243 = Divio G726 Divio, Inc. !
Interesting I just messing around with the Soundbank files from Guitar Pro 6.
From version Guitar Pro 6.1.4 to Guitar Pro 6.1.5 they nearly halfed the size of the soundbank.
Well these are *.wav files but with some strange Codec.
the TwoCC in the RIFF header are these:
Format-Tag:
0x4342 'CB' -> Bigger File (GP 6.1.4)
=FLAC?
0x4243 'BC' -> Smaller File (GP 6.1.5)
=OGG?
there is also some OverLoud.dll.
Well but the main thing is WavFile.dll.
So far I guess the compression is somehow
FLAC or vorbis ogg since there is that String:
"reference libFLAC 1.2.1
20070917"
Wow
http://xiph.org/flac/changelog.html
FLAC 1.2.1 (
17-Sep-2007)
What a coincidence as well as this
libraries:
...
Added support for encoding the residual coding method introduced in libFLAC 1.2.0 (RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) which will encode 24-bit files more efficiently.
and the string 'PARTITIONED_RICE2' inside WavFile.dll.
Anyway that is the interesting export GP6 uses to open these files:
[ord_01]
public: utils::WavFile::WavFile(
class filesystem::FileSystem &,
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)
Caller passes the filename in form of some QT-filesystem object. WavFile will open that file and do the decompression.
... and there are more cool API's
[ord_25] public: utils::WavFile::setCompression(enum utils::WavFile::Compression,int)
and this:
[ord_24]
public: utils::WavFile::save(
class filesystem::FileSystem &,
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)
The Plan:
Decompress:
WavFile::WavFile("Clarinet-Blow-Sus-NoVibr-00-none-076-none-none.wav")
WavFile::setCompression(0x1)
WavFile::save()
Compress:
WavFile::WavFile("Clarinet-Blow-Sus-NoVibr-00-none-076-none-none.wav")
WavFile::setCompression(0x4342)
WavFile::save()
However oh dear that C++ 'decorated' calls really sucks. At the moment it's somehow to complicated for me to just call this from 'outside'. Like using a Python script or some C++ code.
So the plan for now is to hack into GP6 some setCompression & WavFile::save call...