Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Welcome

... to the afseq scripting guide! afseq, also known as nerdo-rhythm, is an experimental imperative music sequence generator engine.

It allows creating music sequences programmatically using either plain Rust as a library (static, precompiled) or Lua as a scripting engine (dynamic, runtime interpreted) for live music coding.

This book only covers the Lua API for live music coding. For instructions and examples on creating rhythms in plain Rust, see the afseq crate docs.

Key Features

Programmatic : Build musical phrases using Lua scripts or Rust code.
Modular : Combine and reuse rhythm components dynamically.
Flexible : Create anything from simple beats to complex nested rhythms.
Generative : Make evolving compositions that change over time.
Dynamic : Modify patterns live, during playback.
External Control : Connect with MIDI/OSC controllers for hands-on parameter tweaking.
Template Rhythms : Create user configurable rhythm templates.
Cycles Mini-Notation : Use familiar Tidal Cycles mini-notation for rapid pattern creation.

Installation

afseq is a Rust library that deals with raw musical event generation only. It does not generate any audio. You must use an application with built-in support for afseq to use it.

If you are familiar with Rust, you can also use play-script.rs from the examples in the git repository to test out afseq scripts using a basic sample player.

Getting Started

Quickstart : Start with a quick introduction through practical examples.
Guide : Get into details with a more comprehensive documentation.
Examples : More advanced examples, created and explained step by step.
Reference : Read raw technical specifications of the Lua API.