Back to Alchemy
Alchemy RecipeAdvancedworkflow

Music production from lyrics to mastered track

24 March 2026

Introduction

You've written lyrics. You've got a melody in your head. The last thing you want is to spend three hours manually uploading files, waiting for processing, downloading results, and uploading them somewhere else just to get a finished, mastered track.

Music production workflows are notoriously fragmented. Jammable AI generates instrumentals and arrangements from your lyrics and melody. LANDR masters your final mix to commercial standards. But between them sits a gap: manual file handling, repetitive uploads, and human coordination. If you're releasing music regularly, this friction compounds quickly.

This guide shows you how to build a zero-handoff workflow that takes raw lyrics, generates a complete arrangement, and delivers a mastered track without you touching a single file after hitting "go." We'll use Jammable AI, LANDR, and one of three orchestration platforms to automate the entire pipeline.

The Automated Workflow

Choosing Your Orchestration Tool

All three platforms (Zapier, n8n, Make) can accomplish this task. Here's what matters:

  • Zapier: Easiest setup, best for non-technical users. Pricing scales with task volume. Good if you release one or two tracks monthly.

  • n8n: Self-hosted or cloud-based. Cheapest at scale if you're releasing weekly. Requires more configuration but gives you complete control.

  • Make (Integromat): Middle ground on price and complexity. Strong webhook support. Excellent choice if you're combining this with other creative tools (video, graphics, social posting).

For this guide, I'll provide complete examples for all three, starting with n8n as the primary reference because it offers the most transparent pricing and control.

The Architecture

Here's the data flow:

  1. You submit lyrics and basic parameters to n8n via webhook.

  2. n8n forwards this to Jammable AI's arrangement endpoint.

  3. Jammable AI returns a generated track (usually as audio file URL or binary).

  4. n8n downloads the audio file and sends it to LANDR for mastering.

  5. LANDR processes the audio and returns a mastered version.

  6. n8n stores the final track in your chosen storage (AWS S3, Google Drive, or sends it to your email).

Setting up n8n

First, you'll need a running n8n instance. If you're using n8n Cloud, create an account and start a new workflow.

Create a webhook trigger node that accepts POST requests. This is what you'll call when you're ready to process a track.


POST /webhook/music-production
Content-Type: application/json

{
  "lyrics": "Verse 1 lyrics here...",
  "melody_key": "C",
  "genre": "indie-pop",
  "tempo": 120,
  "artist_name": "Your Name",
  "email": "you@example.com"
}

Node 1: Webhook Trigger

In n8n, add an HTTP Request node set to webhook mode. This receives the incoming request from you or your frontend.

Node 2: Call Jammable AI

Jammable AI doesn't have a single documented API endpoint in their public docs, but you can use their web endpoint through automation. For this workflow, we'll use their arrangement generation via their API (assuming you've obtained access to their API keys).


POST https://api.jammable.ai/v1/generate-arrangement
Authorization: Bearer YOUR_JAMMABLE_API_KEY
Content-Type: application/json

{
  "lyrics": "{{ $json.lyrics }}",
  "key": "{{ $json.melody_key }}",
  "genre": "{{ $json.genre }}",
  "tempo": {{ $json.tempo }},
  "include_vocals": false,
  "output_format": "wav"
}

In n8n, this looks like:


{
  "name": "Call Jammable AI",
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.1,
  "position": [400, 200],
  "parameters": {
    "url": "https://api.jammable.ai/v1/generate-arrangement",
    "method": "POST",
    "headerParameters": {
      "parameters": [
        {
          "name": "Authorization",
          "value": "Bearer {{ $env.JAMMABLE_API_KEY }}"
        }
      ]
    },
    "jsonBody": true,
    "body": {
      "lyrics": "= $json.lyrics",
      "key": "= $json.melody_key",
      "genre": "= $json.genre",
      "tempo": "= $json.tempo",
      "include_vocals": false,
      "output_format": "wav"
    }
  }
}

Node 3: Download Generated Audio

Jammable AI returns a URL to the generated audio file. We need to download this binary data to pass it to LANDR.


{
  "name": "Download Jammable Track",
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.1,
  "position": [600, 200],
  "parameters": {
    "url": "= $json.arrangement_url",
    "method": "GET",
    "responseFormat": "file",
    "outputPropertyName": "track_audio"
  }
}

Node 4: Call LANDR Mastering API

LANDR's API accepts audio files for mastering. You'll need a LANDR API key (available through their developer portal).


POST https://api.landr.com/v1/master
Authorization: Bearer YOUR_LANDR_API_KEY
Content-Type: multipart/form-data

audio: [binary audio file from Node 3]
preset: "balanced"
stem_separation: false
metadata:
  artist: "{{ $json.artist_name }}"
  title: "Generated Track"

In n8n:


{
  "name": "Send to LANDR",
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.1,
  "position": [800, 200],
  "parameters": {
    "url": "https://api.landr.com/v1/master",
    "method": "POST",
    "headerParameters": {
      "parameters": [
        {
          "name": "Authorization",
          "value": "Bearer {{ $env.LANDR_API_KEY }}"
        }
      ]
    },
    "sendBody": true,
    "bodyContentType": "form-data",
    "formData": {
      "multipart": true,
      "parameters": [
        {
          "name": "audio",
          "type": "file",
          "value": "= $binary.track_audio"
        },
        {
          "name": "preset",
          "value": "balanced"
        }
      ]
    }
  }
}

Node 5: Wait for LANDR Processing

LANDR processing is asynchronous. The API returns a job ID. You'll need to poll this endpoint until the mastered audio is ready.


GET https://api.landr.com/v1/master/{{ $json.job_id }}
Authorization: Bearer YOUR_LANDR_API_KEY

Add a loop node that calls this endpoint every 10 seconds until the status is "completed".


{
  "name": "Poll LANDR Status",
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.1,
  "loopParameter": "max_retries",
  "parameters": {
    "url": "https://api.landr.com/v1/master/{{ $json.job_id }}",
    "method": "GET",
    "headerParameters": {
      "parameters": [
        {
          "name": "Authorization",
          "value": "Bearer {{ $env.LANDR_API_KEY }}"
        }
      ]
    }
  }
}

Node 6: Download Mastered Track

Once LANDR returns a status of "completed", fetch the mastered audio file.


{
  "name": "Download Mastered Audio",
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.1,
  "position": [1000, 200],
  "parameters": {
    "url": "= $json.mastered_audio_url",
    "method": "GET",
    "responseFormat": "file",
    "outputPropertyName": "mastered_track"
  }
}

Node 7: Store Result

Store the final mastered track somewhere accessible. Options include AWS S3, Google Drive, or email.

For email delivery:


{
  "name": "Send Email",
  "type": "n8n-nodes-base.emailSend",
  "position": [1200, 200],
  "parameters": {
    "toEmail": "= $json.email",
    "subject": "Your Mastered Track is Ready",
    "textMessage": "Your track has been generated and mastered. Download it using the link below.",
    "attachmentsBinary": [
      {
        "property": "mastered_track"
      }
    ]
  }
}

For AWS S3:


{
  "name": "Save to S3",
  "type": "n8n-nodes-base.awsS3",
  "position": [1200, 200],
  "parameters": {
    "operation": "upload",
    "bucket": "your-music-bucket",
    "key": "= 'tracks/' + $json.artist_name + '/{{ Date.now() }}.wav'",
    "fileContent": "= $binary.mastered_track"
  }
}

Zapier Alternative

If you prefer Zapier, the workflow is similar but expressed through Zapier's interface:

  1. Trigger: Webhook (receive POST request)

  2. Action: Make a request to Jammable AI (Zapier's Code step)

  3. Action: Download file from URL returned by Jammable

  4. Action: Make a request to LANDR API

  5. Action: Repeat action (poll LANDR status until complete)

  6. Action: Download mastered file

  7. Action: Send email or upload to Google Drive

The Zapier setup is less granular but faster to set up if you've not used automation tools before. Each step maps to Zapier's existing integrations or Code blocks.

Make (Integromat) Alternative

Make offers strong webhook support and visual workflow building. The flow mirrors n8n:

  1. Create a custom webhook module as the trigger

  2. Use HTTP modules to call Jammable AI

  3. Use the built-in file handling to download the generated track

  4. Use HTTP modules to send to LANDR

  5. Add a router with a repeat loop for polling LANDR status

  6. Download the mastered file and send via email or store on cloud drive

The Manual Alternative

If you want more control over parameters or prefer reviewing each step before it executes, you can implement a hybrid approach: automate the handoff but require manual approval between stages.

Add conditional nodes in your workflow that send you a notification at key points. You review the Jammable output before sending to LANDR, for example. This takes longer but prevents automatic submission of a poor arrangement to mastering.

Alternatively, you can use LANDR and Jammable AI directly through their web interfaces if you're only producing a few tracks monthly. The workflow automation only pays off once the friction of repetition becomes obvious.

Pro Tips

Rate Limiting and Backoff

Both Jammable AI and LANDR have rate limits. Jammable typically allows 10 requests per minute for standard accounts. LANDR limits depend on your subscription tier. In n8n, add exponential backoff to HTTP nodes. If a request fails, wait 5 seconds, then 10, then 20, capping at 120 seconds. This prevents workflow failures from temporary service hiccups.


{
  "retry": {
    "type": "fixed",
    "errorOnly": true,
    "maxTries": 5,
    "waitBetweenTries": 5000,
    "exponentialBase": 2
  }
}

Error Handling and Notifications

Add error catchers in your workflow. If Jammable AI returns a 400 error (invalid lyrics format, for instance), the workflow should notify you instead of silently failing. Use n8n's error output pins or Zapier's error handlers.

Cost Optimisation

Watch your Jammable and LANDR usage. Jammable charges per arrangement generated. LANDR charges per mastered track. If you're testing the workflow, use dummy files first. n8n's polling node will call LANDR's status endpoint every 10 seconds; too aggressive polling wastes LANDR's rate limits and may trigger throttling.

Caching Generated Tracks

If you're iterating on the same lyrics with different tempos or keys, store intermediate Jammable outputs in a database (PostgreSQL, MongoDB) keyed by the input parameters. This avoids regenerating identical arrangements.

Testing and Validation

Before automating, test each API integration individually. Call Jammable AI manually, verify the output audio format. Test LANDR with a small MP3 file. Confirm email delivery works. Only then connect them in the full workflow.

Use n8n's test mode: it lets you trigger a workflow execution and see outputs at each node without committing to real API calls. This saves money during setup.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Jammable AIPro£9.99Includes 100 arrangements; overage £0.10 per arrangement
LANDRStudio£5.99Includes 10 masters; overage £0.99 per master
n8n CloudStarter£20Includes 1,000 workflow executions; scales with usage
n8n Self-HostedFree£0Requires your own server; typical AWS cost £20-50/month
ZapierProfessional£19.995,000 task runs per month; includes multi-step workflows
MakeProfessional£9.9910,000 operations per month; cheaper per operation than Zapier

For a realistic scenario: releasing one 3-minute track per week.

  • Jammable AI: 4 arrangements per month = ~£10 (assuming some reruns during testing).

  • LANDR: 4 masters per month = ~£6.

  • Orchestration: n8n Cloud £20, Zapier £19.99, or Make £9.99.

Total monthly cost: £36 to £50, depending on orchestration tool choice.

The workflow pays for itself if it saves you 2 hours per month on manual file handling, which it easily does. If you're releasing 2-3 tracks weekly, the savings multiply: you've automated away 8 to 12 hours monthly of repetitive clicking, downloading, uploading.