mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-06 05:28:31 +09:00
909f970d60147e8c411e93321d6f77f3ff87cc59
Implemented in it2taud.py: - _parse_it_pf_envelope_raw() (it2taud.py:677) — parses IT's third envelope at IMPI+0x1D4, keeping all 25 nodes (no decimation), distinguishing pitch vs filter mode via flag bit 7. - _env_value_at() — tick-time linear interpolation honouring env-loop wrap. - _clone_sample(), _plan_baked_length() — sample copy and entry + N×loop_len length planner (N up to 16). - _bake_pitch_envelope() — time-varying linear-interpolated resampling, rate = 2^(env_v/12). - _bake_filter_envelope() — RBJ 2-pole resonant LP biquad with time-varying coefficients; cutoff mapped 110 Hz (env_v=−32) → ~28 kHz (env_v=+32), Q from inst.ifr ∈ [0.5, 6.0]. - ITInstrument extended with pf_nodes, pf_flags, ifc, ifr. parse_instruments() reads IFC/IFR at IMPI+0x39/0x3A and pf envelope at IMPI+0x1D4. - assemble_taud() use_instruments branch now substitutes baked copies in the proxy[] list (originals in samples[] stay intact). - --no-pf-envelope CLI flag for A/B testing; module docstring updated.
tsvm /tiː.ɛs.viː.ɛm/ is a virtual machine with the architecture that mimics the 8-bit era of computers, and runs programs written in Javascript.
tsvm repository includes the virtual machine itself, the reference BIOS implementation and a DOS; BASIC is provided by the TerranBASIC repository.
Description
Languages
JavaScript
53.1%
Kotlin
34%
Python
8.2%
C
1.5%
BASIC
1.2%
Other
1.9%
