Simplified BMK2 file
<?xml version="1.0" encoding="UTF-8"?>
<BM2 Description="Description Name" FileType="4" ProductType="BMKS" SigDen="4" SigNum="4" VersionMajor="2" VersionMinor="1" VersionRevision="2">
<KeyboardSampler DisplayName="Display Name" Name="inst" Order="0" Polyphony="5" PolyphonyMode="0" PresetPath="bmuser:/bmk2/Filename.bmk2">
<LinearAHDSR AttackAmplitude="0.00000000" AttackTime="0.00000000" DecayAmplitude="1.00000000" DecayTime="0.00000000" HoldTime="0.00000000" KillAfterRelease="true" ModDestScaleParamID="0" ModEnabled="true" ModFollowVoices="true" ModScaleRatio="0.00000000" ModUseKeyAsScale="false" ModUseVelocityAsScale="false" Name="ahdsr0" Order="0" ReleaseTime="0.50000000" SustainAmplitude="1.00000000" _AttackTime="73" _DecayTime="74" _ReleaseTime="76" _SustainAmplitude="75"/>
<LinearAHDSR AttackAmplitude="0.00000000" AttackTime="3.00000000" DecayAmplitude="1.00000000" DecayTime="3.00000000" HoldTime="0.00000000" KillAfterRelease="false" ModDestScaleParamID="0" ModEnabled="false" ModFollowVoices="true" ModScaleRatio="0.00000000" ModUseKeyAsScale="false" ModUseVelocityAsScale="false" Name="ahdsr1" Order="0" ReleaseTime="3.00000000" SustainAmplitude="1.00000000" _AttackTime="77" _DecayTime="78" _ReleaseTime="80" _SustainAmplitude="79"/>
<SimpleFilter DisplayName="FILTER" InsertEffectBypass="true" InsertEffectVoiceProcessing="true" Name="filter" Order="0" ProcessorOutputBusName="Render" SFilterCutoffFrequency="3000.00000000" SFilterFilteringMode="0" SFilterKeyFreqAmount="0.00000000" SFilterResonance="0.25000000" _SFilterCutoffFrequency="70" _SFilterKeyFreqAmount="72" _SFilterResonance="71"/>
<Keygroup KeygroupBaseKey="33" KeygroupExclusiveGroup="0" KeygroupHighKey="33" KeygroupHighVelocity="127" KeygroupLayer="-1" KeygroupLowKey="33" KeygroupLowVelocity="0" KeygroupMute="false" KeygroupOneShot="false" KeygroupPan="0.000000" KeygroupPolyphony="0" KeygroupVolume="1.000000" Name="kg0" Order="0" ProcessorOutputBusName="IN" ProcessorOutputBusPath="../../">
<SampleRenderer LoopEnd="310215" LoopStart="226952" LoopType="1" Name="renderer" Order="0" RendererPitch="1.00000000" Reverse="false" SampleEnd="310232" SamplePath="Note33.wav" SampleStart="0" UseSampleInfo="false">
</SampleRenderer>
</Keygroup>
<LFO LFOAmpOrigin="0.20000000" LFOAmplitude="0.80000001" LFORate="0.05000000" LFOSyncRate="33" LFOType="0" ModDestScaleParamID="0" ModEnabled="false" ModFollowVoices="true" ModScaleRatio="0.00000000" ModUseKeyAsScale="false" ModUseVelocityAsScale="false" Name="lfo0" Order="0" _LFOAmpOrigin="82" _LFOAmplitude="81" _LFORate="83"/>
<LFO LFOAmpOrigin="0.50000000" LFOAmplitude="0.50000000" LFORate="0.00200000" LFOSyncRate="33" LFOType="3" ModDestScaleParamID="0" ModEnabled="false" ModFollowVoices="true" ModScaleRatio="0.00000000" ModUseKeyAsScale="false" ModUseVelocityAsScale="false" Name="lfo1" Order="0" _LFOAmpOrigin="85" _LFOAmplitude="84" _LFORate="86"/>
<Portamento ModDestScaleParamID="0" ModEnabled="true" ModFollowVoices="true" ModScaleRatio="0.00000000" ModUseKeyAsScale="false" ModUseVelocityAsScale="false" Name="portamento" Order="0" PortamentoGlideTime="0.00000000" _PortamentoGlideTime="5"/>
</KeyboardSampler>
</BM2>
I stripped everything out of a bmk2 file that wasn't needed, most of it should be explanatory.
Keygroup holds all your mapping for a single sample
Copy and paste keygroups to add a new sample to the layer.
Might be a quicker way to create multisampled instruments for some.
If i get chance at some point i will make an exe to simplify this even more. (no promises, in fact unlikely unless i get less busy)
Comments
You just made my day btw. Didn’t even know you posted this.
Hahahaha at least somebody might find it useful haha
Yeah you just saved me a ton of work. Expect a more advanced batch creator soon.
Well I say soon..I probably shouldn't say that. Lol.
I have no idea why Intua chose to not make the BMK3 human readable text, seems completely stupid to be honest.
No it's completely smart. But I'm not going to talk about that here.
The only thing I wish was still in xml was .bma filesso I could build my controller setups on a different platform. That’s it. But I understand why.
Its not smart at all, sorry, but the most robust project file format currently available is Reaper, why, because it is human readable and editable in any text editor, it cant corrupt because you can fix it, it allows multiple open types for analysis and fixing, all because it isn't in some nonsense proprietary format, it is not like anything is being encrypted here.
I wont comment any further for fear of getting annoyed, one of my pet peeves is developers using closed crap that stops 3rd party development.
I don’t think reaper has a sound store either.
but making the project/kit file format proprietary doesn't really protect anything important, or stop from sharing. Intua have a store, and they make some great things available in there, but it's already easy enough to create your own kits and share them, so you're not locked into the store ecosystem. the program itself being proprietary/obfuscated can protect from others ripping off the product and making clones, but why the projects and kits? maybe there's a performance benefit, but I dunno.
There are lots of reasons be maker 3 Has this. One reason being Way more advanced features than BeatMaker 2. It cant work with readable text. And doing so otherwise if it were coded like BM2 yes would expose to much.
Everything can work with readable text, that is fact.
All code is readable text before it is compiled, you can not have any extra features by not having readable text, that is nonsense.
Also it protects nothing at all, a readable format that says this sample here, that sample there, this filter setting that filter setting, how could that possibly need protecting, you just load it in the app to see it.
the only time it is worth doing this nonsense is if there is some built ins scripting engine (There is not) like Kontakt, where they want to lock you out from reading their script coding, and then even that can be done as encryption within the readable format.
The samples aren't encoded, which is the only part a 3rd party will want protected, so obviscating the bank file is silly.
Only other reason could be speed of loading, but there are not enough parameters for that to be an issue and lets not kid around, just installing banks seems to have serious issues with their non readable format.
There are absolutely zero reasons to have this other than the fact that they do not have to do the extra coding to support the parsing of the readable file, this is fact, unarguable, or are we suggesting that BMK3 is better than SFZ, because it certainly is not.
Lets be clear here, we are talking about bank files and session files, there is no code held within those, no proprietary data that is protected or needs protecting, nothing that could be stolen or use by somebody else, well that is unless they want to rob your reverb preset in a particular bank.
You can open a bmk3 in a text editor now, and just enough of it is non readable to make it useless, it is mostly readable.
Then again there is nothing beyond the realms of credulity that stops the team at Intua saying "Hey heres the formatting, go make an add on for your text editor"
Okay so the first version of the new batch kit creator I am building will be done in AHK or python and compiled as an executable. Planning a GUI, mapping editor will be built in, pad editor built in, bulk sample batching to pads or keys, files will save and create the folder structure required for BM3. Zip option will be available. No tagging, you can do that in BM3.
What does it do exactly ?
I dont get it, does it read sample names to know i want my kick on pad 1 etc, or does it just randonly put them on pads or alphabetically or something ?
I doubt i would ever actually use it, im not really that advanced, just wondering.
It's Intua Beatpack on steroids essentially for BM2/BM3. Simple or advanced. I plan on having sections that open platform file browser. You just load what samples you want. I'm only doing 16 pads/128 keys. Not anymore. The app will do all the heavy lifting as far as assigning pad numbers/keymaps. Might provide options. Bank name option will be available as well. Save as .bmk2/.bmk3. Any changes to the bank in BM3 if resaving bank will rewrite it to an offical bm3k database file.
Yeah that doesn't really make it any clearer to me, does it use some kind of default mapping or alphabetical or what ?
I have no idea what Beatpack is.
Intua made a kit creator for Beatmaker 1 way back called Beatpack. They haven’t made an app to do this since. Don’t know if they are going to either. The windows version link is broken, and the Mac version doesn’t work on latest macOS. Plus, The batch kit creator posted on these forums is Just a bmk2 bank preset creator for 16 pads. It has no additional features because it was using BM1 xml markup. I’m going to build this using BM2’s xml markup.
Do you want to have default mapping presets? I had planned on making it simple and advanced, but if you want that I could probably do that.
Rephrasing this. It’s not an official Intua product or database. BM3 will convert it to an BM3 database if you save the bank in BM3. I’m not reverse engineering BM3 here. I’m reverse engineering all the markup from BM2 that still works with BM3 just as @misho did with his batch kit creator for BM2.
No, don't add features for me, i will never use it anyway, i like making kits by hand so they are exactly as i want, i'm that guy who hates transient detection in slicers (because it is crap hahaha) i do everything manually
This doesn't do anything to your samples. It will build kits based on your own personal choices. It just batch builds bank presets for you. That's it. Way more of an app than just some basic script. Simplifying the process of file management errors, kit-building, sound packs, building instruments, key mappings, etc.
It's a fancy BM2 xml markup writer. That's it. Anyways, I've alot of projects to tend to. Thanks for inquiring!
Yeah its not for me, i like to do it by hand
Totally understand. I liked doing it by hand til I realized I wanted more time making music in BM3 and want others to be able to do the same.
It's funny. The archaeological dig (as Intua states in their promo video), is always there regardless if one builds tools or provides other resources to simplify the user experience. An user can always dig or get support here on these forums, by devs, or other users located on the web elsewhere.
I love how modular BM3 is. There are complexities to it that give you that 'A-ha!' feeling when you find out how to do something. That is beauty in itself, but when you get into truly serious production and performance scenarios, or new users just want to know where to start, learning a new DAW is sometimes daunting. I just want everyone to have loads of fun. put a spark in user creativity, and encourage others to do the same for others. Especially young kids who want to learn the future of music making.
Hi there !
Just bought Beatmaker 3 and I'm quite in love with it. I am interested in writing a desktop app (or at least try to do it) to simplify the use of sfz / sf2 libs inside BM3 (basically automate the export of an sfz / sf2 lib into bmk3 format) ...
I tried changing the .bmk3 into .txt / .xml but some characters are stil unreadable...
From what I can read here it seems that INTUA decided to make this format proprietary... Any news on that ? Any answer from INTUA guys ?
Thanks and Happy new Year !