Installing Monolith

Installing Monolith

A Friendly Warning

Monolith is mostly a project I built for myself for my needs. Installation is a little bit quirky. Some parts (such as the monome hardware integration, literally hard-coded to my details).

I've ensured that Monolith compiles on both Linux and OSX. It's not exactly streamlined, but the process does work pretty consistently. You will have to compile a few small projects of mine from source. Those who do not have the patience for this may want to consider sndkit, which is a one-stop-shop sort of deal.

Prerequisites

Mandatory

A C development environment (gcc/clang, Make, etc)

The Worgle tangler, found on sourcehut.

SQLite (libsqlite-dev or equivalent).

The soundpipe DSP library, found on sourcehut.

The runt scripting language, found on sourcehut.

The runt-graforge audio graph library. Note that this will need ctangle, which is part of cweb. This should be installed on most computers that have TeX installed. If not, a self-contained version can be found on sourcehut. The runt-graforge stuff can be found in the 'runt' project.

Optional

These are optional dependencies:

JACK, for realtime audio.

libx264, for video encoding.

libmonome, for monome use.

"Simple Mode" Install

Simple mode is a version of monolith that tries to minimize dependencies and is offline rendering only. It does away with libmonome, JACK, and libx264.

You'll still need core libraries and tools made by the author (worgle, soundpipe, runt, graforge), and SQLite as well.

To enable simple mode, add

MONOLITH_SIMPLE=1

To the end of config.mk.

Make sure monolith is fully cleaned with make clean, then run make.

When it is done compiling, make a file in the same directory called test.scm, and put this in it:

(monolith:start-offline)
(monolith:load "ugens.scm")
(randh 200 500 10)
(sine zz 0.3)
(wavout zz "test.wav")
(out zz)
(monolith:compute (* 44100 10))

Then run:

./monolith -l p/monolith.scm test.scm

With any luck, a file called test.wav should appear.