Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ a strong focus on **education** and data-privacy. Please consider supporting thi

---

## Global Data Flow

![Global data flow](assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

---

## Open-Source

We are committed to transparency and community-driven development.
Expand Down
38 changes: 38 additions & 0 deletions assets/architecture/global-dataflow.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net">
<diagram id="global-dataflow" name="Page-1">
<mxGraphModel dx="723" dy="377" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="ui" value="App" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="20" y="40" width="80" height="40" as="geometry"/>
</mxCell>
<mxCell id="studio" value="Studio" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="140" y="40" width="80" height="40" as="geometry"/>
</mxCell>
<mxCell id="runtime" value="Runtime" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="40" width="80" height="40" as="geometry"/>
</mxCell>
<mxCell id="dsp" value="DSP" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="380" y="40" width="80" height="40" as="geometry"/>
</mxCell>
<mxCell id="storage" value="Storage" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="500" y="40" width="80" height="40" as="geometry"/>
</mxCell>
<mxCell id="e1" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitPerimeter=1;entryX=0;entryY=0.5;entryPerimeter=1;" edge="1" parent="1" source="ui" target="studio">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="e2" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitPerimeter=1;entryX=0;entryY=0.5;entryPerimeter=1;" edge="1" parent="1" source="studio" target="runtime">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="e3" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitPerimeter=1;entryX=0;entryY=0.5;entryPerimeter=1;" edge="1" parent="1" source="runtime" target="dsp">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="e4" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitPerimeter=1;entryX=0;entryY=0.5;entryPerimeter=1;" edge="1" parent="1" source="dsp" target="storage">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
22 changes: 22 additions & 0 deletions assets/architecture/global-dataflow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions packages/app/studio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# @opendaw/app-studio

Main studio application for openDAW.

![Global data flow](../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

4 changes: 4 additions & 0 deletions packages/docs/docs-dev/architecture/audio-path.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

The sequence below shows how audio events travel through the system.

![Global data flow](../../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

```mermaid
sequenceDiagram
participant User
Expand Down
4 changes: 4 additions & 0 deletions packages/docs/docs-dev/architecture/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

The architecture of openDAW is described using the C4 model.

![Global data flow](../../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

## Context

```mermaid
Expand Down
4 changes: 4 additions & 0 deletions packages/docs/docs-learn/how-it-works/storage-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ OPFS provides a sandboxed, persistent file system that is not visible to the
user's operating system. It allows the application to save audio files and
project state without requiring a network connection.

![Global data flow](../../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

```mermaid
flowchart LR
A[Project Data] --> B[OPFS]
Expand Down
4 changes: 4 additions & 0 deletions packages/docs/docs-user/features/mixer.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

Control levels and routing between tracks and devices.

![Global data flow](../../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

## Channel strips

Each track is represented by a channel strip containing controls for volume,
Expand Down
4 changes: 4 additions & 0 deletions packages/docs/docs-user/workflows/export-share.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

Share your music outside of openDAW by rendering audio or packaging the project.

![Global data flow](../../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

1. **Finalize your mix.** Balance tracks and stop playback where you want the export to end.
2. **Open the export dialog.** From the main menu choose _File → Export_.
3. **Pick an option.** Select _Audio Mixdown_ to render a WAV/MP3 or _Project Bundle_ to create an `.odb` file.
Expand Down
6 changes: 5 additions & 1 deletion packages/lib/dsp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ _This package is part of the openDAW SDK_

Digital Signal Processing utilities and audio processing functions for TypeScript projects.

![Global data flow](../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

## Core Audio Processing

* **fft.ts** - Fast Fourier Transform implementations
Expand Down Expand Up @@ -45,4 +49,4 @@ Digital Signal Processing utilities and audio processing functions for TypeScrip
## Utilities

* **utils.ts** - General DSP utility functions
* **global-console.d.ts** - Global console type definitions
* **global-console.d.ts** - Global console type definitions
6 changes: 5 additions & 1 deletion packages/lib/runtime/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ _This package is part of the openDAW SDK_

Runtime utilities and asynchronous operations for TypeScript projects.

![Global data flow](../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.

## Async & Promises

* **promises.ts** - Promise utilities and async operation helpers
Expand All @@ -20,4 +24,4 @@ Runtime utilities and asynchronous operations for TypeScript projects.
## Time & Performance

* **timespan.ts** - Time span calculations and utilities
* **stopwatch.ts** - Performance timing and measurement utilities
* **stopwatch.ts** - Performance timing and measurement utilities
9 changes: 8 additions & 1 deletion packages/studio/core/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
This package is part of the openDAW SDK
# @opendaw/studio-core

This package is part of the openDAW SDK.

![Global data flow](../../../assets/architecture/global-dataflow.svg)

The diagram shows how data moves from the App through the Studio, Runtime and DSP layers before reaching storage.