- Notifications
You must be signed in to change notification settings - Fork10
Reverse-engineered parsers for Ableton Live & FL Studio project files.
License
offlinemark/dawtool
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
dawtool parses and extracts data from Digital Audio Workstation (DAW) fileformats.
It provides a high accuracy implementation oftime marker extraction,including support for projects with tempo automation.
Supported formats:
- Ableton Live set (.als) [v8-12]
- FL Studio project (.flp) [v10-11, 20]
- Cue sheet (.cue)
Just browsing? Here are a fewpoints of interest in the codebase.
Time markers allow users to annotate the DAW timeline with text. Certain usecases benefit from the ability to export these annotations, such astimestamping a DJ mix, podcast, or film.
dawtool implements time marker export for DAWs that do not implement itnatively, showcasing how DAWs can be extended through project filemanipulation.
For more on how dawtool works, see thetalkabout it at the 2020 Audio Developer Conference.
Time markers are the only officially supported output. However much moreof the formats are available through internal APIs, such as tempo automationdata.
Simple API (Markers Only)
importsysimportdawtoolfilename=sys.argv[1]withopen(filename,'rb')asf:markers=dawtool.extract_markers(filename,f)formarkerinmarkers:print(marker.time,marker.text)
Advanced API (Markers & Other Data)
importsysimportdawtoolfilename=sys.argv[1]withopen(filename,'rb')asf:# Load project based on file extensionproj=dawtool.load_project(filename,f)# Parse project, recompute time markersproj.parse()# Access project dataformarkerinproj.markers:print(marker.time,marker.text)
$ dawtool -m my-dj-mix.als00:00.000 nciku - peaceofmind02:15.115 comfort - a n g e l _ w i n g s05:18.654 rose bride rings - femme fatale06:52.654 ranov - butterfly08:47.077 scalade - tempura VIP10:57.423 mirvs - defrosted
dawtool requires Python 3.7 or greater.
pip install git+https://github.com/offlinemark/dawtool
dawtool is production ready. Ahosted versionhas processed 10,000+ project files since March 2020.
Both the API and CLI should be considered unstable andsubject to change.
Tempo automation is supported for linear automation only. Nonlinearautomation may cause inaccuracies.
dawtool's .flp parser is based on work from theLMMS,PyDaw, andFLParser projects.
About
Reverse-engineered parsers for Ableton Live & FL Studio project files.