Install via Pharo Launcher

Download Pharo Launcher, then:

  1. Click New → select category Pharo-Music distributions
  2. Choose Pharo Music (demo) from the template list
  3. Click Create image
  4. Double-click the new image to launch it
Pharo Launcher – selecting Pharo Music demo template
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.

PlatformFile
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.