How Phausto is versioned, where to find what actually changed, and the themes of recent development.
1. How Phausto is versioned
Phausto is developed in the open on a rolling basis rather than in numbered releases. At the
time of writing the repository carries a single tag, v0.1, and the working
branch is main. Installing with the Metacello snippet in
Installation gives you the current state of that branch.
That means the authoritative changelog is the commit history itself:
| Where | What it tells you |
|---|---|
| Commit history | Every change, with a conventional feature: / fix: prefix |
| Releases | Tagged points, when they exist |
| Wiki | Installation notes, kept current with the code |
| Issues | Known problems and what is being worked on |
1.1 Pinning a version
For work that must keep running unchanged — a piece you will perform, a paper with code listings — pin to a specific commit rather than tracking the branch:
Metacello new
baseline: 'Phausto';
repository: 'github://lucretiomsp/phausto:<commit-sha>';
load.
2. Recent development
Rather than a version-by-version list, here are the themes the recent history shows. Consult the commit log for detail.
| Theme | What changed |
|---|---|
| JUCE export | An APVTS exporter was implemented, so exported plugins carry a full automatable parameter tree. See Exporting §4.2. |
| CMake export | A CMake file generator was added alongside the Projucer route, with tests. |
| MIDI and Bela metadata | Widget-level declarations — midiCtrl:, midiKeyon:, midiPitchwheel, belaPin: — were implemented. See UI Primitives §6. |
| Test coverage | A sustained push to get the suite green across effects, synths and physical models. The package now carries 45 test classes. |
| Physical models | Cleaning and reclassification across the family; all physical model tests passing. |
| Effects | Reclassification and cleanup; parameter setters moved to more appropriate classes. |
| Resources | The baseline gained a step to copy resources from the companion resources repository. |
3. Renamed and removed
Changes most likely to break existing code. If a patch that used to work no longer does, check here first.
| Was | Now |
|---|---|
DelayMonoFb | Removed — use PhEcho instead |
| Eight-channel reverb | Removed for the time being |
Impulsify | The class is PhImpulsify |
ModeFilter | The class is PhModeFilter |
FlangerMono | The class is PhFlangerMono |
| Reverb damping setter | Moved to the Reverbs class |
Ph prefix. Older tutorial material
— including some lessons in MasterLu — occasionally omits it. When
a class is not understood, try adding the prefix before anything else.
4. This manual
The manual is part of the musicwithpharo site and versioned with it. Every page carries an "Edit this page on GitHub" link at the foot, which is the fastest way to send a correction.
| Revision | Change |
|---|---|
| Current | Restructured into five categories with a single navigation source, per-page numbered contents, stable anchors, linear reading order, search and a dark theme. Twenty-seven pages. |
| Current | Added the UGen Library, generated directly from the package source so every class, superclass and description matches the code. |
| Current | Added reference coverage for the setter traits, the DSP API, UI primitives, maths and conversions, and the demo gallery. |
| Current | Added guides for connecting UGens, parameters and control, envelopes and modulation, filters, effects, physical modelling and MIDI. |
| Current | Added MasterLu, raw FAUST, TurboPhausto, exporting and internals. |
| Earlier | Five pages: overview, installation, getting started, synthesis techniques, sequencing and sampling. |
6. Troubleshooting
Code from a tutorial or paper no longer runs
Check §3 first — a class was probably renamed. Then check the commit history.
Metacello keeps giving me an old version
The repository is cached under pharo-local/iceberg. Delete the cached checkout,
or pull main directly through Iceberg.
I need the exact version I used last month
Pin to the commit — §1.1.
A feature described in this manual is missing from my image
Your copy predates it. Update, or check the commit history to see when it landed — §1.
Something that worked yesterday broke after I updated
Open an issue with the snippet and the commit you updated to. That is genuinely useful to the project — see Community.