Skip to content

W02 — A screen recording, finished for publishing

A small bike workshop records a one-minute tour of its booking board to train new staff and post on its site. The recording is honest and useful, and it sounds like what it is: a laptop microphone, a quiet voice, the hum and hiss of the room, nothing under the voice, no subtitles for people watching without sound. This workflow turns it into a video ready to publish, and it does so in stages you can hear one by one: the recording, the cleaned voice, the music bed, the finished mix.

The workflow in five stages, with the reference run. 1, clean and level the voice: Extract Audio, the recording’s voice, speech profile; Enhance Speech, noise, clicks and sibilance, podcast profile, the noise floor from 21 to 38 dB below the voice; Normalize Loudness, podcast, two passes, −16.6 LUFS. 2, music written from the video: Video Analysis watches the recording and writes a music brief, Gemini 3.5 Flash, 0.65 credits; Text to Music, a 60-second instrumental bed, CassetteAI, 2 credits; Loop Music Bed, to the length Technical Info measured, 58.33 seconds. 3, mix, level and put it on the video: Duck, the cleaned voice over the fitted music; Normalize Loudness, the whole programme, social profile, −14.0 LUFS; Add Audio, the mix replaces the recording’s sound. 4, deliver and report on every stage: the finished video, plus the voice, the music and the mix as files; Quality Gate, 8 checks in warn mode, it reports and never holds back, 8 of 8 passed. 5, subtitles, if asked: Speech to Text on the cleaned voice with word timing, Scribe V2, 0.5 credits; Aggregate Transcript, one track on the video’s timeline, 155 cues; Subtitles, the phrase with the spoken word in green, and an SRT; 3.15 credits in all.

The figure tells the workflow as stages, with the reference run’s results on the cards; the exact graph, 33 nodes, is the workflow (as a diagram).

“Spoke & Chain” is a fictional workshop, and its booking board a small web app made for this example; the walkthrough was recorded from it, and narrated by a synthetic voice to which the room noise, hum and low level of a laptop microphone were added. So the source is a typical raw screen recording — and one that shows no real person, customer data or third-party software:

  • 58 seconds at 1280×720, 30 frames per second, one mono audio track;
  • the voice at −31.8 LUFS, far below any platform’s target, with a noise floor only 21 dB below it;
  • six short paragraphs: the board, the status colours, a new booking, a job put on the stand, a job marked ready with its invoice.
  1. Clean the voice first, and alone. The voice is extracted, cleaned and levelled on its own — so the music never gets cleaned with it, and the transcription later hears the clean voice, not the room.
  2. An AI that watches, not one that guesses. Video Analysis sees the whole recording — the topic, the pace, the audience — and writes a short brief for an instrumental bed. A person can steer it with the Music Direction input; by default it infers the style.
  3. Music fitted by measurement. The bed is generated at 60 seconds and fitted to the length Technical Info measured on the video, looping with crossfades if the video is longer: a two-minute video gets a two-minute bed.
  4. Music that makes room for the voice. Duck lowers the music whenever the voice speaks and brings it back in the pauses; the programme is then levelled as a whole.
  5. Deliver first, report everything. Eight checks from every stage go into a Quality Gate in warn mode: the report says what passed and what did not, and the finished video is delivered either way. An imperfection is reported; only a file that cannot be built stops a branch.
  6. Every stage is an output. The cleaned voice, the fitted music, the finished mix, the music brief and both reports come back beside the videos: an app can let its users listen to each layer without running anything again.
Stage Nodes Settings that matter
Inputs Screen Recording, Music Direction, Generate Subtitles the direction defaults to “infer a subtle instrumental style”; subtitles default to on
Measure A1 Technical Info a media policy: 1 second to 1 hour, at least one audio stream; fail_on_policy off — a violation is reported, not blocking
Clean the voice A2 Extract Audio, A3 Enhance Speech, A4 Normalize Loudness speech profile; podcast cleaning (noise reduction, de-click, de-esser, compression, ambience not kept); podcast loudness, −16 LUFS, two passes
Write and make the music B1 Video Analysis, B2 Text to Music, B3 Loop Music Bed a system prompt asking for one generation prompt only — mood, energy, tempo, instruments, no vocals, no abrupt end; a 60-second instrumental bed; loops with 1.5 s crossfades, 0.5 s fade-in, 1.5 s fade-out, the target length from A1
Mix C1 Duck, C2 Normalize Loudness, C3 Audio Quality Report phrase ducking, voice-over profile: the music goes 10 dB down under each phrase and holds across pauses shorter than 0.9 s, so it does not pump between words; social loudness, −14 LUFS; a report on −14 ± 2 LU, true peak ≤ −1 dBTP, no clipped samples
Deliver C4 Add Audio, C5 Technical Info, C6 Quality Gate the mix replaces the recording’s sound; the finished video measured with the same policy; eight checks, all_must_pass, warn
Subtitles D1 and D5 Filter, D2 Audio Segments, D3 Speech to Text, D4 Aggregate Transcript, D6 Subtitles both branches pass only when Generate Subtitles is on; segments of up to 10 minutes, so an hour-long recording works too; word timing; highlight-word in green, Roboto Medium, two lines, title-safe; SRT beside the video

The music and the voice branches run side by side: the music is being written while the voice is cleaned, and the transcription runs while the music is fitted. The whole run took about two minutes.

Four moments of the finished video, with the booking board and the subtitles: “On the left, you see today’s bookings” with “today’s” in green; “To book a new job, press New Booking” with “new” in green and the new-booking form open; “When a mechanic starts the job, move the card to” with “mechanic” in green and the new card moving to the stand; the invoice, with a total of € 74.50.

The four layers of the soundtrack, one above the other. 1, the recording, −31.8 LUFS: small, noisy waves. 2, the cleaned voice, −16.6 LUFS: the same phrases, larger and on a flat silence. 3, the music bed, written from the video, generated and looped to 58.3 seconds: quiet in the middle, fuller at the ends. 4, the finished mix, −14.0 LUFS: the voice clear, the music lower wherever it speaks and fuller where it pauses.

Listen to the first 24 seconds of each layer: the recording · the cleaned voice · the music bed · the finished mix.

Measure Recording Finished
Integrated loudness −31.8 LUFS −14.0 LUFS
True peak −10.7 dBFS −1.1 dBFS
Noise floor below the voice 21 dB 38 dB (cleaned voice)
Length 58.33 s 58.33 s
Quality checks — 8 of 8 passed
Subtitles — 155 cues, one segment

The music brief Video Analysis wrote, from the recording alone:

An uplifting and focused mid-tempo instrumental track, featuring clean, warm electric guitar plucks, soft ambient synth pads, and a gentle, steady acoustic percussion rhythm. The mood is professional and optimistic, maintaining a light and unobtrusive presence that sits perfectly under narration, with a smooth, continuous progression and a gentle fade-out.

What to review. The transcription heard “Spoken Chain” for “Spoke and Chain” in the first line — a brand name it could not know. Names are what to check in the SRT before publishing. To correct one, fix the SRT and give it to Video Subtitles on its captions input instead of the transcript: the video is captioned again at no credit cost, in block presentation — an SRT carries phrases, not the word timing the highlight needs. The delivery report and the subtitle report are the run’s own.

Step Credits
Video Analysis — the music brief (Gemini 3.5 Flash) 0.65
Text to Music — a 60-second bed (CassetteAI) 2
Speech to Text — one started minute (Scribe V2) 0.5
Everything else — cleaning, fitting, ducking, loudness, mixing, subtitles, checks 0

3.15 credits. The music costs the same for any length; the analysis grows with the length of the video, the transcription by 0.5 per started minute. For a longer recording, run the estimate with it before the first run.

  • Cleaning is not separation. Enhance Speech reduces steady noise, clicks and sibilance; it does not remove strong echo, and it cannot take out music already in the recording — the new bed would play over it. For a recording with music, separate the voice first: see Audio finishing.
  • A brief is a proposal. Read the music brief: when it misreads the video, write a direction on Music Direction — “calm piano, 70 BPM” — rather than changing the system prompt.
  • Loops are audible on long videos. A 60-second bed under a ten-minute tutorial repeats ten times; longer crossfades hide the joins but soften the rhythm. Ask Text to Music for up to 180 seconds when the video is long.

The same workflow finishes a recording of half an hour or an hour: every audio and video step works file to file, on the whole master, whatever its length (Long media). What changes is what a long recording costs, how long it takes and what it sounds like — six settings, and a rehearsal. W03 is this workflow with those settings applied, and rehearsed.

Before you upload. A file can be at most 250 MB, whichever way it is uploaded, although the nodes read up to 2 GiB. Screen recordings compress well: this one is 1.8 MB a minute, about 110 MB an hour. A recording made at a high bitrate — 4K, 60 frames per second — should be encoded again at 1080p or 720p and 30 frames per second before uploading; nothing in the finish needs more.

Rehearse on three minutes. Put video/trim (start “0”, end “180”) after the input and run once: the voice cleaning, the music and the subtitles can all be judged on three minutes, for a few credits. Remove the trim and run the whole recording only when they sound right.

Step On a long recording Set
A1 and C5 Technical Info the policy accepts up to one hour; a longer recording fails the check — reported, not blocking raise maximumDurationMilliseconds in both policies to the recording’s length
B1 Video Analysis it reads the whole video: the cost and the time grow with the length, while the style of a tutorial is set in its first minutes give it an excerpt: video/trim from 0 to 180 s between the input and B1, the other steps keep the whole video
B2 Text to Music a 60-second bed under thirty minutes repeats thirty times Duration (s) 180, the most the default model makes: it repeats every three minutes
B3 Loop Music Bed the joins are heard more often on a long, quiet programme Loop Crossfade (ms) 3,000: smoother joins, at the cost of a softer beat at each join
D2 Audio Segments the transcription is cut at pauses into segments of up to 12 minutes, 5 seconds of overlap each Target clip duration 540 s and Maximum clip duration 590 s: with the overlap each segment stays under ten minutes and is billed ten started minutes, not eleven
D3 and D6 speakers segment by segment, speaker numbers restart; one narrator needs no labels Identify Speakers off on D3, Speaker Labels hide on D6
D6 Subtitles highlight-word suits a short social clip; on a long tutorial the moving word tires the eye, and burning them in encodes the whole video again Caption Presentation block; for a video that will play in a web player, Output Mode sidecar: the SRT only, the video not encoded again

The estimate. The transcription is estimated deferred: how many segments a recording makes is known only when the run cuts it. The music is 2 credits for any length; the transcription is 0.5 per started minute of each segment — about 15 credits for half an hour — and the analysis of a three-minute excerpt is a small part of the rest. Submit a long run with admission_limits so that it stops before it spends more than you meant (Executions).

What to listen to. On a long recording, check the places a short one does not have: a long pause, where the music comes back up; the joins of the loop, every three minutes; the first minutes after a cut in the subtitles, every ten; and the end, where the music fades.

Terminal window
node madoo-install-example.mjs w02-screen-recording-finish --api <your Madoo API URL> --key <key.json> --run --save finished

The installer uploads the recording, creates and publishes the workflow and runs it; --save downloads the outputs. Installing an example explains the installer.

You want Change
your own recording the Screen Recording input: anything from 1 second to 1 hour with an audio track
a given style of music the Music Direction input, in plain words
no subtitles Generate Subtitles false: no transcription, no captioned video
classic subtitles instead of highlighted words D6 Subtitles, Caption Presentation block
music more or less present C1 Duck: Duck Depth (how far it goes down under a phrase) and Background Gain
another loudness for the platform C2 and C3 together: the target and the check must match
a stricter delivery a check that must hold — C3, C5 — with its fail option on, or the Quality Gate in fail mode

The workshop, its app, its customers and the narrator’s voice are fictional, made for this example.