xtc/docs/RELEASE_NOTES.md

109 lines
6.4 KiB
Markdown
Raw Normal View History

# 0.1.0 development release notes
This remains a development prototype, not a production-qualified DAW. Phase 30
completes the local release workflow without bumping the application version,
creating a tag or publishing artifacts. The exact source archive SHA-256 and
reviewed Git commit identify a build; version 0.1.0 alone does not identify all
of the development revisions that used that version.
## Included functionality
The C99 engine provides bounded graphs, immutable plan publication, stereo audio,
MIDI instruments and controller bindings, track/bus mixing, automation and inline
MIDI editing. The C++17 FLTK application adds arrangement, routing, recording,
undo/redo and a generic LADSPA editor. JACK is the only live audio/MIDI backend;
core validation and offline rendering work without it. Native/LADSPA processors
are trusted in-process code. No proprietary energyXT resources are included.
2026-10-28 17:16:01 +01:00
Project format v13 reads versions 1–13 transactionally. Syntax diagnostics identify
records and lines. `xtc-check --inspect` lists dependency paths without executing
plugins. Phase 29 adds timing/CPU/RSS reports, repeatable stress runs and virtual
endurance. Phase 30 adds configurable install directories, shared install/remove
inventory, installed MIDI examples and source archive checksum sidecars.
## Upgrading and removal
Back up documents and external media before upgrading. Opening an older project
does not rewrite it; saving upgrades it to v12, which older readers may reject.
Use Save As for a separate migrated copy. Moving a project folder preserves media
stored inside it via relative references. Absolute media and plugin module paths
must be restored separately. There is no bundled plugin/media migration or saved
JACK port configuration. See PROJECT_FORMAT.md and RECOVERY.md for exact policies.
Install to the same layout to repair owned files. Only documented owned filenames
are replaced; unrelated files with other names remain. Use the same source
version and directory variables for uninstall. It removes owned files and empty
owned directories, never recordings or recursively deleting a prefix. A changed
layout or an older release with a different inventory may require removing that
old version before installing the new one. No database/package-manager registration
or automatic cleanup of historical inventories is performed.
## Known qualification limits
Physical devices, multi-hour wall-clock endurance, power-cut behavior and other
Linux distributions remain unqualified. There is no disk streaming, crash autosave,
plugin sandbox, latency compensation or stable shared-library ABI. A trusted
plugin can allocate, block or crash the process. Metadata inspection checks file
availability only. See KNOWN_LIMITATIONS.md for the complete list.
The retained graph performance gate has a documented small-case timing alert on
the shared development host; the project timing comparison passed. This alert
was not hidden by changing the baseline. See PERFORMANCE.md before using these
measurements as latency expectations. Sanitizers and virtual endurance qualify
software paths, not hardware timing.
Phase 31 adds default-configuration CLAP/VST2/VST3 mono effect loaders, common
GUI discovery/insertion/replacement and v11 format identity. Pinned MIT CLAP and
BSD-3-Clause VST3 C headers ship with notices; VST2 uses original compatibility
declarations. Modern instruments, parameters/state/editors and multichannel
layouts remain unsupported. No third-party modern plugin has been qualified.
Phase 32 adds CLAP/VST2/VST3 mono instruments bound to MIDI tracks, sample-offset
notes, a saved live target, track mixing, GUI assignment/undo and v12 persistence.
See PLUGIN_HOSTING.md for compatibility and controller/state limits.
Phase 33 adds a flat DAW workspace, shared dark theme, track-creation sidebar,
read-only musical transport/track inspector, colored track clips and real MIDI
previews. New MIDI/audio track commands are undoable and prepare candidates
before adoption. The default window is 1280 × 800, minimum 1220 × 720.
No dependency or project-format change. See WORKSPACE.md and the new
`modern-session.xtc` example; existing engine/plugin limitations still apply.
Phase 34 adds a sequencer grid/Snap dropdown, absolute grid snapping for moves
and trims, MIDI double-click editing, a piano velocity lane/slider and per-track
instrument dropdowns. Snap preferences are UI state; velocity and instrument
bindings use the existing v12 format. No new dependency or engine feature is
required. See WORKSPACE.md for supported divisions, controller semantics and limits.
Phase 35 adds Edit / Preferences with an Apply button and `~/.xtc.conf` INI
persistence, configurable plugin search paths and a file library, plus sequencer
ruler loop selection and sample-boundary playback wrapping. See PREFERENCES.md
for settings, reconnect behavior and looping limits.
Phase 36 replaces the single-track mixer panel with a scrolling studio mixer:
vertical dB faders, flat pan knobs, mute/solo, routing and stereo meters on every
track and bus, plus a pinned master monitor. Selected-track automation remains
below the strips. No project format or engine changes. Screenshots are refreshed;
see MIXER.md and screenshots/README.md.
2026-10-28 17:16:01 +01:00
Phase 37 adds searchable Commands (Ctrl+P), editable project BPM, a live track
inspector, session statistics, Fit song and an optional persistent Follow
playhead control. Numeric input remains intact during display refreshes.
Screenshots are refreshed, including the command palette. See WORKSPACE.md.
Phase 38 adds dependency-free Soft Keys/Sub Bass instruments and Delay/Reverb
effects with saved controls and automation. Choose instruments in track headers;
insert effects on selected graph wires from Edit. See [BUILTIN_DEVICES.md](BUILTIN_DEVICES.md).
## Phases 69–79: audio source editing
Audio clips now open a modal waveform editor with native frame selection,
zoom, source statistics, nondestructive timeline trims, selection export and
save-copy adoption. Local one-step undo supports reverse, polarity inversion,
DC removal, linear/equal-power fades and gain/normalization. Silence boundaries,
zero-crossing snapping and amplitude attack markers support transactional clip
slicing. Originals are never overwritten; exported media remains available to
project undo/redo. Source editing uses the existing mono downmix and bounded
snapshots; timeline cuts round to musical ticks. See
[AUDIO_EDITOR.md](AUDIO_EDITOR.md) for exact behavior and remaining limits.