1--- 2title: Strudel Packages 3layout: ../../layouts/MainLayout.astro 4--- 5 6import { MiniRepl } from '../../docs/MiniRepl'; 7 8# Strudel Packages 9 10The [strudel repo](https://codeberg.org/uzu/strudel) is organized as a monorepo, containing multiple npm packages. 11The purpose of the multiple packages is to 12 13- organize the codebase into more modular, encapsulated pieces 14- be able to opt out of certain functionalities 15- keep the dependencies of the core packages small 16 17## Overview 18 19[See the latest published packages on npm](https://www.npmjs.com/search?q=%40strudel). 20Here is an overview of all the packages: 21 22### Umbrella Packages 23 24These packages give you a batteries-included point of getting started, and most likely the thing you'd want to use in your project: 25 26- [repl](https://codeberg.org/uzu/strudel/src/branch/main/packages/repl): The Strudel REPL as a web component. 27- [web](https://codeberg.org/uzu/strudel/src/branch/main/packages/web): Strudel library for the browser, without UI. 28 29To find out more about these two, read [Using Strudel in Your Project](/technical-manual/project-start) 30 31### Essential Packages 32 33These package are the most essential. You might want to use all of those if you're using strudel in your project: 34 35- [core](https://codeberg.org/uzu/strudel/src/branch/main/packages/core#strudelcore): tidal pattern engine with core primitives 36- [mini](https://codeberg.org/uzu/strudel/src/branch/main/packages/mini#strudelmini): mini notation parser + core bindings 37- [transpiler](https://codeberg.org/uzu/strudel/src/branch/main/packages/transpiler#strudeltranspiler): user code transpiler. syntax sugar + highlighting 38 39### Language Extensions 40 41These packages extend the pattern language by specific functions 42 43- [tonal](https://codeberg.org/uzu/strudel/src/branch/main/packages/tonal): tonal functions for scales and chords 44- [xen](https://codeberg.org/uzu/strudel/src/branch/main/packages/xen): microtonal / xenharmonic functions 45 46### Outputs 47 48These packages provide bindings for different ways to output strudel patterns: 49 50- [webaudio](https://codeberg.org/uzu/strudel/src/branch/main/packages/webaudio#strudelwebaudio): the default webaudio output 51- [osc](https://codeberg.org/uzu/strudel/src/branch/main/packages/osc#strudelosc): bindings to communicate via OSC 52- [midi](https://codeberg.org/uzu/strudel/src/branch/main/packages/midi#strudelmidi): webmidi bindings 53- [csound](https://codeberg.org/uzu/strudel/src/branch/main/packages/csound#strudelcsound): csound bindings 54- [soundfonts](https://codeberg.org/uzu/strudel/src/branch/main/packages/serial#strudelsoundfonts): Soundfont support 55- [serial](https://codeberg.org/uzu/strudel/src/branch/main/packages/serial#strudelserial): webserial bindings 56 57### Others 58 59- [embed](https://codeberg.org/uzu/strudel/src/branch/main/packages/embed#strudelembed): embeddable REPL web component 60 61### No Longer Maintained 62 63- [react](https://www.npmjs.com/package/@strudel.cycles/react): react hooks and components for strudel 64- [eval](https://www.npmjs.com/package/@strudel.cycles/eval): old code transpiler 65- [tone](https://www.npmjs.com/package/@strudel.cycles/tone): bindings for Tone.js instruments and effects 66- [webdirt](https://www.npmjs.com/package/@strudel.cycles/webdirt): webdirt bindings, replaced by webaudio package 67- any `@strudel.cycles/*` packages have been renamed to `@strudel/*` since version 0.10.0. 68 69## Tools 70 71- [pnpm](https://pnpm.io/) for package management, workspaces and publishing 72- [lerna](https://lerna.js.org/) for bumping versions 73- see CONTRIBUTING.md for more info