On this page
Install via Pharo Launcher
Download Pharo Launcher, then:
- Click New → select category Pharo-Music distributions
- Choose Pharo Music (demo) from the template list
- Click Create image
- Double-click the new image to launch it
Note
Phausto bundles a pre-compiled FAUST runtime — you do not need a separate FAUST installation. The native libraries handle DSP compilation to machine code at runtime.
Load via Metacello
Evaluate the following in a Pharo Playground:
Metacello new
baseline: 'Phausto';
repository: 'github://lucretiomsp/phausto:main';
load.
This loads the full Phausto package including all UGens, TurboPhausto (TpSampler), and PhaustoDesigningSounds.
Native Libraries
Phausto requires native audio libraries bundled separately per platform. Download the appropriate bundle from the repository root and follow the wiki for placement instructions.
| Platform | File |
|---|---|
| macOS (Apple Silicon) | phaustoLibrariesM1.dmg |
| macOS (Intel) | phaustoLibraries_mac_Intel.dmg |
| Windows (Intel) | librariesBundle_windows_intel.zip |
| Linux (Intel) | librariesBundle_Linux.zip |
Tip
On macOS you may need to right-click → Open the first time to bypass Gatekeeper. The libraries are not signed with an Apple Developer certificate.
Verify the Install
Once loaded, run the simplest possible test in a Playground — one line at a time:
step by step Hello Phausto
"Create a sine wave oscillator at 440 Hz"
sine := SineOsc new.
dsp := sine asDsp.
dsp init.
dsp start. "you should hear a tone"
dsp stop.
If you hear a sine tone, Phausto is correctly installed.
Direct FAUST Code
You can also create a DSP directly from a raw FAUST string, without using the Phausto UGen API:
"Write FAUST code as a Pharo String"
content := 'import("stdfaust.lib");
tempo = hslider("tempo", 10000, 300, 20000, 100);
freq = hslider("freq", 300, 200, 900, 100);
process = ba.pulsen(1, tempo) : pm.djembe(freq, 0.3, 0.4, 1) <: dm.freeverb_demo;'.
"Create, init, start"
x1 := DSP create: content.
x1 init.
x1 start.
"Open parameter sliders in windows"
s1 := x1 sliderFor: 'tempo'. s1 openInWindow.
s2 := x1 sliderFor: 'freq'. s2 openInWindow.
s3 := x1 sliderFor: 'Freeverb/0x00/RoomSize'. s3 openInWindow.
x1 stop.
When to use raw FAUST
Direct FAUST strings give you access to the full FAUST standard library (stdfaust.lib, dm.*, pm.*, etc.) for advanced DSP not yet wrapped by Phausto UGens.