-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Native Instruments (Traktor) Format #31
Comments
hi @kartguru thanks for this pointer. Actually I don't have access to Traktor so I can't test this. Your help would be appreciated here, as the intended output should be compatible with NI stems. Do you get an error message? can you try to rename to |
No probs @faroit. I can load it into Traktor as m4a or mp4 but am unable to load it as a stem track. It plays just doesn't allow the manipulating of the individual stems. I'm not sure if there are other uses for Stem files so just mentioning my experience with Traktor. In the dev toolkit you can read about the requirements of the *.stem.mp4 file. "The Stem File format mostly relies upon already existing box types and introduces only one new box called stem". https://github.com/axeldelafosse/stemgen uses the toolkit to create stems. You can download the trial of Traktor pretty easily. The demo allows for 30 mins of play time before you need to exit out. |
@kartguru yes I know about the NI "dev-kit" which is actually just a wrapper around mp4box but this would come with extensive additional requirements since mp4box is not easily installable with conda or other common package managers. Therefore I would like to stick with ffmpeg if possible. The real issue here now is how to create compatible files with valid metadata just using ffmpeg. Maybe @axeldelafosse can help here as he does seem to have more experience with NIs mp4box interface. I would love to join forces here ;-) |
Hey @faroit -- definitely agree with you, let's find a way to make it work with ffmpeg. Love this approach. I'll have a look! |
@axeldelafosse It would be interesting to know if its just a metadata issue. Because in that case we would just need Maybe just comment out the metadata writing and see if traktor can still open the file... |
I did some testing. Yes, it is a metadata issue. But it's not the tags saved with
Here's the metadata I'm using (they are mapped with spleeter stems, respect the Stem color code and look nice in Traktor): https://github.com/axeldelafosse/stemgen/blob/master/metadata.json#L22-L27 They are passed with |
interesting. So while the actual metadata is just a binary encoded json, I don't find any information if this is insertable into the UDTA with ffmpeg... Maybe it would be easier to add |
Probably! |
or manually edit the binary header... but I'm not sure if python it the right language to do that ;-) axiomatic-systems/Bento4#30 |
Haha! I'm not familiar with conda-forge, I'll dig into it. |
maybe this is out-of-scope and we should ask for this upstream |
I thought you would say that ... and I think longterm its a better approach as NI don't (seem to) support their dev kit anymore (ref: https://www.native-instruments.com/forum/threads/who-wants-to-generate-stems-files.260123/page-8#post-1867507). For me ni-stem CLI doesn't work in Win 10 and NI said they will not support so I have their Stem Creator software (slow process) or to look at other options. |
coming back to this. Would someone be able to convert my |
sure i can give it a shot. do you have the separated tracks? |
In the process of adding ffmpeg and trying the mp4box win install I can now run the ni-stem successfully BUT I still like the path you are headed down @faroit |
well you can just demux them with stempeg ;-) |
hahaha, of course, i was always interested in the other way so forgot about this feature. it worked well i just had to run as Here's the Stem Creator details for your reference Unfortunately I am not a coder nor github expert ... just a hack who sometimes reports bugs where I can and as best I can. I assume I just upload the file with the intention to overwrite. If so I need 'push access to this repository'. Let me know if I'm wrong. I'm dream feeding a 6 month old child in a few minutes then off to bed so I'll pick up in the morning. |
@kartguru thanks for your help. I will try on my machine in the next days and get back to you soon. |
Hey guys! Sorry for the delay, I'm pretty busy during the week. I'm on it! |
@axeldelafosse just another idea: There is a preview release of mp4box that includes "Full FFMPEG support". Maybe that could reduce the toolchain, so we should dev look into mp4box. |
Here we go: #32 |
Nice! Agree. Any news regarding mp4box on conda-forge? How can I help? |
Maybe we can together work on a conda recipe. Feel free to kick this off yourself, I won't have much time this week. The build scripts seem quite simple. Maybe just start by looking at other package managers such as homebrew |
Let's do it. I started to work on it, testing on Unix first. Let's catch up when you have more time. Have a good one! |
@axeldelafosse did you had some time to look into a mp4box conda package? |
Not since last time, sorry :( |
@axeldelafosse no worries. Will have a look next week. |
back to this. I figured out the metadata. Its actually quite simple the trick is that the json also needs to have the meta = {
"mastering_dsp": {
"compressor": {
"ratio": 3,
"output_gain": 0.5,
"enabled": False,
"release": 0.300000011920929,
"attack": 0.003000000026077032,
"input_gain": 0.5,
"threshold": 0,
"hp_cutoff": 300,
"dry_wet": 50
},
"limiter": {
"release": 0.05000000074505806,
"threshold": 0,
"ceiling": -0.3499999940395355,
"enabled": False
}
},
"version": 1,
"stems": [
{"color": "#009E73", "name": "Drums"},
{"color": "#D55E00", "name": "Bass"},
{"color": "#CC79A7", "name": "Other"},
{"color": "#56B4E9", "name": "Vocals"}
]
} and voila... this can be added to a file (in-place) using mp4box stempeg/data/The\ Easton\ Ellises\ -\ Falcon\ 69.stem.mp4 -udta "0:type=stem:src=base64,eyJtYXN0ZXJpbmdfZHNwIjogeyJjb21wcmVzc29yIjogeyJyYXRpbyI6IDMsICJvdXRwdXRfZ2FpbiI6IDAuNSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbGVhc2UiOiAwLjMwMDAwMDAxMTkyMDkyOSwgImF0dGFjayI6IDAuMDAzMDAwMDAwMDI2MDc3MDMyLCAiaW5wdXRfZ2FpbiI6IDAuNSwgInRocmVzaG9sZCI6IDAsICJocF9jdXRvZmYiOiAzMDAsICJkcnlfd2V0IjogNTB9LCAibGltaXRlciI6IHsicmVsZWFzZSI6IDAuMDUwMDAwMDAwNzQ1MDU4MDYsICJ0aHJlc2hvbGQiOiAwLCAiY2VpbGluZyI6IC0wLjM0OTk5OTk5NDAzOTUzNTUsICJlbmFibGVkIjogZmFsc2V9fSwgInZlcnNpb24iOiAxLCAic3RlbXMiOiBbeyJjb2xvciI6ICIjMDA5RTczIiwgIm5hbWUiOiAiRHJ1bXMifSwgeyJjb2xvciI6ICIjRDU1RTAwIiwgIm5hbWUiOiAiQmFzcyJ9LCB7ImNvbG9yIjogIiNDQzc5QTciLCAibmFtZSI6ICJPdGhlciJ9LCB7ImNvbG9yIjogIiM1NkI0RTkiLCAibmFtZSI6ICJWb2NhbHMifV19" I am now working on a PR |
Cool! |
@axeldelafosse next question: how does traktor handle the
That means the mix will be the first mp4 substream but doesn't get any metadata? |
I think Traktor doesn't use the And I'm not sure about the metadata but I guess you are right: |
@axeldelafosse alright. Then, I wonder about
|
I have no idea, sorry... |
fixed in #28 , documentation will be added asap |
Hi, I found 'The Easton Ellises - Falcon 69.stem.mp4' didn't load up as a Stems file in Traktor. Was that an intended output for stempeg?
The text was updated successfully, but these errors were encountered: