Strudel Packages

The strudel repo is organized as a monorepo, containing multiple npm packages. The purpose of the multiple packages is to

  • organize the codebase into more modular, encapsulated pieces
  • be able to opt out of certain functionalities
  • keep the dependencies of the core packages small

Overview

See the latest published packages on npm. Here is an overview of all the packages:

Essential Packages

These package are the most essential. You might want to use all of those if you’re using strudel in your project:

  • core: tidal pattern engine with core primitives
  • mini: mini notation parser + core bindings
  • transpiler: user code transpiler. syntax sugar + highlighting

Language Extensions

These packages extend the pattern language by specific functions

  • tonal: tonal functions for scales and chords
  • xen: microtonal / xenharmonic functions

Outputs

These packages provide bindings for different ways to output strudel patterns:

Others

  • embed: embeddable REPL web component

No Longer Maintained

  • react: react hooks and components for strudel
  • eval: old code transpiler
  • tone: bindings for Tone.js instruments and effects
  • webdirt: webdirt bindings, replaced by webaudio package
  • any @strudel.cycles/* packages have been renamed to @strudel/* since version 0.10.0.

Tools

  • pnpm for package management, workspaces and publishing
  • lerna for bumping versions
  • see CONTRIBUTING.md for more info