How to Make Apple Music Synced Lyrics
An end-to-end walkthrough for authoring Apple Music ready TTML, from audio setup to delivery-ready export.
This is an end-to-end workflow for authoring Apple Music synced lyrics. It covers file setup, timing capture, agents, background vocals, and the last-mile checks before delivery.
What Apple Music expects
Apple Music ingests TTML files. The baseline file has line-level timing. The animated sing-along experience requires word-level timing. Apple also renders secondary lyric lines when you mark them as background vocals with ttm:role x-bg.
Duets and featured artists need separate agents. Each line points at one agent using the ttm:agent attribute.
Step 1: prepare your source material
Gather the final mastered audio file and a clean plain-text version of the lyrics. The lyrics should match the audio exactly, including repeats, ad libs, and featured verses.
If the song has multiple vocalists, note which vocalist sings which lines. A two-column text file with the vocalist name and the line works well as a reference.
Step 2: set up the project in CallEditor
Open CallEditor, import the audio file, and paste the lyrics. Define one agent per vocalist on the song. Give each agent a meaningful name so downstream QA teams know who is singing what.
Assign every lyric line to its vocalist. Use the edit view to tag agents before you start syncing. Getting agents right before syncing saves time: you will not have to retag hundreds of lines later.
Step 3: capture line-level timing
Start with line-level sync. In the sync view, play the track and tap the key bound to "next line" as each line begins. CallEditor records the begin time for every line. The end time of one line becomes the begin time of the next.
Line-level timing gets you a shippable file. Many Apple Music catalog tracks are line-synced only, and that is a valid output. Use this pass as a foundation.
Step 4: upgrade key sections to word timing
Switch to word-sync for choruses, hooks, and any section the artist would want animated. In CallEditor, the sync view lets you tap per word. Play the track and tap as each word begins.
Review the word boundaries in the timeline. Zoom in and drag any word that feels off. The timeline shows the audio waveform below the words, which makes it easy to snap a word boundary to the actual consonant or vowel onset.
Step 5: add background vocals
For ad libs and backing parts, use the background vocals field on the owning line. CallEditor wraps them in an x-bg span on export. Each background word can have its own timing if you need it.
Only use background vocals for lines that are genuinely secondary. Leads stay on the main line. Backing harmonies that echo the lead should be x-bg. Ad libs and spoken interjections are almost always x-bg.
Step 6: check your work
Use the preview view to watch the animated playback alongside the audio. Every word should land on the beat. Lines should appear slightly before the vocalist starts singing, not after.
Common issues: words that stretch past the next line, agent tags missed on a feature verse, x-bg spans nested on the wrong line. Catch these in preview rather than after delivery.
Step 7: export and deliver
Export the TTML from the export view. Inspect the file: the calleditor:timing attribute should say "Word" for word-synced tracks and "Line" for line-synced tracks. Agents should be listed in the head. Background vocals should be wrapped in <span ttm:role="x-bg">.
Hand the file to your distributor. Apple's Content Collector takes TTML directly if you have access. Otherwise your distributor or aggregator will handle delivery.
Related reading
Read the TTML file format reference if you want to understand the XML in detail. The multi-agent duets guide covers advanced agent patterns.