-
Notifications
You must be signed in to change notification settings - Fork 6
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
Incorrect parsing of ASD files saved on macOS Ableton 10.1.30 #1
Comments
Hi, thanks for trying it and filing the issue. What version of Ableton Live created the file? I've only tested Ableton 9 and 10. Do you observe the same issue with an audio file which you could share along with the asd file? Feel free to email me directly at [braun][at symbol][ccrma.stanford.edu]. The units are beats, like quarter notes, so 4.0 indicates 4 quarter notes. To convert to seconds in the output audio, you can multiply by (seconds per quarter note = 60/ target bpm), but if the target BPM is changing over time then it's more complicated. Then it's like an integral equation. |
I see, thanks for your response. I've created a repo where you should be able to reproduce my results here: https://github.com/wyhinton/asdparsingissue. Ableton version is 10.1.30. Hmm even with the units being beats, it seems like the values I'm getting back are very large. It does look like the parser is picking up that the end marker is a greater value than the start marker. Debugging the clip I get the following:
|
Thanks for trying this and sharing your files. I'm also using Ableton 10.1.30 on Windows. With your script, I see the same weird output. If I just resave the asd as-is, then it works correctly:
I guess my hex hackery is not as reliable as I had hoped 😢 Does this asd have any features that I may have missed? I didn't see automation of parameters or anything else to complicate it. |
Odd that it looks like that when you drag it in as warp is not enabled on the clip when I load it. I do have automatic warping turned off in my Ableton Preferences though. After some more tests thought it looks like warp being on/off is not the cause of the problem. Testing a clip with warp enabled, I'm still getting the odd numbers for everything but the warp markers: ic| clip.loop_on: False
ic| clip.start_marker: 5.742306885616792e+72
ic| clip.end_marker: 1.9271279672093702e+87
ic| clip.loop_end: 2.5933863806803696e+161
ic| clip.hidden_loop_start: 1.366487708774349e+241
ic| clip.hidden_loop_end: 3.3328279543797095e+178
ic| clip.warp_markers: [WarpMarker(seconds=14.0,beats=0.0),
WarpMarker(seconds=14.015625,beats=0.03125)]
ic| clip.warp_on: False
ic| clip.sr: 44100
ic| clip: <abletonparsing.Clip object at 0x7f9c4805ca00> So it seems like parsing the hex data for the WarpMarkers is working regardless of the OS ( Oddly it seems that I see, I'm on macOS Big Sur with an M1 Chip, I wonder if that has anything to do with it. I'm not familiar with reverse engineering file formats, but any thoughts on what could be going on here? |
I think for my purposes I'm just going to record the start and end positions of the clips manually. But, as a note, I just realized that if a clip does not have warping activated, then the sample viewer uses minutes-seconds-milliseconds instead of bars-beats-sixteenths for the start/end of the clip. So I guess that's something people should be aware of when trying to do conversions. See the "Playing and Scrubbing Clips" section from the ableton docs:
|
Lots of the parameters/fields inside the ASD file work independently of each other. I think that Ableton will toggle the field for warp_on without destructively removing warp markers, for example. I think that Ableton always has at least two warp marker for a clip and those implicitly define the BPM. It's actually ok if these values are very wrong, but there might always be at least two warp markers. This is why you see beats=0.0 and beats=0.03125. This is the internal data representation. This also allows Ableton to store many of the fields as values in units of beats rather than milliseconds. For example, the milliseconds for start_marker do not seem to be stored in the ASD file because they don't need to be. You can store a I'll keep this macOS issue on my radar. Thanks again for pointing it out. |
I am running Ableton Live Lite 11 on Windows 10 and am seeing similarly inappropriate values. This of course is likely to be due to a different version of Live but one might expect a degree of compatibility between versions. I used one of the built in samples.
|
I'm running the provided example and having a hard time understanding the values of Clip.start_marker/Clip.end_marker. The time values returned seem to be very large, what units are they in? Is there a way to convert this value to seconds?
The text was updated successfully, but these errors were encountered: