20 KiB
Can the current Live 10 export translate Neon Laundromat?
Short answer
Not completely.
The current group-track export is already a useful reconstruction of notes, samples, independent pad instances, much of the common fader data and one shared Return effect. It would produce a recognizable collection of musical material from Neon Laundromat.
It would not yet reconstruct the complete saved composition or the shared EP playback system. The largest musical omissions are the song-position order, per-scene meters, swing, cross-track choke, external-MIDI expression/routing, output compressor and silent-note sidechain. Several translated pad/fader parameters are useful approximations rather than matched EP behavior.
This audit intentionally ignores Drum Rack export. The required baseline is four A–D Group Tracks with separate pad tracks so that pitched note variations and per-pad sound design are not flattened.
Arrangement and Session are evaluated as equally important, separate workflows. A combined set is not required by this document.
High-level verdict by musical layer
| Layer | Current verdict | Consequence for this project |
|---|---|---|
| Notes and sample files | Mostly represented | The beat, bass notes, chords, vocal chops and printed samples should be recognizable. |
| Per-pad instruments | Partial/approximate | Independent pad instances survive, but pitch fractions, envelopes, choke and mode behavior can differ. |
| Group-pattern library | Partial | Pattern clips exist, but the parser conflates pattern-number iteration with defined scenes. |
| Session scene library | Partial/structurally unreliable | Some rows may be missing or invented, and unassigned C90 cannot be distinguished cleanly from a defined scene. |
| Arrangement/song | Missing essential structure | Repeated/reordered song positions are discarded; numeric unique scenes are used instead. |
| Fader automation | Broad but approximate | Common lanes appear, but TIM is dropped and VEL/PTC/TUNE/MOD mappings are problematic. |
| Send FX | Approximate but useful | One Delay Return and group sends exist; X/Y and DSP are approximate. |
| Output dynamics and sidechain | Missing | The mix will not breathe, saturate or duck like the EP project. |
| Baked resamples | Represented as audio | D11/D12 can sound right without reconstructing how they were made. |
| Live-only performance score | Correctly unknowable | The exporter should not invent punch-ins, LOOP, solos or unsaved X/Y moves. |
Project identity and structure
| Musician decision | Expected Live result | Current exporter answer | Status |
|---|---|---|---|
112.50 BPM |
Live Master tempo 112.50 | Read from settings, rounded to two decimals and written to Live. |
Represented |
| D Dorian project context | Live editing context identifies D Dorian; notes retain absolute pitch | Scale/root candidates are shown in the web view but never enter the Live set. Recorded note pitches still survive. | Missing editing context |
| 57% project swing | Quantized 1/16 material swings as on the EP | No swing field or groove mapping. Every Live clip receives no groove. Only timing already baked into event ticks survives. | Missing |
| Exact free/nudged ticks | Preserve off-grid events at 96 PPQN | Tick positions are converted without re-quantization. | Represented |
| Scene-specific 4/4, 3/4 and 2/4 | Correct clip lengths, meter changes and downstream offsets | Only the first scene meter is parsed and applied globally. | Missing |
| Ten reusable defined scenes | Ten Session rows representing the actual A/B/C/D pattern combinations | Scene data are read, but output scenes are created by iterating pattern indices that happen to exist rather than the set of defined scene chunks. | Partial/bug |
| C90 retained but not a defined song scene | Available as an unassigned MIDI pattern/clip, clearly separate from scenes | Current construction cannot model “unassigned pattern library” separately; it may create an extra numeric scene or omit useful context. | Partial/ambiguous |
| Thirteen song positions with repeated Scenes 03/04/08 | Arrangement follows the list exactly | Song trailer is never parsed. Arrangement uses unique scenes in numeric order. | Missing |
| 216-quarter-note arrangement | Exact duration after mixed meters/repeats | Cannot be produced from the current numeric-scene/global-meter model. | Missing |
| Short patterns loop under the longest pattern in a scene | D03 repeats four times; C08 twice | Pattern loop length and assumed scene maximum are represented, but depend on the scene and meter being constructed correctly. | Partial |
| Session and Arrangement treated equally | Either export mode should contain the correct form of the same project | Both modes exist, selected by an either/or branch, but both inherit the faulty scene model and neither reads the song list. | Partial |
Musical result
The current Arrangement cannot be used to judge the intended track form. It would lose the deliberate return to Scene 03, the repeated hooks/final spin, and the short 3/4 and 2/4 transitions. This is not a small metadata difference: it changes the composition.
Groups, pads and sample audio
| Musician decision | Current exporter answer | Status |
|---|---|---|
| Preserve Groups A–D | Creates a Live Group Track followed by its used pad tracks. Entirely empty groups can disappear. | Represented for this used project |
| One child instrument per used pad | Tracks are keyed by pad code, not sample slot. | Represented |
| A1/A2 and C1/C2 share a WAV but have different sound design | Each pad gets its own Simpler and settings; the WAV is deduplicated on disk. | Represented structurally |
| C9–C11 are trims of one phrase | Independent tracks receive pad trim values. The parser currently ignores the fourth trim-length byte, so sufficiently large regions can be wrong. | Partial/bug |
| A8/C6 retain lower sample rates and stereo state | PCM is reconstructed using the sample's channel/rate information. TE-specific WAV metadata are stripped, but the audible PCM should remain. | Mostly represented |
| Pad AMP is independent from Group LVL | pad.volume / 200 becomes the child track's normalized Live mixer Volume value; group LVL is placed separately. |
Represented structurally, response approximate |
| AMP 150 accent versus AMP 100 main kick | Live receives 0.75 versus 0.5 as mixer Volume parameter values. The raw-to-control normalization is linear, but neither Live's control law nor the EP transfer/output-compressor interaction makes that a proven linear acoustic gain match. |
Approximate |
| Pad pan | Converted to a normalized panorama value. | Represented, law uncalibrated |
Negative fractional pitch C2/D10 -0.09 |
Parser constructs a decimal string and currently decodes this incorrectly; slot-level sound.pitch may also be added a second time. |
Incorrect/bug |
| Attack/release | Written to Simpler envelopes using sample-length-based heuristics rather than measured EP timing. | Approximate |
| ONE | Simpler uses One-Shot transport, retrigger and a one-shot envelope. | Approximate but intentional |
| KEY | Also uses non-looping One-Shot transport with more voices/retrigger changes. | Approximate |
| LEG | Non-looping One-Shot with monophonic/portamento settings. Portamento is only a proxy for held-playhead behavior. | Approximate |
| Simpler should not default to Classic loop mode | Current builder explicitly uses One-Shot transport for EP ONE/KEY/LEG. | Represented |
| Simpler should not add unwanted filter coloration | Current builder disables the filter, sets cutoff to 22 kHz and resonance to zero. | Represented |
| BPM stretch | Two warp markers plus Live Beats warping | Approximate; different algorithm |
| BAR stretch in 4/4 and 3/4 | Correct fit to bars in the current meter | BAR duration uses a global numerator, so the 3/4 section is wrong when only the first meter is parsed. |
| Reverse pads A4/B6/C5/D4 | Simpler Reverse is enabled. | Represented |
| A5/A6 shared mute group | Normal separate-pad tracks receive no cross-track choke behavior. Only Drum Rack export applies choke. | Missing |
| EP-wide voice budget/stealing | Shared mono/stereo resource limit and voice stealing | Every child has an independent Simpler; no global EP voice model. |
Musical result
The project should sound recognizably related, but the hat articulation, LEG phrases, subtle detuned Rhodes, stretched odd-meter section and AMP-dependent punch can all differ before any shared effects are considered.
Notes and expression
| Musician decision | Current exporter answer | Status |
|---|---|---|
| Note pitch and pad source | Preserved as MIDI notes on the pad's child track. | Represented |
| Velocity | Preserved unless a VEL fader value is applied; Simpler velocity-to-volume is fixed at an uncalibrated 20%. | Approximate |
| Duration | Converted from ticks; same-pitch overlaps may be shortened to avoid overlap. | Mostly represented |
| Free-time and nudged events | Exact ticks survive. | Represented |
| Note-repeat/arpeggio result | Repeated events survive; the original gesture is correctly not reconstructed. | Represented result |
| Pressure ramp that became note velocities | Final velocities survive; finger-pressure history does not need to. | Represented result |
| C90 external-MIDI notes | Note events could become clip notes, but the pad MIDI channel is stripped from the Ableton track model. | Partial |
| C90 pitch bend/mod wheel/channel pressure/program change | MIDI-looking and unknown pattern events survive parsing as raw data, but the Ableton transformer consumes only notes and common fader records. | Dropped |
| MIDI channel 3 and root metadata | MIDI channel is parsed and then omitted from AblTrack; root is used for sample playback rather than external routing. |
Dropped for external MIDI |
| External polysynth sound | Not present in the project archive; only D12's resampled audio is self-contained. | Unknowable except baked audio |
Fader automation
Common kind-1 fader records are read from each group pattern and repeated with the pattern. Static fader floats are rounded to two decimals. Reported alternate fader kinds and record flags do not reach Live.
| Lane | Current Live counterpart | Verdict for Neon Laundromat |
|---|---|---|
| LVL | Group Track volume in Arrangement; duplicated child clip envelopes in Session | Structure usable; gain law uncalibrated |
| PTC | Simpler transpose over roughly -5…+5; static values rounded to integer semitones |
Likely wrong range for B05/D04 |
| TIM | Explicitly excluded from exported envelopes | B10 Dub Lab lane missing |
| LPF | Extra Auto Filter with a heuristic frequency conversion | Musically recognizable but approximate |
| HPF | Extra Auto Filter with a heuristic frequency conversion | Musically recognizable but approximate |
| FX | Send level to the one Return; group in Arrangement, child sends in Session | Correct broad topology; response uncalibrated |
| ATK | Simpler attack/fade using the same sample-length heuristic | Approximate |
| REL | Simpler release/fade using mode-dependent heuristic/inversion | Approximate |
| PAN | Group pan in Arrangement, duplicated child pan envelopes in Session | Represented; law uncalibrated |
| TUNE | Simpler fine transpose, limited to roughly ±50 cents | B08/A10 range may be wrong |
| VEL | Replaces each note's velocity with fader × 127 |
Incorrect: A06/A10 lose their original velocity relationships |
| MOD | A tempo-synced 1/16 Simpler pitch LFO with amount value/20 |
Deliberate proxy, not established EP behavior |
Session-specific qualification
Native Live Session Group Tracks have slots but cannot carry MIDI clips and their clip envelopes. The current exporter duplicates group automation onto child clips. This can produce a similar result when all children launch together, but it is not the same structural object as an EP group-pattern automation lane and becomes fragile when clips are launched independently.
Send FX, output dynamics and sidechain
| Musician decision | Current exporter answer | Status |
|---|---|---|
| One selected Delay shared by A–D | Creates one Delay Return Track. | Represented topology |
| Static Delay length/feedback | Parses X/Y from the effect tables and applies hand-designed Live formulas. | Approximate |
| A–D static sends | Represented through group/child sends depending on export mode. | Represented topology |
| Recorded group FX throws | Common FX fader automation reaches Return sends. | Represented/uncalibrated |
| D11 contains earlier Filter/punch-in/X/Y performance | D11 is an ordinary rendered WAV. | Baked result represented |
| Do not invent editable D11 performance automation | No punch-in/X/Y event reconstruction is generated. | Correct boundary |
| Separate output compressor DRIVE/SPEED | Effects model exposes only selected FX type/X/Y; Live Master device chain is empty. | Missing |
| Sidechain sources A1 and silent A12 | Raw extension bytes survive but are not typed or translated. | Missing |
| Duck destination Groups B/C/D | No destination routing, duck envelope or trigger bus. | Missing |
| Sidechain LENGTH/SHAPE | Not decoded into the effects model or mapped. | Missing |
| Temporary live Delay X/Y at song position 12 | Not serialized as known project automation and therefore cannot be inferred. | Unknowable from archive |
Musical result
This is the largest likely sonic difference. The exported dry groups and Delay may be recognizable, but the mix will not have the EP's final compression, AMP/bus interaction or note-triggered breathing. An ordinary audio sidechain from A1 would still be wrong because silent A12 must also trigger ducking.
Resampling and performance history
| Musician action | Current exporter answer | Correct classification |
|---|---|---|
| D11 resampled punch-in/filter/Delay performance | Copies and sequences the resulting sample like any other pad. | Baked only |
| D12 resampled external synth | Copies the resulting sample. | Baked only |
| Original resampling source, input gain and threshold | No source-history model. | Unknowable and unnecessary for playback |
| Original punch-in pressure/combination | No project event model. | Unknowable unless another stream is discovered |
| Live LOOP/slide gesture | No project state. | Unknowable |
| FX+Group momentary solo | No project state. | Unknowable |
| Manual performance-only scene order | Only saved song positions could establish order; those are currently ignored. | Unknowable if not saved; missing if it is the song list |
| Temporary group project volume | No model, and official firmware resets it on project load. | Runtime-only/unavailable |
The absence of live-only gestures is not an exporter failure. The absence of the saved song list, output state or sidechain is.
Arrangement prediction for this project
If exported today, the likely result is:
- A–D pad tracks with recognizable notes and samples.
- Unique scenes encountered in numeric/pattern-derived order rather than the thirteen-position song.
- No faithful Scene 03/04/08 repetitions.
- One global meter, causing Scene 05 and 07 durations or downstream offsets to be wrong.
- No final output compression or ducking.
- Delay Return present with approximate X/Y and group sends.
- Fader lanes audible in broad form, except TIM, with VEL destroying original velocity relationships where active.
- D11/D12 sounding as baked samples if their WAVs are available.
This is sufficient for continuing the music in Live. It is not yet sufficient for calling the Arrangement a reproduction of the EP song.
Session prediction for this project
If exported today, the likely result is:
- Reusable clips for many group patterns.
- Scene rows influenced by pattern-number presence rather than only defined scenes.
- No principled representation of C90 as an unassigned external-MIDI sketch.
- No song-order problem, because Session is a reusable library—but no distinction between scene library and orphan pattern library either.
- Group fader motion duplicated into child clip envelopes.
- The same pad articulation, choke, output and sidechain limitations as Arrangement.
Session remains the better place for a musician to rearrange the material, but it is not a lossless representation of the EP project library yet.
What the current export gets notably right
- It preserves one track per pad in the required group-track workflow.
- It does not collapse chromatic notes into a Drum Rack root pitch.
- It allows the same WAV to be used by several independently configured pad tracks.
- It keeps note positions, pitches, velocities and most durations.
- It intentionally uses non-looping Simpler One-Shot transport and removes the unwanted default filter cutoff/resonance coloration.
- It carries a useful approximation of most common group fader lanes.
- It models the one-selected-FX/multiple-group-sends topology with a Return.
- It naturally carries resampled performances as ordinary audio.
Saved state currently missing from the Live result
- song positions and their repetitions/order;
- per-scene meter;
- project swing;
- project key/scale as editing context;
- normal-track mute-group behavior;
- pad MIDI channel/external routing;
- MIDI expression/controller records;
- output compressor DRIVE/SPEED;
- sidechain source pads, destination groups, LENGTH and SHAPE;
- TIM fader automation;
- unknown/alternate fader and pattern-event semantics.
Represented but still acoustically unresolved
- pad AMP;
- pitch metadata versus pad pitch ownership;
- negative fractional pitch parsing;
- envelope timing;
- ONE/KEY/LEG voice and retrigger behavior;
- BPM/BAR stretch DSP and meter handling;
- group LVL and pan laws;
- PTC, TUNE, VEL and MOD fader meanings/ranges;
- all selected-FX X/Y transfer functions.
Diagnostic experiments suggested by the imaginary project
These are research questions, not an implementation plan:
- Build only A1/A2 from one WAV and compare their EP and Live gains while independently varying output DRIVE/SPEED.
- Build A5/A6 with long tails and capture exact cross-pad mute timing.
- Record B1 LEG and C1 KEY phrases with controlled overlaps and compare playhead/retrigger behavior.
- Capture C2 at
-0.09and several positive/negative fractional pitches. - Create Scenes 03/05/07 exactly as specified, then verify their binary meters and the musical duration of repeated short patterns.
- Save the thirteen-position song list and compare the trailer to the intended order.
- Record A06 VEL over notes with deliberately different velocities to determine whether it scales or replaces them.
- Record the Scene 10 TIM/TUNE/MOD lanes one at a time and make USB-audio comparisons.
- Trigger sidechain with A1, then AMP-zero A12, and separately sweep LENGTH/SHAPE/DRIVE/SPEED.
- Record C90 from an external controller with one expression type at a time and identify the surviving pattern records.
- Resample D11, then confirm that no separate punch-in or X/Y history appears outside the rendered sample.
- Reload the project after changing held-group project volume and confirm the official reset behavior on the local OS 2.5.1 device.
Code evidence
- Pad decoding:
collectPads() - Pattern event decoding:
parsePatternEvents() - Current scene construction:
collectScenesAndPatterns() - Settings and effects parsing:
collectSettings()/collectEffects() - First-meter-only parsing:
collectScenesSettings() - Ableton track/clip transformation:
abletonTransformer() - Fader conversion:
automation.ts - ONE/KEY/LEG proxy model:
playback.ts - Clip, Simpler, group, Return and Master builders:
builders.ts - Selected-FX approximation formulas:
effects.ts - Live 10 Master template:
project.xml - Live 10 clip groove default:
midiClip.xml - Plain-WAV reconstruction:
pcmToWav.ts