Complile HLAC tool for standalone wav to monolith conversion
-
@mwplugs Map your samples inside HISE and save as sample maps (or create them manually using an XML editor). Then in HISE go to
Tools >> Convert all samples to monolith + samplemap
-
@d-healey there are thousands of one shots and i want each to be a .ch1 monolith file. not one monolith for all
-
@mwplugs The reason to use a monolith is to bundle up a collection of wav files. If you are just trying to restrict the users access to the wavs then that's not really the best way to go. Especially since the source code of HISE is open to anyone, if someone with a bit of C++ knowledge wanted to un-monolith them they would be able to.
Since the .ch files will only work in HISE anyway why not just map your samples into an instrument and export? What else would use use the .ch files for?
-
@d-healey said in Complile HLAC tool for standalone wav to monolith conversion:
The reason to use a monolith is to bundle up a collection of wav files. If you are just trying to restrict the users access to the wavs then that's not really the best way to go.
This. The "copy protection" (if you could call it that) in the HLAC monoliths is that it puts the entire samples into one chunk so that the rogue end user would have to first convert it back from HLAC format (which is trivially, since it's an open format), but then find out the exact start and end points, loop points, etc.
Usually this requires more effort than the "brute force attack", which would be running something like sample robot over your instrument, so you're kind of safe.Just using the HLAC codec for obfuscating the audio is definitely the wrong tool.
-
its quite simple really. the traditional user would have no idea what the format was or what to do with it. it is a oneshot based product. it uses the audio loop player, which reads the .ch1 files as is. knowing from past experience having a massively popular one shot product people will take the oneshot library if in wav format and distribute it pirated..this happened before with over 10k downloads. i know its a strange request but simple things like this really help. having the wav data exposed as wav and not was is interpreted as a proprietary format is kind of like leaving a door unlocked. so maybe that may help you understand my request.
-
@Christoph-Hart i had a few .ch1 files of oneshots sitting there from when i was messing with the sampler and noticed the audio loop player read them the same as wav. that is what gave me this idea. if you dont think this is a good idea do you have any suggestions?
-
The proper solution would be to use expansion packs for your content, then embed the single files in the expansion pack and encrypt the expansion properly.
You'll need to write the encryption yourself (or hire a C++ coder to do that for you), it's not very hard, but it can't be part of the open source base obviously. Also you can then decide for yourself which effort you want to put into the security of this (from embedding a simple RSA key in the binary to tracking users with a proper serial license system anything is possible).
-
@mwplugs so... do as @d-healey suggests, create the sampleMaps and then batch export them to monoliths and sample maps.
But instead of creating thousands of sampleMaps individually - write a small python program to generate the samplemap from the wav file name - include the note number in the name and you are good to go.
-
What if I'd like to generate HLAC files automatically from generated content, server side, for a HISE based app to download over the wire, to increase speed from individually fetching each WAV: Is it possible to programmatically instruct (some part of) HISE to do this? - like a CLI or API approach?
-
@bthj You'd need to add this functionality to the CLI.
-
@d-healey Is there already a CLI interface? - which I could add that functionality to? Where would be a good place acquaint myself with that (doc / source) ?
-
@bthj Yes you can run HISE from the terminal - I have a video about it on YouTube. I can't remember where in the source code it is but should be easy to do a text search for it once you know the available commands.