# Jukeblocks > Jukeblocks is a music arrangement tool for producers. It generates DAW project templates, rearranges existing loops into full song structures, and converts project files between DAWs. ## Features ### Song Template Generator Generates complete song arrangements (intro, verse, chorus, bridge, outro) as ready-to-use project files for your DAW. Choose a genre and download a structured template with drums, bass, chords, and melody tracks laid out in a grid. Supports MIDI export and the following DAWs: Ableton Live, FL Studio, Logic Pro, Studio One, Reaper, LMMS, and Bitwig Studio. ### Rearranger Upload an existing 8-bar loop or unfinished project and Jukeblocks will rearrange it into a full song structure in your chosen genre. Works with FL Studio and Ableton. Name your tracks (Kick, Snare, Bass, Lead, Chords, etc.) for best results. The algorithm can also add extra tracks and patterns to help flesh out the arrangement. ### DAW Converter Convert project files between DAW formats, including MIDI, audio references, and plugin settings. Useful for collaborating with producers on a different DAW. ### Developer API The Jukeblocks API generates Ableton Live (.als) and FL Studio (.flp) project files programmatically from JSON. Send a UAF (Universal Arrangement Format) JSON body to `POST https://jukeblocks.io/api/v1/build/` with an `X-API-Key` header and receive a binary project file. Useful for tools, automations, and integrations that need to output DAW sessions (tracks, MIDI clips, audio placement, routing, arrangement) from structured music data. Ableton and Image-Line do not publish official project-generation APIs; Jukeblocks is an independent service and is not affiliated with either company. Example clients are available in JavaScript, Python, and cURL. Response: `200 application/octet-stream` with the binary project file. The filename (e.g. `jukeblocks_built.als` or `jukeblocks_built.flp`) is set via the `Content-Disposition` header. Errors return JSON with a `message` field (e.g. 400 missing field, 401 invalid API key). Audio file handling: UAF clips reference audio by `sample_id` (mapped to `project_data.samples[*].path`) or directly by `path`. The API records the path verbatim into the resulting project file; it does not upload, embed, or verify audio data. Use relative paths (e.g. `./kick.wav`) and ship the audio files alongside the project (e.g. in a zip) so the DAW can resolve them on the user's machine. Minimal API example: ``` curl -X POST https://jukeblocks.io/api/v1/build/ \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -o project.als \ -d '{"daw":"ableton","uaf":{"tracks":[{"type":"midi","name":"Lead","clips":[{"start_time":0,"duration":4,"notes":[{"start_time":0,"duration":1,"pitch":60}]}]}]}}' ``` ## Supported Genres Free: Pop, Trap, Hip Hop, House, EDM, Future Bass, Drum and Bass, Hardstyle, R&B, Bass House, Hyperpop, Trance, Eurodance, Video Game. Pro: Synthwave, Phonk, Lofi Hip Hop, Techno, Pop Trap, Cyberpunk, Midtempo, Progressive Pluck House, French House, Random Genre. ## Links - Homepage / Generator: https://jukeblocks.io - Rearranger: https://jukeblocks.io/rearrange/ - DAW Converter: https://jukeblocks.io/convert/ - Pricing: https://jukeblocks.io/subscribe/ - FAQ: https://jukeblocks.io/about/ - API overview: https://jukeblocks.io/api/ - API documentation: https://jukeblocks.io/api/documentation/daw-project-api/ - API pricing: https://jukeblocks.io/api/pricing/ - OpenAPI spec (machine-readable): https://jukeblocks.io/openapi.json - UAF JSON Schema: https://jukeblocks.io/schemas/uaf.schema.json