dawtool

repository·master·Indexed 42 days ago

https://github.com/offlinemark/dawtool

A tool for parsing and extracting data from Digital Audio Workstation (DAW) files, specializing in high-accuracy time marker extraction. Supports Ableton Live set (.als) v8-12, FL Studio project (.flp) v10-11 and v20, and Cue sheets (.cue). Provides both a CLI and a Python API for extracting markers and project data.

Tokens
570
Snippets
4
Records
5
Agent score
3%

What's inside dawtool

  1. Extract time markers using the Simple Python API

    master

    If you only need to extract time markers, use the dawtool.extract_markers(filename, file_handle) function. You must provide the filename and a file handle opened in binary read mode ('rb'). The function returns a list of marker objects, each containing .time and .text attributes.

    import sys
    import dawtool
    
    filename = sys.argv[1]
    with open(filename, 'rb') as f:
        markers = dawtool.extract_markers(filename, f)
        for marker in markers:
            print(marker.time, marker.text)
  2. Extract markers and project data using the Advanced Python API

    master

    For access to more data (such as tempo automation), use the advanced workflow:

    1. Load the project using dawtool.load_project(filename, file_handle).
    2. Call proj.parse() to parse the project and recompute time markers.
    3. Access data via the project object (e.g., proj.markers).
    import sys
    import dawtool
    
    filename = sys.argv[1]
    with open(filename, 'rb') as f:
        # Load project based on file extension
        proj = dawtool.load_project(filename, f)
        # Parse project, recompute time markers
        proj.parse()
        # Access project data
        for marker in proj.markers:
            print(marker.time, marker.text)