Hi Jon — first, thank you for LogicProFormatWriter; synthesizing native .logicx
from pure Python is remarkable work.
I'm building a composition tool that generates orchestral MIDI with dense
continuous controller data (CC1/CC11 expression, pitch bend, pressure), and I'm
evaluating LPW as the foundation for native Logic project export. Notes-only
output isn't viable for my use case, so I'm preparing a donor-diffing effort to
map the remaining region event encodings — and before I start, I'd rather not
re-discover anything you already know.
A few questions, any partial answers hugely appreciated:
- Have you mapped (even partially) how CC, pitch bend, pressure, or program
change events are encoded in region data? Is this on your roadmap?
- Are there checksums, length totals, or counted indexes elsewhere in
ProjectData that must stay consistent when event records are added?
- When Logic writes a software-instrument track, which records reference it,
and how are IDs/indices allocated? Any experience cloning a track at the
record level?
- Have you attempted embedding plug-in (AU) state natively rather than as
sidecar files — and if so, where did it stall?
- What are the known ways to trigger Logic's repair prompt or silent
normalization on save? Happy to trade: I'll be building a corpus of
one-difference donor fixtures across these event types.
- Which Logic builds have you verified output against, and has anything
broken across updates?
- If my work produces working CC/bend/pressure encoders with fixture tests,
would you accept PRs upstream?
I'd be glad to contribute donor fixtures, test tooling, and encoders back
under MIT. Thanks for any pointers — even "unknown, good luck" is useful signal.
Hi Jon — first, thank you for LogicProFormatWriter; synthesizing native .logicx
from pure Python is remarkable work.
I'm building a composition tool that generates orchestral MIDI with dense
continuous controller data (CC1/CC11 expression, pitch bend, pressure), and I'm
evaluating LPW as the foundation for native Logic project export. Notes-only
output isn't viable for my use case, so I'm preparing a donor-diffing effort to
map the remaining region event encodings — and before I start, I'd rather not
re-discover anything you already know.
A few questions, any partial answers hugely appreciated:
change events are encoded in region data? Is this on your roadmap?
ProjectData that must stay consistent when event records are added?
and how are IDs/indices allocated? Any experience cloning a track at the
record level?
sidecar files — and if so, where did it stall?
normalization on save? Happy to trade: I'll be building a corpus of
one-difference donor fixtures across these event types.
broken across updates?
would you accept PRs upstream?
I'd be glad to contribute donor fixtures, test tooling, and encoders back
under MIT. Thanks for any pointers — even "unknown, good luck" is useful signal.