mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-19 09:28:40 +00:00
74 lines
3.5 KiB
Plaintext
74 lines
3.5 KiB
Plaintext
---
|
|
title: Strudel Packages
|
|
layout: ../../layouts/MainLayout.astro
|
|
---
|
|
|
|
import { MiniRepl } from '../../docs/MiniRepl';
|
|
|
|
# Strudel Packages
|
|
|
|
The [strudel repo](https://github.com/tidalcycles/strudel) 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](https://www.npmjs.com/search?q=%40strudel).
|
|
Here is an overview of all the packages:
|
|
|
|
### Umbrella Packages
|
|
|
|
These packages give you a batteries-included point of getting started, and most likely the thing you'd want to use in your project:
|
|
|
|
- [repl](https://github.com/tidalcycles/strudel/tree/main/packages/repl): The Strudel REPL as a web component.
|
|
- [web](https://github.com/tidalcycles/strudel/tree/main/packages/web): Strudel library for the browser, without UI.
|
|
|
|
To find out more about these two, read [Using Strudel in Your Project](/technical-manual/project-start)
|
|
|
|
### 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](https://github.com/tidalcycles/strudel/tree/main/packages/core#strudelcore): tidal pattern engine with core primitives
|
|
- [mini](https://github.com/tidalcycles/strudel/tree/main/packages/mini#strudelmini): mini notation parser + core bindings
|
|
- [transpiler](https://github.com/tidalcycles/strudel/tree/main/packages/transpiler#strudeltranspiler): user code transpiler. syntax sugar + highlighting
|
|
|
|
### Language Extensions
|
|
|
|
These packages extend the pattern language by specific functions
|
|
|
|
- [tonal](https://github.com/tidalcycles/strudel/tree/main/packages/tonal): tonal functions for scales and chords
|
|
- [xen](https://github.com/tidalcycles/strudel/tree/main/packages/xen): microtonal / xenharmonic functions
|
|
|
|
### Outputs
|
|
|
|
These packages provide bindings for different ways to output strudel patterns:
|
|
|
|
- [webaudio](https://github.com/tidalcycles/strudel/tree/main/packages/webaudio#strudelwebaudio): the default webaudio output
|
|
- [osc](https://github.com/tidalcycles/strudel/tree/main/packages/osc#strudelosc): bindings to communicate via OSC
|
|
- [midi](https://github.com/tidalcycles/strudel/tree/main/packages/midi#strudelmidi): webmidi bindings
|
|
- [csound](https://github.com/tidalcycles/strudel/tree/main/packages/csound#strudelcsound): csound bindings
|
|
- [soundfonts](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelsoundfonts): Soundfont support
|
|
- [serial](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelserial): webserial bindings
|
|
|
|
### Others
|
|
|
|
- [embed](https://github.com/tidalcycles/strudel/tree/main/packages/embed#strudelembed): embeddable REPL web component
|
|
|
|
### No Longer Maintained
|
|
|
|
- [react](https://www.npmjs.com/package/@strudel.cycles/react): react hooks and components for strudel
|
|
- [eval](https://www.npmjs.com/package/@strudel.cycles/eval): old code transpiler
|
|
- [tone](https://www.npmjs.com/package/@strudel.cycles/tone): bindings for Tone.js instruments and effects
|
|
- [webdirt](https://www.npmjs.com/package/@strudel.cycles/webdirt): webdirt bindings, replaced by webaudio package
|
|
- any `@strudel.cycles/*` packages have been renamed to `@strudel/*` since version 0.10.0.
|
|
|
|
## Tools
|
|
|
|
- [pnpm](https://pnpm.io/) for package management, workspaces and publishing
|
|
- [lerna](https://lerna.js.org/) for bumping versions
|
|
- see CONTRIBUTING.md for more info
|