OpenStudio is a browser and desktop DAW built with React, Web Audio API, and Electron. It brings the core beatmaking workflow into one app: browse sounds, build patterns, edit melodies, arrange clips, mix tracks, save projects locally or in the cloud, and export the final track to WAV or MP3.

https://openstudio-daw.vercel.apphttps://github.com/808StaN/OpenStudio/releaseshttps://github.com/808StaN/OpenStudioOpenStudio was built as a practical beatmaking environment where the main DAW loop works end to end: choose sounds, write patterns, edit notes, arrange clips, mix tracks, save the project, and export the final audio.
It is a full interactive app rather than a static UI mockup, with multiple DAW windows, realtime audio playback, offline rendering, project persistence, drag-and-drop editing, cloud project storage, theming, and desktop packaging in one codebase.
.os project files plus Supabase-backed cloud saves, loading, overwrites, search, sorting, and deletionOfflineAudioContext@breezystack/lamejs.os files, to the cloud, or to both destinations in one flowOpenStudio includes a runtime theme system built around CSS custom-property tokens. DAW themes override the application shell, windows, browser, playlist, mixer, and controls, while plugin styling is kept separate so loaded FX keep a consistent interface across themes.
Current DAW themes:
Default - dark production themeTeal Slate - dark slate/teal themeStudio 95 - classic desktop-inspired themeAero - bright glassy themeTheme files live in:
src/styles/theme-main.css base DAW tokens
src/styles/theme-plugins.css plugin-only tokens
src/styles/themes/ optional DAW theme overrides

OpenStudio includes built-in SoundFont instrument plugins, including:
Instrument definitions are mapped in src/data/pluginInstruments.js.
The instruments are loaded through soundfont-player, using General MIDI-style SoundFont names.





Example .os projects are included for quickly testing load behavior, instruments, patterns, and arrangements:
git clone https://github.com/808StaN/OpenStudio.git
cd OpenStudio
npm install
npm run dev
npm run desktop:dev
npm run build
npm run desktop:pack
Output:
release/win-unpacked/OpenStudio.exe
npm run desktop:installer
Installer artifacts are generated in release/.
npm run refresh:packs - regenerate the Packs manifest from public/packsnpm run dev - run the Vite web dev servernpm run build - create a production web buildnpm run preview - preview the production buildnpm run desktop:dev - run Electron against the Vite dev servernpm run build:desktop - build the app with desktop-relative asset pathsnpm run desktop:pack - build an unpacked Windows desktop appnpm run desktop:start - build and launch the unpacked desktop appnpm run desktop:installer - build the Windows installernpm run lint - run ESLintOpenStudio/
|-- src/
| |-- audio/ realtime scheduling, mixer graph, export/render pipeline
| | |-- core/ scheduler, mixer graph, playback nodes, voice helpers
| | `-- domain/ pure audio/domain helpers for samples, stretch, FX params
| |-- components/ DAW windows, editors, Browser, Mixer, Playlist, Piano Roll
| | |-- browser/ Packs and plugin browser trees
| | |-- channel-rack/ Channel Rack rows, controls, step grid, piano preview
| | |-- fx-plugin/ Graphic EQ, Reverb, Maximizer, FX editor utilities
| | |-- mixer/ mixer tracks, FX slots, drag/drop handlers
| | `-- playlist/ arrangement grid, clips, drag/drop placement logic
| |-- data/ built-in instrument/plugin metadata
| |-- store/ Redux slice, reducers, initial state, persistence helpers
| |-- styles/ app CSS, component CSS, base tokens, plugin tokens
| | `-- themes/ optional DAW theme override files
| `-- utils/ MIDI, pattern, drag/session, and sample URL helpers
|-- electron/ Electron main process and preload bridge
|-- scripts/ pack manifest, Electron dev, installer asset scripts
|-- public/packs/ user/sample pack assets and generated manifest
`-- docs/ screenshots, media, and sample projects
OfflineAudioContext - offline project rendering/export pathsoundfont-player - built-in SoundFont instrument playback@breezystack/lamejs - MP3 encoding for rendered projects.os project file storagereact-rnd - floating, draggable, resizable DAW windowslucide-react - application iconsOpenStudio includes free drumkits and MIDI packs collected for educational/demo use, so the app can be tested immediately without hunting for extra sounds.
Shoutout to producers and teams sharing free producer resources, including Cxdy, Rio Leyva, and Cymatics. Their public drumkits and MIDI packs make OpenStudio easier to demo, test, and learn from. If any included material needs different crediting or should be removed, please contact me through email: dstanisz.dev@gmail.com.
Licensed under GPL-3.0-only. See LICENSE.
$ claude mcp add OpenStudio \
-- python -m otcore.mcp_server <graph>