From e34e8ac0b94f92cc8554afaf9c1c9782646b4ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Michelle?= Date: Fri, 11 Jul 2025 13:27:47 +0200 Subject: [PATCH] moved studio repo to / --- .eslintrc.js | 5 + .gitignore | 21 +- README.md | 71 +- lerna.json | 12 + package.json | 39 + packages/app/headless/.eslintrc.cjs | 5 + packages/app/headless/CHANGELOG.md | 32 + packages/app/headless/index.html | 13 + packages/app/headless/package.json | 35 + packages/app/headless/public/favicon.svg | 8 + packages/app/headless/public/subset.od | Bin 0 -> 35392 bytes .../app/headless/src/MainThreadAudioLoader.ts | 57 ++ .../src/MainThreadAudioLoaderManager.ts | 19 + packages/app/headless/src/SampleApi.ts | 70 ++ packages/app/headless/src/Test.tsx | 9 + packages/app/headless/src/features.ts | 12 + packages/app/headless/src/main.ts | 62 ++ packages/app/headless/src/style.css | 97 +++ packages/app/headless/src/vite-env.d.ts | 1 + packages/app/headless/tsconfig.json | 6 + packages/app/headless/vite.config.ts | 31 + packages/app/studio/.eslintrc.cjs | 5 + packages/app/studio/CHANGELOG.md | 32 + packages/app/studio/index.html | 90 +++ packages/app/studio/package.json | 37 + packages/app/studio/public/.htaccess | 32 + .../studio/public/become_a_patron_button.png | Bin 0 -> 3086 bytes packages/app/studio/public/cover.png | Bin 0 -> 27270 bytes packages/app/studio/public/favicon.svg | 8 + .../studio/public/fonts/OpenSans-Regular.ttf | Bin 0 -> 130832 bytes packages/app/studio/public/fonts/rubik.woff2 | Bin 0 -> 17644 bytes packages/app/studio/public/grid16.svg | 3 + packages/app/studio/public/images/meta.jpg | Bin 0 -> 355670 bytes packages/app/studio/public/logo.png | Bin 0 -> 89953 bytes .../studio/public/manuals/browser-support.md | 17 + packages/app/studio/public/manuals/dev-log.md | 243 ++++++ .../app/studio/public/manuals/firefox-midi.md | 32 + packages/app/studio/public/manuals/index.md | 18 + .../public/manuals/keyboard-shortcuts.md | 29 + .../app/studio/public/manuals/permissions.md | 3 + .../public/manuals/private-file-system.md | 23 + .../app/studio/public/manuals/tech-stack.md | 44 ++ .../public/templates/BMX_LiquidDrums.od | Bin 0 -> 132091 bytes .../studio/public/templates/BMX_Playfield.od | Bin 0 -> 103759 bytes .../templates/BMX_Skyence_buryme_Remix.od | Bin 0 -> 73850 bytes packages/app/studio/public/templates/Ben.od | Bin 0 -> 22140 bytes .../app/studio/public/templates/Breeze.od | Bin 0 -> 28331 bytes .../app/studio/public/templates/BuryMe.od | Bin 0 -> 9989 bytes .../app/studio/public/templates/Dub-Techno.od | Bin 0 -> 24143 bytes packages/app/studio/public/templates/Fatso.od | Bin 0 -> 28054 bytes .../app/studio/public/templates/Release.od | Bin 0 -> 217830 bytes .../app/studio/public/templates/SeekDeeper.od | Bin 0 -> 16825 bytes .../app/studio/public/templates/Shafted.od | Bin 0 -> 29399 bytes .../app/studio/public/templates/Sunset.od | Bin 0 -> 34512 bytes packages/app/studio/public/update.html | 100 +++ .../public/viscious-speed/abstract-000.svg | 3 + .../public/viscious-speed/abstract-001.svg | 1 + .../public/viscious-speed/abstract-002.svg | 1 + .../public/viscious-speed/abstract-003.svg | 1 + .../public/viscious-speed/abstract-004.svg | 1 + .../public/viscious-speed/abstract-005.svg | 1 + .../public/viscious-speed/abstract-006.svg | 1 + .../public/viscious-speed/abstract-007.svg | 1 + .../public/viscious-speed/abstract-008.svg | 1 + .../public/viscious-speed/abstract-009.svg | 1 + .../public/viscious-speed/abstract-010.svg | 1 + .../public/viscious-speed/abstract-011.svg | 1 + .../public/viscious-speed/abstract-012.svg | 1 + .../public/viscious-speed/abstract-013.svg | 1 + .../public/viscious-speed/abstract-014.svg | 1 + .../public/viscious-speed/abstract-015.svg | 1 + .../public/viscious-speed/abstract-016.svg | 1 + .../public/viscious-speed/abstract-017.svg | 1 + .../public/viscious-speed/abstract-018.svg | 1 + .../public/viscious-speed/abstract-019.svg | 1 + .../public/viscious-speed/abstract-020.svg | 1 + .../public/viscious-speed/abstract-021.svg | 1 + .../public/viscious-speed/abstract-022.svg | 1 + .../public/viscious-speed/abstract-023.svg | 1 + .../public/viscious-speed/abstract-024.svg | 1 + .../public/viscious-speed/abstract-025.svg | 1 + .../public/viscious-speed/abstract-026.svg | 1 + .../public/viscious-speed/abstract-027.svg | 1 + .../public/viscious-speed/abstract-028.svg | 1 + .../public/viscious-speed/abstract-029.svg | 1 + .../public/viscious-speed/abstract-030.svg | 1 + .../public/viscious-speed/abstract-031.svg | 1 + .../public/viscious-speed/abstract-032.svg | 1 + .../public/viscious-speed/abstract-033.svg | 1 + .../public/viscious-speed/abstract-034.svg | 1 + .../public/viscious-speed/abstract-035.svg | 1 + .../public/viscious-speed/abstract-036.svg | 1 + .../public/viscious-speed/abstract-037.svg | 1 + .../public/viscious-speed/abstract-038.svg | 1 + .../public/viscious-speed/abstract-039.svg | 1 + .../public/viscious-speed/abstract-040.svg | 1 + .../public/viscious-speed/abstract-041.svg | 1 + .../public/viscious-speed/abstract-042.svg | 1 + .../public/viscious-speed/abstract-043.svg | 1 + .../public/viscious-speed/abstract-044.svg | 1 + .../public/viscious-speed/abstract-045.svg | 1 + .../public/viscious-speed/abstract-046.svg | 1 + .../public/viscious-speed/abstract-047.svg | 1 + .../public/viscious-speed/abstract-048.svg | 1 + .../public/viscious-speed/abstract-049.svg | 1 + .../public/viscious-speed/abstract-050.svg | 1 + .../public/viscious-speed/abstract-051.svg | 1 + .../public/viscious-speed/abstract-052.svg | 1 + .../public/viscious-speed/abstract-053.svg | 1 + .../public/viscious-speed/abstract-054.svg | 1 + .../public/viscious-speed/abstract-055.svg | 1 + .../public/viscious-speed/abstract-056.svg | 1 + .../public/viscious-speed/abstract-057.svg | 1 + .../public/viscious-speed/abstract-058.svg | 1 + .../public/viscious-speed/abstract-059.svg | 1 + .../public/viscious-speed/abstract-060.svg | 1 + .../public/viscious-speed/abstract-061.svg | 1 + .../public/viscious-speed/abstract-062.svg | 1 + .../public/viscious-speed/abstract-063.svg | 1 + .../public/viscious-speed/abstract-064.svg | 1 + .../public/viscious-speed/abstract-065.svg | 1 + .../public/viscious-speed/abstract-066.svg | 1 + .../public/viscious-speed/abstract-067.svg | 1 + .../public/viscious-speed/abstract-068.svg | 1 + .../public/viscious-speed/abstract-069.svg | 1 + .../public/viscious-speed/abstract-070.svg | 1 + .../public/viscious-speed/abstract-071.svg | 1 + .../public/viscious-speed/abstract-072.svg | 1 + .../public/viscious-speed/abstract-073.svg | 1 + .../public/viscious-speed/abstract-074.svg | 1 + .../public/viscious-speed/abstract-075.svg | 1 + .../public/viscious-speed/abstract-076.svg | 1 + .../public/viscious-speed/abstract-077.svg | 1 + .../public/viscious-speed/abstract-078.svg | 1 + .../public/viscious-speed/abstract-079.svg | 1 + .../public/viscious-speed/abstract-080.svg | 1 + .../public/viscious-speed/abstract-081.svg | 1 + .../public/viscious-speed/abstract-082.svg | 1 + .../public/viscious-speed/abstract-083.svg | 1 + .../public/viscious-speed/abstract-084.svg | 1 + .../public/viscious-speed/abstract-085.svg | 1 + .../public/viscious-speed/abstract-086.svg | 1 + .../public/viscious-speed/abstract-087.svg | 1 + .../public/viscious-speed/abstract-088.svg | 1 + .../public/viscious-speed/abstract-089.svg | 1 + .../public/viscious-speed/abstract-090.svg | 1 + .../public/viscious-speed/abstract-091.svg | 1 + .../public/viscious-speed/abstract-092.svg | 1 + .../public/viscious-speed/abstract-093.svg | 1 + .../public/viscious-speed/abstract-094.svg | 1 + .../public/viscious-speed/abstract-095.svg | 1 + .../public/viscious-speed/abstract-096.svg | 1 + .../public/viscious-speed/abstract-097.svg | 1 + .../public/viscious-speed/abstract-098.svg | 1 + .../public/viscious-speed/abstract-099.svg | 1 + .../public/viscious-speed/abstract-100.svg | 1 + .../public/viscious-speed/abstract-101.svg | 1 + .../public/viscious-speed/abstract-102.svg | 1 + .../public/viscious-speed/abstract-103.svg | 1 + .../public/viscious-speed/abstract-104.svg | 1 + .../public/viscious-speed/abstract-105.svg | 1 + .../public/viscious-speed/abstract-106.svg | 1 + .../public/viscious-speed/abstract-107.svg | 1 + .../public/viscious-speed/abstract-108.svg | 1 + .../public/viscious-speed/abstract-109.svg | 1 + .../public/viscious-speed/abstract-110.svg | 1 + .../public/viscious-speed/abstract-111.svg | 1 + .../public/viscious-speed/abstract-112.svg | 1 + .../public/viscious-speed/abstract-113.svg | 1 + .../public/viscious-speed/abstract-114.svg | 1 + .../public/viscious-speed/abstract-115.svg | 1 + .../public/viscious-speed/abstract-116.svg | 1 + .../public/viscious-speed/abstract-117.svg | 1 + .../public/viscious-speed/abstract-118.svg | 1 + .../public/viscious-speed/abstract-119.svg | 1 + .../public/viscious-speed/abstract-120.svg | 1 + .../public/viscious-speed/abstract-121.svg | 1 + packages/app/studio/src/AppDialogs.tsx | 37 + packages/app/studio/src/BuildInfo.ts | 6 + packages/app/studio/src/ErrorMail.txt | 17 + packages/app/studio/src/Recovery.ts | 50 ++ packages/app/studio/src/audio/AudioDevices.ts | 102 +++ .../app/studio/src/audio/AudioDialogs.tsx | 41 ++ packages/app/studio/src/audio/AudioImport.ts | 40 + .../app/studio/src/audio/AudioMetaData.ts | 7 + .../studio/src/audio/AudioOfflineRenderer.ts | 89 +++ .../app/studio/src/audio/AudioOutputDevice.ts | 47 ++ packages/app/studio/src/audio/AudioPeaks.ts | 16 + packages/app/studio/src/audio/AudioSample.ts | 3 + .../app/studio/src/audio/AudioServerApi.ts | 7 + packages/app/studio/src/audio/AudioStorage.ts | 66 ++ packages/app/studio/src/colors.sass | 38 + .../app/studio/src/errors/ErrorHandler.ts | 75 ++ packages/app/studio/src/errors/ErrorInfo.ts | 50 ++ packages/app/studio/src/errors/ErrorLog.ts | 13 + packages/app/studio/src/errors/LogBuffer.ts | 83 +++ packages/app/studio/src/features.ts | 12 + packages/app/studio/src/global.d.ts | 23 + packages/app/studio/src/main.sass | 149 ++++ packages/app/studio/src/main.ts | 147 ++++ packages/app/studio/src/midi/Channel.ts | 3 + packages/app/studio/src/midi/ControlType.ts | 9 + packages/app/studio/src/midi/MidiData.ts | 60 ++ .../studio/src/midi/devices/MIDILearning.ts | 229 ++++++ .../src/midi/devices/MIDIMessageSubscriber.ts | 37 + .../src/midi/devices/MidiDeviceAccess.ts | 126 ++++ .../studio/src/midi/devices/MidiDialogs.tsx | 30 + packages/app/studio/src/midi/format/Chunk.ts | 1 + .../studio/src/midi/format/ControlEvent.ts | 67 ++ .../src/midi/format/ControlEventVisitor.ts | 8 + packages/app/studio/src/midi/format/Event.ts | 6 + .../app/studio/src/midi/format/MetaType.ts | 60 ++ .../app/studio/src/midi/format/MidiFile.ts | 48 ++ .../studio/src/midi/format/MidiFileDecoder.ts | 97 +++ .../studio/src/midi/format/MidiFileFormat.ts | 6 + .../app/studio/src/midi/format/MidiTrack.ts | 112 +++ packages/app/studio/src/mixins.sass | 191 +++++ .../studio/src/project/ProjectBrowser.sass | 51 ++ .../app/studio/src/project/ProjectBrowser.tsx | 65 ++ .../app/studio/src/project/ProjectDialogs.tsx | 140 ++++ .../app/studio/src/project/ProjectMeta.ts | 23 + .../app/studio/src/project/ProjectSession.ts | 129 ++++ packages/app/studio/src/project/Projects.ts | 138 ++++ .../app/studio/src/project/SampleImporter.ts | 11 + .../app/studio/src/project/SampleUtils.ts | 45 ++ .../app/studio/src/project/UIAudioLoader.ts | 133 ++++ .../app/studio/src/project/UIAudioManager.ts | 30 + packages/app/studio/src/service/Effects.ts | 199 +++++ .../src/service/ExportStemsConfigurator.sass | 27 + .../src/service/ExportStemsConfigurator.tsx | 97 +++ .../app/studio/src/service/FooterLabel.ts | 6 + .../app/studio/src/service/Instruments.ts | 177 +++++ packages/app/studio/src/service/SampleApi.ts | 111 +++ .../app/studio/src/service/SamplePlayback.ts | 114 +++ .../app/studio/src/service/SessionService.ts | 168 +++++ packages/app/studio/src/service/Shortcuts.ts | 62 ++ .../app/studio/src/service/StudioService.ts | 415 +++++++++++ .../app/studio/src/service/StudioSignal.ts | 11 + .../app/studio/src/service/SyncLogService.ts | 86 +++ packages/app/studio/src/service/agents.ts | 26 + packages/app/studio/src/service/app-menu.ts | 92 +++ packages/app/studio/src/ui/AnyDragData.ts | 35 + packages/app/studio/src/ui/App.tsx | 46 ++ packages/app/studio/src/ui/AutoScroll.ts | 53 ++ packages/app/studio/src/ui/Colors.ts | 15 + packages/app/studio/src/ui/ContextMenu.ts | 76 ++ packages/app/studio/src/ui/Cursors.ts | 28 + packages/app/studio/src/ui/Dashboard.sass | 96 +++ packages/app/studio/src/ui/Dashboard.tsx | 78 ++ packages/app/studio/src/ui/DragAndDrop.ts | 129 ++++ .../studio/src/ui/FilePickerAcceptTypes.ts | 24 + packages/app/studio/src/ui/FontLoader.ts | 12 + packages/app/studio/src/ui/Fonts.ts | 16 + packages/app/studio/src/ui/Footer.sass | 27 + packages/app/studio/src/ui/Footer.tsx | 78 ++ packages/app/studio/src/ui/HTMLSelection.ts | 60 ++ packages/app/studio/src/ui/IconLibrary.tsx | 646 ++++++++++++++++ packages/app/studio/src/ui/Markdown.sass | 8 + packages/app/studio/src/ui/Markdown.tsx | 53 ++ .../app/studio/src/ui/MissingFeature.sass | 25 + packages/app/studio/src/ui/MissingFeature.tsx | 21 + packages/app/studio/src/ui/Modifier.ts | 210 ++++++ packages/app/studio/src/ui/NotePadPanel.sass | 22 + packages/app/studio/src/ui/NotePadPanel.tsx | 77 ++ packages/app/studio/src/ui/NotePadTemplate.md | 26 + packages/app/studio/src/ui/TextScroller.ts | 29 + packages/app/studio/src/ui/UpdateMessage.sass | 9 + packages/app/studio/src/ui/UpdateMessage.tsx | 13 + .../app/studio/src/ui/browse/BrowseScope.tsx | 1 + .../studio/src/ui/browse/BrowserPanel.sass | 11 + .../app/studio/src/ui/browse/BrowserPanel.tsx | 44 ++ .../studio/src/ui/browse/DevicesBrowser.sass | 93 +++ .../studio/src/ui/browse/DevicesBrowser.tsx | 126 ++++ .../studio/src/ui/browse/SampleBrowser.sass | 69 ++ .../studio/src/ui/browse/SampleBrowser.tsx | 136 ++++ .../studio/src/ui/browse/SampleDialogs.tsx | 138 ++++ .../studio/src/ui/browse/SampleLocation.tsx | 1 + .../app/studio/src/ui/browse/SampleService.ts | 90 +++ .../app/studio/src/ui/browse/SampleView.sass | 46 ++ .../app/studio/src/ui/browse/SampleView.tsx | 105 +++ .../app/studio/src/ui/canvas/capturing.ts | 27 + packages/app/studio/src/ui/canvas/painter.ts | 101 +++ packages/app/studio/src/ui/canvas/scale.ts | 48 ++ .../src/ui/components/BoxDebugView.sass | 54 ++ .../studio/src/ui/components/BoxDebugView.tsx | 74 ++ .../src/ui/components/BoxesDebugView.sass | 47 ++ .../src/ui/components/BoxesDebugView.tsx | 38 + .../app/studio/src/ui/components/Button.tsx | 22 + .../ui/components/ButtonCheckboxRadio.sass | 81 ++ .../src/ui/components/ButtonCheckboxRadio.tsx | 70 ++ .../app/studio/src/ui/components/Checkbox.tsx | 38 + .../src/ui/components/ControlIndicator.tsx | 17 + .../app/studio/src/ui/components/Dialog.sass | 34 + .../app/studio/src/ui/components/Dialog.tsx | 72 ++ .../studio/src/ui/components/FlexSpacer.tsx | 5 + .../src/ui/components/FloatingTextInput.sass | 31 + .../src/ui/components/FloatingTextInput.tsx | 50 ++ .../app/studio/src/ui/components/Icon.sass | 5 + .../app/studio/src/ui/components/Icon.tsx | 30 + .../src/ui/components/InsertMarker.sass | 10 + .../studio/src/ui/components/InsertMarker.tsx | 15 + .../app/studio/src/ui/components/Knob.sass | 16 + .../app/studio/src/ui/components/Knob.tsx | 92 +++ .../app/studio/src/ui/components/Menu.sass | 125 ++++ .../app/studio/src/ui/components/Menu.tsx | 271 +++++++ .../studio/src/ui/components/MenuButton.sass | 60 ++ .../studio/src/ui/components/MenuButton.tsx | 79 ++ .../studio/src/ui/components/NumberInput.sass | 4 + .../studio/src/ui/components/NumberInput.tsx | 121 +++ .../src/ui/components/ParameterLabel.sass | 40 + .../src/ui/components/ParameterLabel.tsx | 45 ++ .../studio/src/ui/components/PeakMeter.sass | 16 + .../studio/src/ui/components/PeakMeter.tsx | 97 +++ .../studio/src/ui/components/ProgressBar.sass | 14 + .../studio/src/ui/components/ProgressBar.tsx | 23 + .../studio/src/ui/components/RadioGroup.tsx | 62 ++ .../studio/src/ui/components/ScrollModel.ts | 97 +++ .../studio/src/ui/components/Scroller.sass | 41 ++ .../app/studio/src/ui/components/Scroller.tsx | 68 ++ .../studio/src/ui/components/SearchInput.sass | 15 + .../studio/src/ui/components/SearchInput.tsx | 29 + .../studio/src/ui/components/TextButton.sass | 8 + .../studio/src/ui/components/TextButton.tsx | 10 + .../studio/src/ui/components/TextInput.sass | 5 + .../studio/src/ui/components/TextInput.tsx | 61 ++ .../src/ui/components/TimeCodeInput.sass | 4 + .../src/ui/components/TimeCodeInput.tsx | 136 ++++ .../src/ui/components/VolumeSlider.sass | 28 + .../studio/src/ui/components/VolumeSlider.tsx | 140 ++++ .../app/studio/src/ui/components/dialogs.tsx | 306 ++++++++ .../app/studio/src/ui/composite/DropDown.sass | 8 + .../app/studio/src/ui/composite/DropDown.tsx | 42 ++ .../app/studio/src/ui/composite/LabelKnob.tsx | 30 + packages/app/studio/src/ui/configs.ts | 9 + .../studio/src/ui/devices/AudioBusEditor.sass | 9 + .../studio/src/ui/devices/AudioBusEditor.tsx | 38 + .../app/studio/src/ui/devices/Column.sass | 5 + packages/app/studio/src/ui/devices/Column.tsx | 27 + .../studio/src/ui/devices/ControlBuilder.tsx | 38 + .../studio/src/ui/devices/DeviceEditor.sass | 73 ++ .../studio/src/ui/devices/DeviceEditor.tsx | 93 +++ .../src/ui/devices/DeviceEditorFactory.tsx | 152 ++++ .../src/ui/devices/DevicePanelDragAndDrop.ts | 114 +++ .../src/ui/devices/ParameterLabelKnob.sass | 2 + .../src/ui/devices/ParameterLabelKnob.tsx | 53 ++ .../studio/src/ui/devices/SampleSelector.ts | 138 ++++ .../audio-effects/DelayDeviceEditor.sass | 4 + .../audio-effects/DelayDeviceEditor.tsx | 88 +++ .../audio-effects/ModularDeviceEditor.sass | 4 + .../audio-effects/ModularDeviceEditor.tsx | 104 +++ .../audio-effects/RevampDeviceEditor.sass | 33 + .../audio-effects/RevampDeviceEditor.tsx | 307 ++++++++ .../RevampDeviceEditor/Curves.ts | 250 +++++++ .../RevampDeviceEditor/Display.tsx | 34 + .../RevampDeviceEditor/Renderer.ts | 109 +++ .../RevampDeviceEditor/constants.ts | 42 ++ .../audio-effects/ReverbDeviceEditor.sass | 4 + .../audio-effects/ReverbDeviceEditor.tsx | 69 ++ .../audio-effects/StereoToolDeviceEditor.sass | 11 + .../audio-effects/StereoToolDeviceEditor.tsx | 135 ++++ .../AutoGainButton.sass | 17 + .../StereoToolDeviceEditor/AutoGainButton.tsx | 79 ++ .../app/studio/src/ui/devices/constants.ts | 1 + .../devices/instruments/NanoDeviceEditor.sass | 40 + .../devices/instruments/NanoDeviceEditor.tsx | 75 ++ .../instruments/PlayfieldDeviceEditor.tsx | 51 ++ .../PlayfieldDeviceEditor/BusySlot.sass | 58 ++ .../PlayfieldDeviceEditor/BusySlot.tsx | 222 ++++++ .../PlayfieldDeviceEditor/EmptySlot.sass | 22 + .../PlayfieldDeviceEditor/EmptySlot.tsx | 56 ++ .../PlayfieldDeviceEditor/NoteLabel.sass | 4 + .../PlayfieldDeviceEditor/NoteLabel.tsx | 22 + .../PlayfieldDeviceEditor/OctaveSelector.sass | 28 + .../PlayfieldDeviceEditor/OctaveSelector.tsx | 76 ++ .../PlayfieldDeviceEditor/Slot.sass | 22 + .../PlayfieldDeviceEditor/Slot.tsx | 74 ++ .../PlayfieldDeviceEditor/SlotDragAndDrop.ts | 84 +++ .../PlayfieldDeviceEditor/SlotEditor.sass | 81 ++ .../PlayfieldDeviceEditor/SlotEditor.tsx | 187 +++++ .../PlayfieldDeviceEditor/SlotGrid.sass | 26 + .../PlayfieldDeviceEditor/SlotGrid.tsx | 97 +++ .../PlayfieldDeviceEditor/SlotState.tsx | 3 + .../PlayfieldDeviceEditor/SlotUtils.ts | 75 ++ .../instruments/PlayfieldSampleEditor.tsx | 90 +++ .../devices/instruments/TapeDeviceEditor.sass | 35 + .../devices/instruments/TapeDeviceEditor.tsx | 47 ++ .../instruments/TapeDeviceEditor/Tape.tsx | 106 +++ .../instruments/TapeDeviceEditor/Timeline.tsx | 66 ++ .../instruments/VaporisateurDeviceEditor.sass | 4 + .../instruments/VaporisateurDeviceEditor.tsx | 105 +++ .../app/studio/src/ui/devices/menu-items.ts | 136 ++++ .../midi-effects/ArpeggioDeviceEditor.sass | 4 + .../midi-effects/ArpeggioDeviceEditor.tsx | 84 +++ .../midi-effects/PitchDeviceEditor.sass | 4 + .../midi-effects/PitchDeviceEditor.tsx | 63 ++ .../midi-effects/ZeitgeistDeviceEditor.sass | 4 + .../midi-effects/ZeitgeistDeviceEditor.tsx | 57 ++ .../src/ui/devices/panel/DeviceMidiMeter.sass | 8 + .../src/ui/devices/panel/DeviceMidiMeter.tsx | 29 + .../src/ui/devices/panel/DeviceMount.tsx | 90 +++ .../src/ui/devices/panel/DevicePanel.sass | 51 ++ .../src/ui/devices/panel/DevicePanel.tsx | 223 ++++++ .../src/ui/devices/panel/DevicePeakMeter.sass | 16 + .../src/ui/devices/panel/DevicePeakMeter.tsx | 75 ++ .../panel/NoAudioUnitSelectedPlaceholder.sass | 8 + .../panel/NoAudioUnitSelectedPlaceholder.tsx | 25 + .../ui/devices/panel/NoEffectPlaceholder.sass | 8 + .../ui/devices/panel/NoEffectPlaceholder.tsx | 23 + packages/app/studio/src/ui/dialogs.tsx | 67 ++ packages/app/studio/src/ui/extractors.ts | 83 +++ packages/app/studio/src/ui/header/Header.sass | 41 ++ packages/app/studio/src/ui/header/Header.tsx | 121 +++ .../src/ui/header/TimeStateDisplay.sass | 27 + .../studio/src/ui/header/TimeStateDisplay.tsx | 183 +++++ .../studio/src/ui/header/TransportGroup.tsx | 38 + packages/app/studio/src/ui/hooks/cursor.ts | 81 ++ packages/app/studio/src/ui/hooks/dragging.ts | 43 ++ .../app/studio/src/ui/info-panel/Cover.sass | 26 + .../app/studio/src/ui/info-panel/Cover.tsx | 55 ++ .../studio/src/ui/info-panel/ProjectInfo.sass | 34 + .../studio/src/ui/info-panel/ProjectInfo.tsx | 66 ++ packages/app/studio/src/ui/menu/automation.ts | 39 + packages/app/studio/src/ui/menu/debug.ts | 8 + packages/app/studio/src/ui/meter/VUMeter.tsx | 223 ++++++ .../app/studio/src/ui/meter/VUMeterDesign.tsx | 149 ++++ .../app/studio/src/ui/meter/VUMeterPanel.sass | 36 + .../app/studio/src/ui/meter/VUMeterPanel.tsx | 44 ++ packages/app/studio/src/ui/meter/mapping.ts | 17 + .../src/ui/mixer/AudioOutputDevices.sass | 26 + .../src/ui/mixer/AudioOutputDevices.tsx | 48 ++ .../src/ui/mixer/AudioOutputSelector.tsx | 71 ++ packages/app/studio/src/ui/mixer/AuxSend.sass | 18 + packages/app/studio/src/ui/mixer/AuxSend.tsx | 71 ++ .../app/studio/src/ui/mixer/AuxSendGroup.sass | 10 + .../app/studio/src/ui/mixer/AuxSendGroup.tsx | 105 +++ .../src/ui/mixer/ChannelOutputSelector.tsx | 90 +++ .../app/studio/src/ui/mixer/ChannelStrip.sass | 101 +++ .../app/studio/src/ui/mixer/ChannelStrip.tsx | 204 ++++++ .../app/studio/src/ui/mixer/ColorCodes.ts | 33 + packages/app/studio/src/ui/mixer/Mixer.sass | 42 ++ packages/app/studio/src/ui/mixer/Mixer.tsx | 179 +++++ .../studio/src/ui/mixer/OutputSelector.sass | 30 + packages/app/studio/src/ui/model/menu-item.ts | 162 ++++ packages/app/studio/src/ui/modular/Camera.ts | 79 ++ .../studio/src/ui/modular/ConnectorView.sass | 44 ++ .../studio/src/ui/modular/ConnectorView.tsx | 92 +++ .../studio/src/ui/modular/EmptyModular.sass | 24 + .../studio/src/ui/modular/EmptyModular.tsx | 27 + .../src/ui/modular/GenericModuleView.sass | 71 ++ .../src/ui/modular/GenericModuleView.tsx | 153 ++++ .../app/studio/src/ui/modular/Modular.sass | 22 + .../app/studio/src/ui/modular/Modular.tsx | 85 +++ .../src/ui/modular/ModularEnvironment.ts | 224 ++++++ .../src/ui/modular/ModularTabButton.sass | 10 + .../src/ui/modular/ModularTabButton.tsx | 29 + .../studio/src/ui/modular/ModularView.sass | 44 ++ .../app/studio/src/ui/modular/ModularView.tsx | 102 +++ .../studio/src/ui/modular/ModularWires.sass | 21 + .../studio/src/ui/modular/ModularWires.tsx | 133 ++++ .../app/studio/src/ui/modular/ModuleShelf.ts | 47 ++ .../studio/src/ui/modular/WiringFlyout.sass | 38 + .../studio/src/ui/modular/WiringFlyout.tsx | 75 ++ .../src/ui/pages/AudioInputDevicesPage.sass | 48 ++ .../src/ui/pages/AudioInputDevicesPage.tsx | 103 +++ .../studio/src/ui/pages/AutomationPage.sass | 36 + .../studio/src/ui/pages/AutomationPage.tsx | 690 ++++++++++++++++++ .../app/studio/src/ui/pages/BackButton.sass | 15 + .../app/studio/src/ui/pages/BackButton.tsx | 17 + .../app/studio/src/ui/pages/ColorsPage.tsx | 39 + .../studio/src/ui/pages/ComponentsPage.sass | 37 + .../studio/src/ui/pages/ComponentsPage.tsx | 270 +++++++ .../app/studio/src/ui/pages/ErrorsPage.sass | 41 ++ .../app/studio/src/ui/pages/ErrorsPage.tsx | 93 +++ .../app/studio/src/ui/pages/IconsPage.sass | 34 + .../app/studio/src/ui/pages/IconsPage.tsx | 27 + .../app/studio/src/ui/pages/ImprintPage.sass | 24 + .../app/studio/src/ui/pages/ImprintPage.tsx | 31 + .../app/studio/src/ui/pages/ManualPage.sass | 42 ++ .../app/studio/src/ui/pages/ManualPage.tsx | 36 + packages/app/studio/src/ui/pages/Manuals.ts | 10 + .../studio/src/ui/pages/SampleUploadPage.sass | 19 + .../studio/src/ui/pages/SampleUploadPage.tsx | 48 ++ .../studio/src/ui/pages/StreamPeakMeter.sass | 11 + .../studio/src/ui/pages/StreamPeakMeter.tsx | 70 ++ .../app/studio/src/ui/pages/errors/Logs.sass | 12 + .../app/studio/src/ui/pages/errors/Logs.tsx | 126 ++++ .../app/studio/src/ui/pages/errors/Stack.sass | 8 + .../app/studio/src/ui/pages/errors/Stack.tsx | 15 + .../studio/src/ui/piano-panel/NoteFall.sass | 9 + .../studio/src/ui/piano-panel/NoteFall.tsx | 142 ++++ .../src/ui/piano-panel/PianoModePanel.sass | 48 ++ .../src/ui/piano-panel/PianoModePanel.tsx | 138 ++++ .../studio/src/ui/piano-panel/PianoRoll.sass | 9 + .../studio/src/ui/piano-panel/PianoRoll.tsx | 101 +++ .../src/ui/piano-panel/PianoRollLayout.ts | 84 +++ .../app/studio/src/ui/spinner/ThreeDots.sass | 18 + .../app/studio/src/ui/spinner/ThreeDots.tsx | 15 + .../studio/src/ui/spotlight/Spotlight.sass | 66 ++ .../app/studio/src/ui/spotlight/Spotlight.tsx | 124 ++++ .../src/ui/spotlight/SpotlightDataSupplier.ts | 35 + .../studio/src/ui/surface/AbstractTooltip.ts | 119 +++ .../app/studio/src/ui/surface/Surface.sass | 8 + .../app/studio/src/ui/surface/Surface.tsx | 305 ++++++++ .../studio/src/ui/surface/TextTooltip.sass | 12 + .../app/studio/src/ui/surface/TextTooltip.tsx | 58 ++ .../studio/src/ui/surface/ValueTooltip.sass | 17 + .../studio/src/ui/surface/ValueTooltip.tsx | 46 ++ .../app/studio/src/ui/timeline/ColorMenu.ts | 20 + packages/app/studio/src/ui/timeline/Config.ts | 6 + .../app/studio/src/ui/timeline/CutCursor.sass | 6 + .../app/studio/src/ui/timeline/CutCursor.tsx | 37 + .../src/ui/timeline/LoopAreaEditor.sass | 8 + .../studio/src/ui/timeline/LoopAreaEditor.tsx | 112 +++ .../app/studio/src/ui/timeline/MidiImport.ts | 126 ++++ .../app/studio/src/ui/timeline/Modifier.ts | 8 + .../src/ui/timeline/ObservableModifier.ts | 6 + .../ui/timeline/ObservableModifyContext.ts | 34 + .../src/ui/timeline/SelectionRectangle.sass | 8 + .../src/ui/timeline/SelectionRectangle.tsx | 120 +++ .../studio/src/ui/timeline/SnapSelector.sass | 10 + .../studio/src/ui/timeline/SnapSelector.tsx | 30 + .../app/studio/src/ui/timeline/Snapping.ts | 111 +++ .../app/studio/src/ui/timeline/TimeAxis.sass | 44 ++ .../app/studio/src/ui/timeline/TimeAxis.tsx | 145 ++++ .../app/studio/src/ui/timeline/TimeGrid.ts | 42 ++ .../app/studio/src/ui/timeline/Timeline.sass | 25 + .../app/studio/src/ui/timeline/Timeline.tsx | 63 ++ .../src/ui/timeline/TimelineHeader.sass | 18 + .../studio/src/ui/timeline/TimelineHeader.tsx | 45 ++ .../src/ui/timeline/TimelineNavigation.sass | 11 + .../src/ui/timeline/TimelineNavigation.tsx | 31 + .../studio/src/ui/timeline/TimelineRange.ts | 103 +++ .../src/ui/timeline/TimelineRangeSlider.sass | 23 + .../src/ui/timeline/TimelineRangeSlider.tsx | 98 +++ .../ui/timeline/TimelineSelectableLocator.ts | 7 + .../app/studio/src/ui/timeline/constants.ts | 1 + .../src/ui/timeline/editors/ClipReader.ts | 81 ++ .../ui/timeline/editors/ContentEditor.sass | 56 ++ .../src/ui/timeline/editors/ContentEditor.tsx | 233 ++++++ .../src/ui/timeline/editors/EditorBody.ts | 40 + .../timeline/editors/EditorMenuCollector.ts | 6 + .../ui/timeline/editors/EventOwnerReader.ts | 40 + .../src/ui/timeline/editors/RegionBound.sass | 11 + .../src/ui/timeline/editors/RegionBound.tsx | 114 +++ .../timeline/editors/RegionCapturingTarget.ts | 43 ++ .../src/ui/timeline/editors/RegionReader.ts | 88 +++ .../src/ui/timeline/editors/Shortcuts.ts | 19 + .../ui/timeline/editors/TimeGridRenderer.ts | 18 + .../src/ui/timeline/editors/ValueInput.ts | 35 + .../src/ui/timeline/editors/WheelScroll.ts | 14 + .../ui/timeline/editors/audio/AudioEditor.tsx | 32 + .../editors/audio/AudioEditorCanvas.sass | 16 + .../editors/audio/AudioEditorCanvas.tsx | 66 ++ .../editors/audio/AudioEditorHeader.sass | 11 + .../editors/audio/AudioEditorHeader.tsx | 20 + .../ui/timeline/editors/notes/Constants.ts | 2 + .../notes/NoteContentDurationModifier.ts | 76 ++ .../editors/notes/NoteCreateModifier.ts | 101 +++ .../editors/notes/NoteDurationModifier.ts | 124 ++++ .../ui/timeline/editors/notes/NoteEditor.sass | 18 + .../ui/timeline/editors/notes/NoteEditor.tsx | 176 +++++ .../ui/timeline/editors/notes/NoteModifier.ts | 4 + .../editors/notes/NoteModifyStrategies.ts | 51 ++ .../editors/notes/NoteMoveModifier.ts | 157 ++++ .../ui/timeline/editors/notes/NoteUtils.ts | 18 + .../ui/timeline/editors/notes/NoteViewMenu.ts | 39 + .../ui/timeline/editors/notes/UINoteEvent.ts | 10 + .../editors/notes/pitch/PianoRoll.sass | 9 + .../editors/notes/pitch/PianoRoll.tsx | 85 +++ .../editors/notes/pitch/PitchContextMenu.ts | 29 + .../editors/notes/pitch/PitchEditor.sass | 15 + .../editors/notes/pitch/PitchEditor.tsx | 197 +++++ .../notes/pitch/PitchEditorHeader.sass | 33 + .../editors/notes/pitch/PitchEditorHeader.tsx | 60 ++ .../notes/pitch/PitchEventCapturing.ts | 33 + .../timeline/editors/notes/pitch/PitchMenu.ts | 90 +++ .../editors/notes/pitch/PitchPainter.ts | 126 ++++ .../editors/notes/pitch/PitchPositioner.ts | 69 ++ .../notes/pitch/PitchSelectionLocator.ts | 39 + .../editors/notes/pitch/ScaleConfig.ts | 56 ++ .../notes/pitch/ScaleConfigurator.sass | 19 + .../editors/notes/pitch/ScaleConfigurator.tsx | 22 + .../editors/notes/pitch/ScaleSelector.sass | 5 + .../editors/notes/pitch/ScaleSelector.tsx | 34 + .../notes/property/PropertyAccessor.ts | 54 ++ .../notes/property/PropertyDrawModifier.ts | 116 +++ .../notes/property/PropertyEditor.sass | 13 + .../editors/notes/property/PropertyEditor.tsx | 156 ++++ .../notes/property/PropertyEventCapturing.ts | 41 ++ .../notes/property/PropertyHeader.sass | 27 + .../editors/notes/property/PropertyHeader.tsx | 41 ++ .../notes/property/PropertyLineModifier.ts | 120 +++ .../notes/property/PropertyNodeModifier.ts | 117 +++ .../editors/notes/property/PropertyPainter.ts | 75 ++ .../notes/property/PropertyParameters.ts | 83 +++ .../property/PropertySelectionLocator.ts | 43 ++ .../editors/notes/property/PropertyTable.sass | 32 + .../editors/notes/property/PropertyTable.tsx | 160 ++++ .../ui/timeline/editors/value/Constants.ts | 2 + .../ui/timeline/editors/value/UIValueEvent.ts | 3 + .../editors/value/ValueAssignment.tsx | 7 + .../value/ValueContentDurationModifier.ts | 78 ++ .../editors/value/ValueContextMenu.ts | 59 ++ .../editors/value/ValueEditingContext.ts | 85 +++ .../timeline/editors/value/ValueEditor.sass | 16 + .../ui/timeline/editors/value/ValueEditor.tsx | 265 +++++++ .../editors/value/ValueEditorHeader.sass | 12 + .../editors/value/ValueEditorHeader.tsx | 40 + .../editors/value/ValueEventCapturing.ts | 97 +++ .../timeline/editors/value/ValueEventDraft.ts | 113 +++ .../editors/value/ValueEventEditing.ts | 75 ++ .../editors/value/ValueEventsEditor.sass | 7 + .../editors/value/ValueEventsEditor.tsx | 40 + .../timeline/editors/value/ValueModifier.ts | 4 + .../editors/value/ValueModifyStrategies.ts | 30 + .../editors/value/ValueMoveModifier.ts | 275 +++++++ .../editors/value/ValuePaintModifier.ts | 170 +++++ .../ui/timeline/editors/value/ValuePainter.ts | 118 +++ .../editors/value/ValueSelectionLocator.ts | 31 + .../editors/value/ValueSlopeModifier.ts | 117 +++ .../ui/timeline/editors/value/ValueTooltip.ts | 62 ++ .../studio/src/ui/timeline/renderer/audio.ts | 43 ++ .../studio/src/ui/timeline/renderer/env.ts | 9 + .../studio/src/ui/timeline/renderer/notes.ts | 28 + .../studio/src/ui/timeline/renderer/value.ts | 101 +++ .../audio-unit/AudioUnitChannelControls.sass | 18 + .../audio-unit/AudioUnitChannelControls.tsx | 86 +++ .../tracks/audio-unit/AudioUnitTracks.sass | 26 + .../tracks/audio-unit/AudioUnitTracks.tsx | 36 + .../tracks/audio-unit/AudioUnitsTimeline.sass | 46 ++ .../tracks/audio-unit/AudioUnitsTimeline.tsx | 80 ++ .../timeline/tracks/audio-unit/Constants.ts | 1 + .../tracks/audio-unit/TimelineDragAndDrop.ts | 101 +++ .../ui/timeline/tracks/audio-unit/Track.sass | 5 + .../ui/timeline/tracks/audio-unit/Track.tsx | 42 ++ .../tracks/audio-unit/TrackContext.ts | 33 + .../tracks/audio-unit/TrackHeader.sass | 20 + .../tracks/audio-unit/TrackHeader.tsx | 83 +++ .../tracks/audio-unit/TrackHeaderMenu.ts | 91 +++ .../tracks/audio-unit/TracksManager.ts | 219 ++++++ .../tracks/audio-unit/clips/Clip.sass | 81 ++ .../timeline/tracks/audio-unit/clips/Clip.tsx | 106 +++ .../tracks/audio-unit/clips/ClipCapturing.ts | 32 + .../audio-unit/clips/ClipContextMenu.ts | 123 ++++ .../tracks/audio-unit/clips/ClipLane.sass | 14 + .../tracks/audio-unit/clips/ClipLane.tsx | 141 ++++ .../tracks/audio-unit/clips/ClipModifier.ts | 4 + .../audio-unit/clips/ClipModifyStrategy.ts | 30 + .../audio-unit/clips/ClipMoveModifier.ts | 198 +++++ .../audio-unit/clips/ClipPlaceholder.tsx | 33 + .../audio-unit/clips/ClipPlaybackButton.sass | 22 + .../audio-unit/clips/ClipPlaybackButton.tsx | 50 ++ .../audio-unit/clips/ClipSampleDragAndDrop.ts | 31 + .../audio-unit/clips/ClipSelectableLocator.ts | 37 + .../tracks/audio-unit/clips/ClipsArea.sass | 7 + .../tracks/audio-unit/clips/ClipsArea.tsx | 130 ++++ .../tracks/audio-unit/clips/ClipsHeader.sass | 44 ++ .../tracks/audio-unit/clips/ClipsHeader.tsx | 109 +++ .../tracks/audio-unit/clips/constants.ts | 1 + .../clips/painter/AudioClipPainter.ts | 59 ++ .../clips/painter/NoteClipPainter.ts | 32 + .../clips/painter/ValueClipPainter.ts | 39 + .../audio-unit/regions/RegionCapturing.ts | 65 ++ .../audio-unit/regions/RegionClipResolver.ts | 194 +++++ .../audio-unit/regions/RegionContextMenu.ts | 120 +++ .../regions/RegionDurationModifier.ts | 127 ++++ .../tracks/audio-unit/regions/RegionLane.sass | 19 + .../tracks/audio-unit/regions/RegionLane.tsx | 52 ++ .../regions/RegionLoopDurationModifier.ts | 124 ++++ .../audio-unit/regions/RegionModifier.ts | 4 + .../regions/RegionModifyStrategies.ts | 45 ++ .../audio-unit/regions/RegionMoveModifier.ts | 202 +++++ .../audio-unit/regions/RegionRenderer.ts | 179 +++++ .../regions/RegionSampleDragAndDrop.ts | 41 ++ .../regions/RegionSelectionLocator.ts | 33 + .../audio-unit/regions/RegionStartModifier.ts | 131 ++++ .../audio-unit/regions/RegionTransformer.ts | 52 ++ .../audio-unit/regions/RegionsArea.sass | 8 + .../tracks/audio-unit/regions/RegionsArea.tsx | 246 +++++++ .../timeline/tracks/footer/TracksFooter.sass | 11 + .../timeline/tracks/footer/TracksFooter.tsx | 26 + .../tracks/footer/TracksFooterHeader.sass | 6 + .../tracks/footer/TracksFooterHeader.tsx | 9 + .../tracks/primary/PrimaryTracks.sass | 2 + .../timeline/tracks/primary/PrimaryTracks.tsx | 30 + .../primary/marker/MarkerContextMenu.ts | 61 ++ .../tracks/primary/marker/MarkerRenderer.ts | 97 +++ .../tracks/primary/marker/MarkerTrack.sass | 11 + .../tracks/primary/marker/MarkerTrack.tsx | 29 + .../primary/marker/MarkerTrackBody.sass | 16 + .../tracks/primary/marker/MarkerTrackBody.tsx | 96 +++ .../primary/marker/MarkerTrackHeader.sass | 9 + .../primary/marker/MarkerTrackHeader.tsx | 9 + .../timeline/tracks/primary/marker/Markers.ts | 8 + packages/app/studio/src/ui/validator/name.ts | 14 + .../app/studio/src/ui/validator/validator.ts | 10 + .../studio/src/ui/workspace/AxisProperty.ts | 7 + .../studio/src/ui/workspace/ContentGlue.ts | 3 + .../app/studio/src/ui/workspace/Default.ts | 197 +++++ .../studio/src/ui/workspace/FlexSpace.sass | 9 + .../app/studio/src/ui/workspace/FlexSpace.tsx | 11 + .../studio/src/ui/workspace/PanelContent.tsx | 149 ++++ .../studio/src/ui/workspace/PanelContents.tsx | 40 + .../studio/src/ui/workspace/PanelFactory.tsx | 50 ++ .../src/ui/workspace/PanelPlaceholder.sass | 62 ++ .../src/ui/workspace/PanelPlaceholder.tsx | 118 +++ .../studio/src/ui/workspace/PanelResizer.sass | 30 + .../studio/src/ui/workspace/PanelResizer.tsx | 68 ++ .../app/studio/src/ui/workspace/PanelState.ts | 37 + .../app/studio/src/ui/workspace/PanelType.ts | 14 + .../app/studio/src/ui/workspace/Workspace.ts | 45 ++ .../src/ui/workspace/WorkspacePage.sass | 45 ++ .../studio/src/ui/workspace/WorkspacePage.tsx | 72 ++ .../src/ui/wrapper/DblClckTextInput.tsx | 31 + .../app/studio/src/ui/wrapper/EditWrapper.ts | 38 + .../ui/wrapper/RelativeUnitValueDragging.tsx | 73 ++ packages/app/studio/src/utils.ts | 14 + packages/app/studio/src/vite-env.d.ts | 1 + .../vite-plugin-cross-origin-isolation.d.ts | 4 + packages/app/studio/src/worker/agents.ts | 7 + packages/app/studio/tsconfig.json | 15 + packages/app/studio/vite.config.ts | 45 ++ packages/config/eslint/CHANGELOG.md | 20 + packages/config/eslint/index.js | 31 + packages/config/eslint/package.json | 9 + packages/config/typescript/CHANGELOG.md | 16 + packages/config/typescript/base.json | 29 + packages/config/typescript/package.json | 8 + packages/config/typescript/vite.json | 26 + packages/lib/box-forge/.eslintrc.cjs | 10 + packages/lib/box-forge/CHANGELOG.md | 28 + packages/lib/box-forge/package.json | 28 + packages/lib/box-forge/src/forge.ts | 498 +++++++++++++ packages/lib/box-forge/src/header.ts | 11 + packages/lib/box-forge/src/index.ts | 2 + packages/lib/box-forge/src/schema.ts | 78 ++ packages/lib/box-forge/test/Pointers.ts | 12 + packages/lib/box-forge/test/forge.test.ts | 192 +++++ packages/lib/box-forge/test/schema.ts | 108 +++ packages/lib/box-forge/tsconfig.json | 17 + packages/lib/box/.eslintrc.cjs | 10 + packages/lib/box/CHANGELOG.md | 24 + packages/lib/box/README.md | 1 + packages/lib/box/package.json | 28 + packages/lib/box/src/address.test.ts | 173 +++++ packages/lib/box/src/address.ts | 151 ++++ packages/lib/box/src/array.ts | 49 ++ packages/lib/box/src/box.test.ts | 389 ++++++++++ packages/lib/box/src/box.ts | 146 ++++ packages/lib/box/src/dispatchers.ts | 134 ++++ packages/lib/box/src/editing.test.ts | 104 +++ packages/lib/box/src/editing.ts | 135 ++++ packages/lib/box/src/field.ts | 79 ++ packages/lib/box/src/graph-edges.ts | 117 +++ packages/lib/box/src/graph.ts | 333 +++++++++ packages/lib/box/src/index.ts | 26 + packages/lib/box/src/object.ts | 30 + packages/lib/box/src/pointer-hub.ts | 135 ++++ packages/lib/box/src/pointer.ts | 106 +++ packages/lib/box/src/primitive.ts | 205 ++++++ packages/lib/box/src/serializer.ts | 31 + packages/lib/box/src/sync-source.ts | 81 ++ packages/lib/box/src/sync-target.ts | 42 ++ packages/lib/box/src/sync.ts | 13 + packages/lib/box/src/updates.ts | 225 ++++++ packages/lib/box/src/vertex.ts | 46 ++ packages/lib/box/tsconfig.json | 16 + packages/lib/dom/.eslintrc.cjs | 10 + packages/lib/dom/CHANGELOG.md | 28 + packages/lib/dom/README.md | 1 + packages/lib/dom/package.json | 29 + packages/lib/dom/src/browser.ts | 19 + packages/lib/dom/src/compression.ts | 17 + packages/lib/dom/src/console-commands.ts | 55 ++ packages/lib/dom/src/context-2d.ts | 29 + packages/lib/dom/src/css-utils.test.ts | 12 + packages/lib/dom/src/css-utils.ts | 72 ++ packages/lib/dom/src/dragging.ts | 123 ++++ packages/lib/dom/src/errors.ts | 7 + packages/lib/dom/src/events.ts | 44 ++ packages/lib/dom/src/files.ts | 58 ++ packages/lib/dom/src/fonts.ts | 23 + packages/lib/dom/src/frames.ts | 71 ++ packages/lib/dom/src/html.test.ts | 18 + packages/lib/dom/src/html.ts | 136 ++++ packages/lib/dom/src/index.ts | 26 + packages/lib/dom/src/keyboard.ts | 17 + packages/lib/dom/src/modfier-keys.ts | 7 + packages/lib/dom/src/stream.ts | 20 + packages/lib/dom/src/svg.ts | 65 ++ packages/lib/dom/src/terminable.ts | 40 + packages/lib/dom/tsconfig.json | 18 + packages/lib/dsp/.eslintrc.cjs | 10 + packages/lib/dsp/CHANGELOG.md | 24 + packages/lib/dsp/README.md | 1 + packages/lib/dsp/package.json | 27 + packages/lib/dsp/src/biquad-coeff.ts | 248 +++++++ packages/lib/dsp/src/biquad-processor.ts | 76 ++ packages/lib/dsp/src/bpm-tools.ts | 75 ++ packages/lib/dsp/src/chords.ts | 16 + packages/lib/dsp/src/delay.ts | 132 ++++ packages/lib/dsp/src/events.test.ts | 104 +++ packages/lib/dsp/src/events.ts | 410 +++++++++++ packages/lib/dsp/src/fft.ts | 70 ++ packages/lib/dsp/src/fractions.ts | 23 + packages/lib/dsp/src/fragmentor.ts | 22 + packages/lib/dsp/src/global-console.d.ts | 11 + packages/lib/dsp/src/graph.test.ts | 27 + packages/lib/dsp/src/graph.ts | 124 ++++ packages/lib/dsp/src/grooves.test.ts | 97 +++ packages/lib/dsp/src/grooves.ts | 84 +++ packages/lib/dsp/src/index.ts | 30 + packages/lib/dsp/src/midi-keys.ts | 58 ++ packages/lib/dsp/src/notes.ts | 36 + packages/lib/dsp/src/osc.ts | 47 ++ packages/lib/dsp/src/ppqn.test.ts | 73 ++ packages/lib/dsp/src/ppqn.ts | 47 ++ packages/lib/dsp/src/ramp.ts | 173 +++++ packages/lib/dsp/src/rms.ts | 32 + packages/lib/dsp/src/stereo.ts | 100 +++ packages/lib/dsp/src/utils.ts | 30 + packages/lib/dsp/src/value.test.ts | 71 ++ packages/lib/dsp/src/value.ts | 133 ++++ packages/lib/dsp/src/window.ts | 52 ++ packages/lib/dsp/tsconfig.json | 15 + packages/lib/fusion/.eslintrc.cjs | 10 + packages/lib/fusion/CHANGELOG.md | 28 + packages/lib/fusion/README.md | 1 + packages/lib/fusion/package.json | 29 + packages/lib/fusion/src/index.ts | 19 + packages/lib/fusion/src/live-stream/Flags.ts | 3 + .../src/live-stream/LiveStreamBroadcaster.ts | 209 ++++++ .../src/live-stream/LiveStreamReceiver.ts | 234 ++++++ packages/lib/fusion/src/live-stream/Lock.ts | 1 + .../lib/fusion/src/live-stream/PackageType.ts | 1 + .../lib/fusion/src/live-stream/Protocol.ts | 5 + .../lib/fusion/src/live-stream/Subscribers.ts | 35 + packages/lib/fusion/src/opfs/OpfsProtocol.ts | 9 + packages/lib/fusion/src/opfs/OpfsWorker.ts | 72 ++ packages/lib/fusion/src/peaks/PeakProtocol.ts | 9 + packages/lib/fusion/src/peaks/PeakWorker.ts | 93 +++ packages/lib/fusion/src/peaks/Peaks.ts | 98 +++ packages/lib/fusion/src/peaks/PeaksPainter.ts | 56 ++ packages/lib/fusion/src/types.ts | 25 + packages/lib/fusion/tsconfig.json | 18 + packages/lib/jsx/.eslintrc.cjs | 10 + packages/lib/jsx/CHANGELOG.md | 32 + packages/lib/jsx/README.md | 1 + packages/lib/jsx/package.json | 28 + packages/lib/jsx/src/create-element.ts | 122 ++++ packages/lib/jsx/src/index.ts | 20 + packages/lib/jsx/src/inject.ts | 126 ++++ packages/lib/jsx/src/routes.ts | 86 +++ packages/lib/jsx/src/std/Await.tsx | 22 + packages/lib/jsx/src/std/Frag.tsx | 4 + packages/lib/jsx/src/std/Group.tsx | 6 + packages/lib/jsx/src/std/Hotspot.tsx | 14 + packages/lib/jsx/src/std/LocalLink.tsx | 13 + packages/lib/jsx/src/std/Preloader.tsx | 26 + packages/lib/jsx/src/std/Router.tsx | 110 +++ packages/lib/jsx/src/supported-svg-tags.ts | 98 +++ packages/lib/jsx/src/types.ts | 39 + packages/lib/jsx/src/weak.ts | 18 + packages/lib/jsx/tsconfig.json | 24 + packages/lib/runtime/.eslintrc.cjs | 10 + packages/lib/runtime/CHANGELOG.md | 24 + packages/lib/runtime/README.md | 1 + packages/lib/runtime/package.json | 27 + packages/lib/runtime/src/communicator.test.ts | 189 +++++ packages/lib/runtime/src/communicator.ts | 165 +++++ packages/lib/runtime/src/fetch.ts | 25 + packages/lib/runtime/src/index.ts | 18 + packages/lib/runtime/src/messenger.ts | 64 ++ packages/lib/runtime/src/network.ts | 8 + packages/lib/runtime/src/promises.ts | 155 ++++ packages/lib/runtime/src/runtime.ts | 22 + packages/lib/runtime/src/stopwatch.ts | 9 + packages/lib/runtime/src/timespan.ts | 12 + packages/lib/runtime/src/wait.ts | 36 + packages/lib/runtime/tsconfig.json | 18 + packages/lib/std/.eslintrc.cjs | 10 + packages/lib/std/CHANGELOG.md | 24 + packages/lib/std/README.md | 1 + packages/lib/std/package.json | 24 + packages/lib/std/src/arrays.test.ts | 261 +++++++ packages/lib/std/src/arrays.ts | 115 +++ packages/lib/std/src/attempts.test.ts | 166 +++++ packages/lib/std/src/attempts.ts | 81 ++ packages/lib/std/src/bijective.ts | 4 + packages/lib/std/src/binary-search.test.ts | 101 +++ packages/lib/std/src/binary-search.ts | 91 +++ packages/lib/std/src/bits.test.ts | 125 ++++ packages/lib/std/src/bits.ts | 54 ++ packages/lib/std/src/cache.ts | 19 + packages/lib/std/src/color.test.ts | 16 + packages/lib/std/src/color.ts | 27 + packages/lib/std/src/comparators.ts | 14 + packages/lib/std/src/crypto.ts | 9 + packages/lib/std/src/curve.ts | 67 ++ packages/lib/std/src/data.test.ts | 126 ++++ packages/lib/std/src/data.ts | 284 +++++++ packages/lib/std/src/decorators.ts | 54 ++ packages/lib/std/src/generators.test.ts | 10 + packages/lib/std/src/generators.ts | 18 + packages/lib/std/src/geom.test.ts | 191 +++++ packages/lib/std/src/geom.ts | 238 ++++++ packages/lib/std/src/hash.test.ts | 85 +++ packages/lib/std/src/hash.ts | 32 + packages/lib/std/src/index.ts | 51 ++ packages/lib/std/src/intervals.test.ts | 22 + packages/lib/std/src/intervals.ts | 4 + packages/lib/std/src/iterables.test.ts | 95 +++ packages/lib/std/src/iterables.ts | 96 +++ packages/lib/std/src/lang.test.ts | 16 + packages/lib/std/src/lang.ts | 101 +++ packages/lib/std/src/listeners.test.ts | 22 + packages/lib/std/src/listeners.ts | 28 + packages/lib/std/src/maps.ts | 23 + packages/lib/std/src/math.test.ts | 14 + packages/lib/std/src/math.ts | 32 + packages/lib/std/src/multimap.test.ts | 391 ++++++++++ packages/lib/std/src/multimap.ts | 274 +++++++ packages/lib/std/src/numeric.ts | 136 ++++ packages/lib/std/src/objects.test.ts | 28 + packages/lib/std/src/objects.ts | 33 + packages/lib/std/src/observers.ts | 106 +++ packages/lib/std/src/option.test.ts | 128 ++++ packages/lib/std/src/option.ts | 87 +++ packages/lib/std/src/parameters.ts | 102 +++ packages/lib/std/src/predicates.ts | 7 + packages/lib/std/src/progress.ts | 15 + packages/lib/std/src/random.ts | 57 ++ packages/lib/std/src/range.ts | 142 ++++ packages/lib/std/src/schema.test.ts | 98 +++ packages/lib/std/src/schema.ts | 151 ++++ packages/lib/std/src/selection.ts | 33 + packages/lib/std/src/sets.ts | 5 + packages/lib/std/src/sorted-set.test.ts | 112 +++ packages/lib/std/src/sorted-set.ts | 133 ++++ packages/lib/std/src/string-mapping.test.ts | 25 + packages/lib/std/src/string-mapping.ts | 149 ++++ packages/lib/std/src/strings.ts | 24 + packages/lib/std/src/sync-stream.test.ts | 58 ++ packages/lib/std/src/sync-stream.ts | 54 ++ packages/lib/std/src/terminable.test.ts | 233 ++++++ packages/lib/std/src/terminable.ts | 85 +++ packages/lib/std/src/time-span.ts | 96 +++ packages/lib/std/src/uuid.test.ts | 11 + packages/lib/std/src/uuid.ts | 91 +++ packages/lib/std/src/value-guide.test.ts | 78 ++ packages/lib/std/src/value-guides.ts | 158 ++++ packages/lib/std/src/value-mapping.ts | 144 ++++ packages/lib/std/tsconfig.json | 16 + packages/studio/adapters/.eslintrc.cjs | 10 + packages/studio/adapters/CHANGELOG.md | 28 + packages/studio/adapters/README.md | 1 + packages/studio/adapters/generate-exports.mjs | 50 ++ packages/studio/adapters/package.json | 33 + packages/studio/adapters/src/AudioData.ts | 6 + .../adapters/src/AudioFileBoxAdapter.ts | 32 + packages/studio/adapters/src/AudioLoader.ts | 22 + packages/studio/adapters/src/AudioMetaData.ts | 7 + packages/studio/adapters/src/AudioSample.ts | 3 + .../src/AutomatableParameterFieldAdapter.ts | 197 +++++ packages/studio/adapters/src/BoxAdapter.ts | 7 + .../adapters/src/BoxAdapterCollection.ts | 49 ++ packages/studio/adapters/src/BoxAdapters.ts | 188 +++++ .../studio/adapters/src/BoxAdaptersContext.ts | 24 + .../studio/adapters/src/ClipNotifications.ts | 15 + .../studio/adapters/src/ClipSequencing.ts | 13 + .../adapters/src/EngineProcessorOptions.ts | 45 ++ .../studio/adapters/src/EngineStateSchema.ts | 8 + packages/studio/adapters/src/FieldAdapter.ts | 87 +++ packages/studio/adapters/src/IconSymbol.ts | 120 +++ .../studio/adapters/src/IndexComparator.ts | 10 + .../studio/adapters/src/ManadatoryBoxes.ts | 9 + .../studio/adapters/src/NoteBroadcaster.ts | 30 + packages/studio/adapters/src/NoteSender.ts | 21 + .../studio/adapters/src/NoteStreamReceiver.ts | 33 + .../adapters/src/ParameterAdapterSet.ts | 42 ++ .../adapters/src/ParameterFieldAdapters.ts | 19 + .../adapters/src/PeakMeterProcessorOptions.ts | 8 + .../studio/adapters/src/PianoModeAdapter.ts | 53 ++ .../studio/adapters/src/ProjectDecoder.ts | 35 + .../adapters/src/RecordingProcessorOptions.ts | 3 + packages/studio/adapters/src/RingBuffer.ts | 105 +++ .../studio/adapters/src/RootBoxAdapter.ts | 59 ++ .../src/SortedBoxAdapterCollection.ts | 141 ++++ .../studio/adapters/src/UnionAdapterTypes.ts | 20 + .../studio/adapters/src/UpdateClockRate.ts | 3 + .../src/audio-unit/AudioBusBoxAdapter.ts | 46 ++ .../src/audio-unit/AudioUnitBoxAdapter.ts | 119 +++ .../adapters/src/audio-unit/AudioUnitInput.ts | 102 +++ .../src/audio-unit/AudioUnitInputAdapter.ts | 4 + .../src/audio-unit/AudioUnitOutput.ts | 56 ++ .../src/audio-unit/AudioUnitTracks.ts | 76 ++ .../src/audio-unit/AuxSendBoxAdapter.ts | 90 +++ packages/studio/adapters/src/devices.ts | 138 ++++ .../audio-effects/DelayDeviceBoxAdapter.ts | 84 +++ .../audio-effects/ModularDeviceBoxAdapter.ts | 54 ++ .../audio-effects/RevampDeviceBoxAdapter.ts | 136 ++++ .../audio-effects/ReverbDeviceBoxAdapter.ts | 83 +++ .../StereoToolDeviceBoxAdapter.ts | 62 ++ .../instruments/NanoDeviceBoxAdapter.ts | 61 ++ .../src/devices/instruments/Playfield/Gate.ts | 3 + .../Playfield/PlayfieldSampleBoxAdapter.ts | 163 +++++ .../instruments/PlayfieldDeviceBoxAdapter.ts | 58 ++ .../instruments/TapeDeviceBoxAdapter.ts | 69 ++ .../VaporisateurDeviceBoxAdapter.ts | 89 +++ .../midi-effects/ArpeggioDeviceBoxAdapter.ts | 86 +++ .../midi-effects/PitchDeviceBoxAdapter.ts | 63 ++ .../midi-effects/ZeitgeistDeviceBoxAdapter.ts | 51 ++ .../adapters/src/editing/UserEditing.ts | 51 ++ .../src/editing/UserEditingManager.ts | 30 + packages/studio/adapters/src/global.d.ts | 8 + .../adapters/src/grooves/GrooveBoxAdapter.ts | 12 + .../src/grooves/GrooveShuffleBoxAdapter.ts | 75 ++ .../studio/adapters/src/modular/abstract.ts | 57 ++ .../studio/adapters/src/modular/connection.ts | 20 + .../studio/adapters/src/modular/connector.ts | 49 ++ .../studio/adapters/src/modular/modular.ts | 94 +++ .../studio/adapters/src/modular/module.ts | 47 ++ .../src/modular/modules/audio-input.ts | 26 + .../src/modular/modules/audio-output.ts | 26 + .../adapters/src/modular/modules/delay.ts | 36 + .../adapters/src/modular/modules/gain.ts | 36 + .../src/modular/modules/multiplier.ts | 27 + .../adapters/src/modular/user-interface.ts | 40 + packages/studio/adapters/src/protocols.ts | 30 + .../src/selection/FilteredSelection.ts | 88 +++ .../src/selection/SelectableVertex.ts | 4 + .../adapters/src/selection/SelectionEntry.ts | 4 + .../adapters/src/selection/VertexSelection.ts | 142 ++++ .../adapters/src/selection/isVertexOfBox.ts | 5 + .../adapters/src/timeline/ClipBoxAdapter.ts | 47 ++ .../adapters/src/timeline/MarkerBoxAdapter.ts | 51 ++ .../src/timeline/MarkerTrackAdapter.ts | 56 ++ .../adapters/src/timeline/RegionBoxAdapter.ts | 56 ++ .../adapters/src/timeline/RegionEditing.ts | 36 + .../src/timeline/TimelineBoxAdapter.ts | 23 + .../adapters/src/timeline/TrackBoxAdapter.ts | 189 +++++ .../adapters/src/timeline/TrackClips.ts | 35 + .../adapters/src/timeline/TrackRegions.ts | 53 ++ .../studio/adapters/src/timeline/TrackType.ts | 33 + .../src/timeline/clip/AudioClipBoxAdapter.ts | 124 ++++ .../src/timeline/clip/NoteClipBoxAdapter.ts | 127 ++++ .../src/timeline/clip/ValueClipBoxAdapter.ts | 132 ++++ .../NoteEventCollectionBoxAdapter.ts | 179 +++++ .../ValueEventCollectionBoxAdapter.ts | 176 +++++ .../event/InterpolationFieldAdapter.ts | 44 ++ .../src/timeline/event/NoteEventBoxAdapter.ts | 124 ++++ .../timeline/event/ValueEventBoxAdapter.ts | 149 ++++ .../timeline/region/AudioRegionBoxAdapter.ts | 171 +++++ .../timeline/region/NoteRegionBoxAdapter.ts | 226 ++++++ .../timeline/region/ValueRegionBoxAdapter.ts | 240 ++++++ packages/studio/adapters/src/unions.ts | 32 + packages/studio/adapters/tsconfig.json | 18 + packages/studio/boxes/.eslintrc.cjs | 10 + packages/studio/boxes/CHANGELOG.md | 24 + packages/studio/boxes/README.md | 1 + packages/studio/boxes/package.json | 30 + packages/studio/boxes/tsconfig.json | 18 + packages/studio/core-processors/.eslintrc.cjs | 10 + packages/studio/core-processors/CHANGELOG.md | 28 + packages/studio/core-processors/package.json | 30 + .../core-processors/src/AbstractProcessor.ts | 84 +++ .../studio/core-processors/src/AudioBuffer.ts | 53 ++ .../core-processors/src/AudioBusProcessor.ts | 79 ++ .../core-processors/src/AudioDeviceChain.ts | 134 ++++ .../src/AudioManagerWorklet.ts | 35 + .../core-processors/src/AudioProcessor.ts | 52 ++ .../studio/core-processors/src/AudioUnit.ts | 63 ++ .../core-processors/src/AudioUnitOptions.ts | 7 + .../src/AutomatableParameter.ts | 59 ++ .../core-processors/src/AuxSendProcessor.ts | 83 +++ .../core-processors/src/BlockRenderer.ts | 200 +++++ .../src/ChannelStripProcessor.ts | 139 ++++ .../src/ClipSequencingAudioContext.ts | 175 +++++ .../studio/core-processors/src/DeviceChain.ts | 5 + .../src/DeviceProcessorFactory.ts | 97 +++ .../core-processors/src/EngineContext.ts | 21 + .../core-processors/src/EngineProcessor.ts | 336 +++++++++ .../studio/core-processors/src/EventBuffer.ts | 13 + .../core-processors/src/EventProcessor.ts | 40 + .../studio/core-processors/src/FreeVerb.ts | 279 +++++++ .../src/InsertReturnAudioChain.ts | 93 +++ .../core-processors/src/MeterProcessor.ts | 67 ++ .../studio/core-processors/src/Metronome.ts | 63 ++ .../core-processors/src/MidiDeviceChain.ts | 93 +++ packages/studio/core-processors/src/Mixer.ts | 83 +++ .../src/NoteEventInstrument.ts | 53 ++ .../core-processors/src/NoteEventSource.ts | 42 ++ .../core-processors/src/NoteSequencer.ts | 233 ++++++ .../core-processors/src/PeakBroadcaster.ts | 61 ++ .../core-processors/src/RecordingProcessor.ts | 17 + .../studio/core-processors/src/SimpleAdsr.ts | 64 ++ .../core-processors/src/SpectrumAnalyser.ts | 63 ++ .../studio/core-processors/src/TimeInfo.ts | 29 + .../studio/core-processors/src/UpdateClock.ts | 43 ++ .../studio/core-processors/src/constants.ts | 1 + .../devices/audio-effects/DelayDeviceDsp.ts | 166 +++++ .../audio-effects/DelayDeviceProcessor.ts | 114 +++ .../audio-effects/NopDeviceProcessor.ts | 69 ++ .../audio-effects/RevampDeviceProcessor.ts | 222 ++++++ .../audio-effects/ReverbDeviceProcessor.ts | 93 +++ .../StereoToolDeviceProcessor.ts | 127 ++++ .../instruments/NanoDeviceProcessor.ts | 159 ++++ .../Playfield/AutomatableParameters.ts | 9 + .../instruments/Playfield/MixProcessor.ts | 70 ++ .../Playfield/PlayfieldSequencer.ts | 45 ++ .../instruments/Playfield/SampleProcessor.ts | 113 +++ .../instruments/Playfield/SampleVoice.ts | 132 ++++ .../instruments/PlayfieldDeviceProcessor.ts | 96 +++ .../instruments/TapeDeviceProcessor.ts | 119 +++ .../VaporisateurDeviceProcessor.ts | 187 +++++ .../ArpeggioDevice/ArpeggioModes.ts | 68 ++ .../midi-effects/ArpeggioDeviceProcessor.ts | 138 ++++ .../midi-effects/PitchDeviceProcessor.ts | 87 +++ .../midi-effects/ZeitgeistDeviceProcessor.ts | 81 ++ .../studio/core-processors/src/global.d.ts | 10 + packages/studio/core-processors/src/index.ts | 1 + .../studio/core-processors/src/processing.ts | 63 ++ .../studio/core-processors/src/processors.ts | 28 + packages/studio/core-processors/tsconfig.json | 16 + packages/studio/core/.eslintrc.cjs | 10 + packages/studio/core/CHANGELOG.md | 28 + packages/studio/core/README.md | 1 + packages/studio/core/package.json | 43 ++ packages/studio/core/src/Engine.ts | 32 + packages/studio/core/src/EngineFacade.ts | 83 +++ packages/studio/core/src/EngineWorklet.ts | 216 ++++++ packages/studio/core/src/MeterWorklet.ts | 42 ++ packages/studio/core/src/Mixer.ts | 126 ++++ packages/studio/core/src/Project.ts | 226 ++++++ packages/studio/core/src/ProjectEnv.ts | 5 + packages/studio/core/src/RecordingWorklet.ts | 47 ++ packages/studio/core/src/Wav.ts | 50 ++ packages/studio/core/src/WorkletFactory.ts | 15 + packages/studio/core/src/Worklets.ts | 55 ++ packages/studio/core/src/index.ts | 13 + packages/studio/core/src/sync-log/Commit.ts | 77 ++ .../studio/core/src/sync-log/SyncLogReader.ts | 56 ++ .../studio/core/src/sync-log/SyncLogWriter.ts | 58 ++ packages/studio/core/tsconfig.json | 18 + packages/studio/enums/.eslintrc.cjs | 10 + packages/studio/enums/CHANGELOG.md | 24 + packages/studio/enums/README.md | 1 + packages/studio/enums/package.json | 24 + packages/studio/enums/src/AudioUnitType.ts | 6 + packages/studio/enums/src/Pointers.ts | 42 ++ packages/studio/enums/src/index.ts | 2 + packages/studio/enums/tsconfig.json | 15 + packages/studio/forge-boxes/.eslintrc.cjs | 10 + packages/studio/forge-boxes/CHANGELOG.md | 24 + packages/studio/forge-boxes/package.json | 26 + packages/studio/forge-boxes/src/forge.ts | 52 ++ packages/studio/forge-boxes/src/index.ts | 1 + .../forge-boxes/src/schema/audio-unit.ts | 86 +++ .../studio/forge-boxes/src/schema/audio.ts | 14 + .../studio/forge-boxes/src/schema/defaults.ts | 45 ++ .../devices/audio-effects/DelayDeviceBox.ts | 13 + .../devices/audio-effects/RevampDeviceBox.ts | 44 ++ .../devices/audio-effects/ReverbDeviceBox.ts | 13 + .../audio-effects/StereoToolDeviceBox.ts | 15 + .../forge-boxes/src/schema/devices/builder.ts | 54 ++ .../forge-boxes/src/schema/devices/clash.ts | 44 ++ .../forge-boxes/src/schema/devices/index.ts | 30 + .../devices/instruments/NanoDeviceBox.ts | 10 + .../devices/instruments/PlayfieldDeviceBox.ts | 44 ++ .../devices/instruments/TapeDeviceBox.ts | 11 + .../instruments/VaporisateurDeviceBox.ts | 16 + .../devices/midi-effects/ArpeggioDeviceBox.ts | 15 + .../devices/midi-effects/EchoDeviceBox.ts | 11 + .../devices/midi-effects/PitchDeviceBox.ts | 10 + .../midi-effects/ZeitGeistDeviceBox.ts | 7 + .../forge-boxes/src/schema/devices/modular.ts | 42 ++ .../studio/forge-boxes/src/schema/grooves.ts | 45 ++ .../forge-boxes/src/schema/modular/builder.ts | 30 + .../forge-boxes/src/schema/modular/index.ts | 37 + .../forge-boxes/src/schema/modular/modules.ts | 55 ++ .../studio/forge-boxes/src/schema/root.ts | 51 ++ .../forge-boxes/src/schema/selection.ts | 13 + .../forge-boxes/src/schema/step-automation.ts | 14 + .../forge-boxes/src/schema/timeline/audio.ts | 40 + .../forge-boxes/src/schema/timeline/clips.ts | 14 + .../forge-boxes/src/schema/timeline/marker.ts | 16 + .../forge-boxes/src/schema/timeline/notes.ts | 83 +++ .../src/schema/timeline/timeline.ts | 55 ++ .../forge-boxes/src/schema/timeline/track.ts | 19 + .../forge-boxes/src/schema/timeline/value.ts | 85 +++ .../forge-boxes/src/schema/user-interface.ts | 16 + packages/studio/forge-boxes/tsconfig.json | 15 + packages/studio/sdk/CHANGELOG.md | 52 ++ packages/studio/sdk/README.md | 33 + packages/studio/sdk/package.json | 34 + scripts/cert.sh | 4 + scripts/clean.sh | 19 + turbo.json | 40 + 1198 files changed, 66407 insertions(+), 8 deletions(-) create mode 100644 .eslintrc.js create mode 100644 lerna.json create mode 100644 package.json create mode 100644 packages/app/headless/.eslintrc.cjs create mode 100644 packages/app/headless/CHANGELOG.md create mode 100644 packages/app/headless/index.html create mode 100644 packages/app/headless/package.json create mode 100644 packages/app/headless/public/favicon.svg create mode 100644 packages/app/headless/public/subset.od create mode 100644 packages/app/headless/src/MainThreadAudioLoader.ts create mode 100644 packages/app/headless/src/MainThreadAudioLoaderManager.ts create mode 100644 packages/app/headless/src/SampleApi.ts create mode 100644 packages/app/headless/src/Test.tsx create mode 100644 packages/app/headless/src/features.ts create mode 100644 packages/app/headless/src/main.ts create mode 100644 packages/app/headless/src/style.css create mode 100644 packages/app/headless/src/vite-env.d.ts create mode 100644 packages/app/headless/tsconfig.json create mode 100644 packages/app/headless/vite.config.ts create mode 100644 packages/app/studio/.eslintrc.cjs create mode 100644 packages/app/studio/CHANGELOG.md create mode 100644 packages/app/studio/index.html create mode 100644 packages/app/studio/package.json create mode 100644 packages/app/studio/public/.htaccess create mode 100644 packages/app/studio/public/become_a_patron_button.png create mode 100644 packages/app/studio/public/cover.png create mode 100644 packages/app/studio/public/favicon.svg create mode 100644 packages/app/studio/public/fonts/OpenSans-Regular.ttf create mode 100644 packages/app/studio/public/fonts/rubik.woff2 create mode 100644 packages/app/studio/public/grid16.svg create mode 100644 packages/app/studio/public/images/meta.jpg create mode 100644 packages/app/studio/public/logo.png create mode 100644 packages/app/studio/public/manuals/browser-support.md create mode 100644 packages/app/studio/public/manuals/dev-log.md create mode 100644 packages/app/studio/public/manuals/firefox-midi.md create mode 100644 packages/app/studio/public/manuals/index.md create mode 100644 packages/app/studio/public/manuals/keyboard-shortcuts.md create mode 100644 packages/app/studio/public/manuals/permissions.md create mode 100644 packages/app/studio/public/manuals/private-file-system.md create mode 100644 packages/app/studio/public/manuals/tech-stack.md create mode 100644 packages/app/studio/public/templates/BMX_LiquidDrums.od create mode 100644 packages/app/studio/public/templates/BMX_Playfield.od create mode 100644 packages/app/studio/public/templates/BMX_Skyence_buryme_Remix.od create mode 100644 packages/app/studio/public/templates/Ben.od create mode 100644 packages/app/studio/public/templates/Breeze.od create mode 100644 packages/app/studio/public/templates/BuryMe.od create mode 100644 packages/app/studio/public/templates/Dub-Techno.od create mode 100644 packages/app/studio/public/templates/Fatso.od create mode 100644 packages/app/studio/public/templates/Release.od create mode 100644 packages/app/studio/public/templates/SeekDeeper.od create mode 100644 packages/app/studio/public/templates/Shafted.od create mode 100644 packages/app/studio/public/templates/Sunset.od create mode 100644 packages/app/studio/public/update.html create mode 100644 packages/app/studio/public/viscious-speed/abstract-000.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-001.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-002.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-003.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-004.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-005.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-006.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-007.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-008.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-009.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-010.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-011.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-012.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-013.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-014.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-015.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-016.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-017.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-018.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-019.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-020.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-021.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-022.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-023.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-024.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-025.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-026.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-027.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-028.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-029.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-030.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-031.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-032.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-033.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-034.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-035.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-036.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-037.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-038.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-039.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-040.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-041.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-042.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-043.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-044.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-045.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-046.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-047.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-048.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-049.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-050.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-051.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-052.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-053.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-054.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-055.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-056.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-057.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-058.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-059.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-060.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-061.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-062.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-063.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-064.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-065.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-066.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-067.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-068.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-069.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-070.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-071.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-072.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-073.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-074.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-075.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-076.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-077.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-078.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-079.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-080.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-081.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-082.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-083.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-084.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-085.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-086.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-087.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-088.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-089.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-090.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-091.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-092.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-093.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-094.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-095.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-096.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-097.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-098.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-099.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-100.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-101.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-102.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-103.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-104.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-105.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-106.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-107.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-108.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-109.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-110.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-111.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-112.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-113.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-114.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-115.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-116.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-117.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-118.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-119.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-120.svg create mode 100644 packages/app/studio/public/viscious-speed/abstract-121.svg create mode 100644 packages/app/studio/src/AppDialogs.tsx create mode 100644 packages/app/studio/src/BuildInfo.ts create mode 100644 packages/app/studio/src/ErrorMail.txt create mode 100644 packages/app/studio/src/Recovery.ts create mode 100644 packages/app/studio/src/audio/AudioDevices.ts create mode 100644 packages/app/studio/src/audio/AudioDialogs.tsx create mode 100644 packages/app/studio/src/audio/AudioImport.ts create mode 100644 packages/app/studio/src/audio/AudioMetaData.ts create mode 100644 packages/app/studio/src/audio/AudioOfflineRenderer.ts create mode 100644 packages/app/studio/src/audio/AudioOutputDevice.ts create mode 100644 packages/app/studio/src/audio/AudioPeaks.ts create mode 100644 packages/app/studio/src/audio/AudioSample.ts create mode 100644 packages/app/studio/src/audio/AudioServerApi.ts create mode 100644 packages/app/studio/src/audio/AudioStorage.ts create mode 100644 packages/app/studio/src/colors.sass create mode 100644 packages/app/studio/src/errors/ErrorHandler.ts create mode 100644 packages/app/studio/src/errors/ErrorInfo.ts create mode 100644 packages/app/studio/src/errors/ErrorLog.ts create mode 100644 packages/app/studio/src/errors/LogBuffer.ts create mode 100644 packages/app/studio/src/features.ts create mode 100644 packages/app/studio/src/global.d.ts create mode 100644 packages/app/studio/src/main.sass create mode 100644 packages/app/studio/src/main.ts create mode 100644 packages/app/studio/src/midi/Channel.ts create mode 100644 packages/app/studio/src/midi/ControlType.ts create mode 100644 packages/app/studio/src/midi/MidiData.ts create mode 100644 packages/app/studio/src/midi/devices/MIDILearning.ts create mode 100644 packages/app/studio/src/midi/devices/MIDIMessageSubscriber.ts create mode 100644 packages/app/studio/src/midi/devices/MidiDeviceAccess.ts create mode 100644 packages/app/studio/src/midi/devices/MidiDialogs.tsx create mode 100644 packages/app/studio/src/midi/format/Chunk.ts create mode 100644 packages/app/studio/src/midi/format/ControlEvent.ts create mode 100644 packages/app/studio/src/midi/format/ControlEventVisitor.ts create mode 100644 packages/app/studio/src/midi/format/Event.ts create mode 100644 packages/app/studio/src/midi/format/MetaType.ts create mode 100644 packages/app/studio/src/midi/format/MidiFile.ts create mode 100644 packages/app/studio/src/midi/format/MidiFileDecoder.ts create mode 100644 packages/app/studio/src/midi/format/MidiFileFormat.ts create mode 100644 packages/app/studio/src/midi/format/MidiTrack.ts create mode 100644 packages/app/studio/src/mixins.sass create mode 100644 packages/app/studio/src/project/ProjectBrowser.sass create mode 100644 packages/app/studio/src/project/ProjectBrowser.tsx create mode 100644 packages/app/studio/src/project/ProjectDialogs.tsx create mode 100644 packages/app/studio/src/project/ProjectMeta.ts create mode 100644 packages/app/studio/src/project/ProjectSession.ts create mode 100644 packages/app/studio/src/project/Projects.ts create mode 100644 packages/app/studio/src/project/SampleImporter.ts create mode 100644 packages/app/studio/src/project/SampleUtils.ts create mode 100644 packages/app/studio/src/project/UIAudioLoader.ts create mode 100644 packages/app/studio/src/project/UIAudioManager.ts create mode 100644 packages/app/studio/src/service/Effects.ts create mode 100644 packages/app/studio/src/service/ExportStemsConfigurator.sass create mode 100644 packages/app/studio/src/service/ExportStemsConfigurator.tsx create mode 100644 packages/app/studio/src/service/FooterLabel.ts create mode 100644 packages/app/studio/src/service/Instruments.ts create mode 100644 packages/app/studio/src/service/SampleApi.ts create mode 100644 packages/app/studio/src/service/SamplePlayback.ts create mode 100644 packages/app/studio/src/service/SessionService.ts create mode 100644 packages/app/studio/src/service/Shortcuts.ts create mode 100644 packages/app/studio/src/service/StudioService.ts create mode 100644 packages/app/studio/src/service/StudioSignal.ts create mode 100644 packages/app/studio/src/service/SyncLogService.ts create mode 100644 packages/app/studio/src/service/agents.ts create mode 100644 packages/app/studio/src/service/app-menu.ts create mode 100644 packages/app/studio/src/ui/AnyDragData.ts create mode 100644 packages/app/studio/src/ui/App.tsx create mode 100644 packages/app/studio/src/ui/AutoScroll.ts create mode 100644 packages/app/studio/src/ui/Colors.ts create mode 100644 packages/app/studio/src/ui/ContextMenu.ts create mode 100644 packages/app/studio/src/ui/Cursors.ts create mode 100644 packages/app/studio/src/ui/Dashboard.sass create mode 100644 packages/app/studio/src/ui/Dashboard.tsx create mode 100644 packages/app/studio/src/ui/DragAndDrop.ts create mode 100644 packages/app/studio/src/ui/FilePickerAcceptTypes.ts create mode 100644 packages/app/studio/src/ui/FontLoader.ts create mode 100644 packages/app/studio/src/ui/Fonts.ts create mode 100644 packages/app/studio/src/ui/Footer.sass create mode 100644 packages/app/studio/src/ui/Footer.tsx create mode 100644 packages/app/studio/src/ui/HTMLSelection.ts create mode 100644 packages/app/studio/src/ui/IconLibrary.tsx create mode 100644 packages/app/studio/src/ui/Markdown.sass create mode 100644 packages/app/studio/src/ui/Markdown.tsx create mode 100644 packages/app/studio/src/ui/MissingFeature.sass create mode 100644 packages/app/studio/src/ui/MissingFeature.tsx create mode 100644 packages/app/studio/src/ui/Modifier.ts create mode 100644 packages/app/studio/src/ui/NotePadPanel.sass create mode 100644 packages/app/studio/src/ui/NotePadPanel.tsx create mode 100644 packages/app/studio/src/ui/NotePadTemplate.md create mode 100644 packages/app/studio/src/ui/TextScroller.ts create mode 100644 packages/app/studio/src/ui/UpdateMessage.sass create mode 100644 packages/app/studio/src/ui/UpdateMessage.tsx create mode 100644 packages/app/studio/src/ui/browse/BrowseScope.tsx create mode 100644 packages/app/studio/src/ui/browse/BrowserPanel.sass create mode 100644 packages/app/studio/src/ui/browse/BrowserPanel.tsx create mode 100644 packages/app/studio/src/ui/browse/DevicesBrowser.sass create mode 100644 packages/app/studio/src/ui/browse/DevicesBrowser.tsx create mode 100644 packages/app/studio/src/ui/browse/SampleBrowser.sass create mode 100644 packages/app/studio/src/ui/browse/SampleBrowser.tsx create mode 100644 packages/app/studio/src/ui/browse/SampleDialogs.tsx create mode 100644 packages/app/studio/src/ui/browse/SampleLocation.tsx create mode 100644 packages/app/studio/src/ui/browse/SampleService.ts create mode 100644 packages/app/studio/src/ui/browse/SampleView.sass create mode 100644 packages/app/studio/src/ui/browse/SampleView.tsx create mode 100644 packages/app/studio/src/ui/canvas/capturing.ts create mode 100644 packages/app/studio/src/ui/canvas/painter.ts create mode 100644 packages/app/studio/src/ui/canvas/scale.ts create mode 100644 packages/app/studio/src/ui/components/BoxDebugView.sass create mode 100644 packages/app/studio/src/ui/components/BoxDebugView.tsx create mode 100644 packages/app/studio/src/ui/components/BoxesDebugView.sass create mode 100644 packages/app/studio/src/ui/components/BoxesDebugView.tsx create mode 100644 packages/app/studio/src/ui/components/Button.tsx create mode 100644 packages/app/studio/src/ui/components/ButtonCheckboxRadio.sass create mode 100644 packages/app/studio/src/ui/components/ButtonCheckboxRadio.tsx create mode 100644 packages/app/studio/src/ui/components/Checkbox.tsx create mode 100644 packages/app/studio/src/ui/components/ControlIndicator.tsx create mode 100644 packages/app/studio/src/ui/components/Dialog.sass create mode 100644 packages/app/studio/src/ui/components/Dialog.tsx create mode 100644 packages/app/studio/src/ui/components/FlexSpacer.tsx create mode 100644 packages/app/studio/src/ui/components/FloatingTextInput.sass create mode 100644 packages/app/studio/src/ui/components/FloatingTextInput.tsx create mode 100644 packages/app/studio/src/ui/components/Icon.sass create mode 100644 packages/app/studio/src/ui/components/Icon.tsx create mode 100644 packages/app/studio/src/ui/components/InsertMarker.sass create mode 100644 packages/app/studio/src/ui/components/InsertMarker.tsx create mode 100644 packages/app/studio/src/ui/components/Knob.sass create mode 100644 packages/app/studio/src/ui/components/Knob.tsx create mode 100644 packages/app/studio/src/ui/components/Menu.sass create mode 100644 packages/app/studio/src/ui/components/Menu.tsx create mode 100644 packages/app/studio/src/ui/components/MenuButton.sass create mode 100644 packages/app/studio/src/ui/components/MenuButton.tsx create mode 100644 packages/app/studio/src/ui/components/NumberInput.sass create mode 100644 packages/app/studio/src/ui/components/NumberInput.tsx create mode 100644 packages/app/studio/src/ui/components/ParameterLabel.sass create mode 100644 packages/app/studio/src/ui/components/ParameterLabel.tsx create mode 100644 packages/app/studio/src/ui/components/PeakMeter.sass create mode 100644 packages/app/studio/src/ui/components/PeakMeter.tsx create mode 100644 packages/app/studio/src/ui/components/ProgressBar.sass create mode 100644 packages/app/studio/src/ui/components/ProgressBar.tsx create mode 100644 packages/app/studio/src/ui/components/RadioGroup.tsx create mode 100644 packages/app/studio/src/ui/components/ScrollModel.ts create mode 100644 packages/app/studio/src/ui/components/Scroller.sass create mode 100644 packages/app/studio/src/ui/components/Scroller.tsx create mode 100644 packages/app/studio/src/ui/components/SearchInput.sass create mode 100644 packages/app/studio/src/ui/components/SearchInput.tsx create mode 100644 packages/app/studio/src/ui/components/TextButton.sass create mode 100644 packages/app/studio/src/ui/components/TextButton.tsx create mode 100644 packages/app/studio/src/ui/components/TextInput.sass create mode 100644 packages/app/studio/src/ui/components/TextInput.tsx create mode 100644 packages/app/studio/src/ui/components/TimeCodeInput.sass create mode 100644 packages/app/studio/src/ui/components/TimeCodeInput.tsx create mode 100644 packages/app/studio/src/ui/components/VolumeSlider.sass create mode 100644 packages/app/studio/src/ui/components/VolumeSlider.tsx create mode 100644 packages/app/studio/src/ui/components/dialogs.tsx create mode 100644 packages/app/studio/src/ui/composite/DropDown.sass create mode 100644 packages/app/studio/src/ui/composite/DropDown.tsx create mode 100644 packages/app/studio/src/ui/composite/LabelKnob.tsx create mode 100644 packages/app/studio/src/ui/configs.ts create mode 100644 packages/app/studio/src/ui/devices/AudioBusEditor.sass create mode 100644 packages/app/studio/src/ui/devices/AudioBusEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/Column.sass create mode 100644 packages/app/studio/src/ui/devices/Column.tsx create mode 100644 packages/app/studio/src/ui/devices/ControlBuilder.tsx create mode 100644 packages/app/studio/src/ui/devices/DeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/DeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/DeviceEditorFactory.tsx create mode 100644 packages/app/studio/src/ui/devices/DevicePanelDragAndDrop.ts create mode 100644 packages/app/studio/src/ui/devices/ParameterLabelKnob.sass create mode 100644 packages/app/studio/src/ui/devices/ParameterLabelKnob.tsx create mode 100644 packages/app/studio/src/ui/devices/SampleSelector.ts create mode 100644 packages/app/studio/src/ui/devices/audio-effects/DelayDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/audio-effects/DelayDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/audio-effects/ModularDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/audio-effects/ModularDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/audio-effects/RevampDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/audio-effects/RevampDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/audio-effects/RevampDeviceEditor/Curves.ts create mode 100644 packages/app/studio/src/ui/devices/audio-effects/RevampDeviceEditor/Display.tsx create mode 100644 packages/app/studio/src/ui/devices/audio-effects/RevampDeviceEditor/Renderer.ts create mode 100644 packages/app/studio/src/ui/devices/audio-effects/RevampDeviceEditor/constants.ts create mode 100644 packages/app/studio/src/ui/devices/audio-effects/ReverbDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/audio-effects/ReverbDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/audio-effects/StereoToolDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/audio-effects/StereoToolDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/audio-effects/StereoToolDeviceEditor/AutoGainButton.sass create mode 100644 packages/app/studio/src/ui/devices/audio-effects/StereoToolDeviceEditor/AutoGainButton.tsx create mode 100644 packages/app/studio/src/ui/devices/constants.ts create mode 100644 packages/app/studio/src/ui/devices/instruments/NanoDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/NanoDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/BusySlot.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/BusySlot.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/EmptySlot.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/EmptySlot.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/NoteLabel.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/NoteLabel.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/OctaveSelector.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/OctaveSelector.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/Slot.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/Slot.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotDragAndDrop.ts create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotEditor.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotGrid.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotGrid.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotState.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldDeviceEditor/SlotUtils.ts create mode 100644 packages/app/studio/src/ui/devices/instruments/PlayfieldSampleEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/TapeDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/TapeDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/TapeDeviceEditor/Tape.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/TapeDeviceEditor/Timeline.tsx create mode 100644 packages/app/studio/src/ui/devices/instruments/VaporisateurDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/instruments/VaporisateurDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/menu-items.ts create mode 100644 packages/app/studio/src/ui/devices/midi-effects/ArpeggioDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/midi-effects/ArpeggioDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/midi-effects/PitchDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/midi-effects/PitchDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/midi-effects/ZeitgeistDeviceEditor.sass create mode 100644 packages/app/studio/src/ui/devices/midi-effects/ZeitgeistDeviceEditor.tsx create mode 100644 packages/app/studio/src/ui/devices/panel/DeviceMidiMeter.sass create mode 100644 packages/app/studio/src/ui/devices/panel/DeviceMidiMeter.tsx create mode 100644 packages/app/studio/src/ui/devices/panel/DeviceMount.tsx create mode 100644 packages/app/studio/src/ui/devices/panel/DevicePanel.sass create mode 100644 packages/app/studio/src/ui/devices/panel/DevicePanel.tsx create mode 100644 packages/app/studio/src/ui/devices/panel/DevicePeakMeter.sass create mode 100644 packages/app/studio/src/ui/devices/panel/DevicePeakMeter.tsx create mode 100644 packages/app/studio/src/ui/devices/panel/NoAudioUnitSelectedPlaceholder.sass create mode 100644 packages/app/studio/src/ui/devices/panel/NoAudioUnitSelectedPlaceholder.tsx create mode 100644 packages/app/studio/src/ui/devices/panel/NoEffectPlaceholder.sass create mode 100644 packages/app/studio/src/ui/devices/panel/NoEffectPlaceholder.tsx create mode 100644 packages/app/studio/src/ui/dialogs.tsx create mode 100644 packages/app/studio/src/ui/extractors.ts create mode 100644 packages/app/studio/src/ui/header/Header.sass create mode 100644 packages/app/studio/src/ui/header/Header.tsx create mode 100644 packages/app/studio/src/ui/header/TimeStateDisplay.sass create mode 100644 packages/app/studio/src/ui/header/TimeStateDisplay.tsx create mode 100644 packages/app/studio/src/ui/header/TransportGroup.tsx create mode 100644 packages/app/studio/src/ui/hooks/cursor.ts create mode 100644 packages/app/studio/src/ui/hooks/dragging.ts create mode 100644 packages/app/studio/src/ui/info-panel/Cover.sass create mode 100644 packages/app/studio/src/ui/info-panel/Cover.tsx create mode 100644 packages/app/studio/src/ui/info-panel/ProjectInfo.sass create mode 100644 packages/app/studio/src/ui/info-panel/ProjectInfo.tsx create mode 100644 packages/app/studio/src/ui/menu/automation.ts create mode 100644 packages/app/studio/src/ui/menu/debug.ts create mode 100644 packages/app/studio/src/ui/meter/VUMeter.tsx create mode 100644 packages/app/studio/src/ui/meter/VUMeterDesign.tsx create mode 100644 packages/app/studio/src/ui/meter/VUMeterPanel.sass create mode 100644 packages/app/studio/src/ui/meter/VUMeterPanel.tsx create mode 100644 packages/app/studio/src/ui/meter/mapping.ts create mode 100644 packages/app/studio/src/ui/mixer/AudioOutputDevices.sass create mode 100644 packages/app/studio/src/ui/mixer/AudioOutputDevices.tsx create mode 100644 packages/app/studio/src/ui/mixer/AudioOutputSelector.tsx create mode 100644 packages/app/studio/src/ui/mixer/AuxSend.sass create mode 100644 packages/app/studio/src/ui/mixer/AuxSend.tsx create mode 100644 packages/app/studio/src/ui/mixer/AuxSendGroup.sass create mode 100644 packages/app/studio/src/ui/mixer/AuxSendGroup.tsx create mode 100644 packages/app/studio/src/ui/mixer/ChannelOutputSelector.tsx create mode 100644 packages/app/studio/src/ui/mixer/ChannelStrip.sass create mode 100644 packages/app/studio/src/ui/mixer/ChannelStrip.tsx create mode 100644 packages/app/studio/src/ui/mixer/ColorCodes.ts create mode 100644 packages/app/studio/src/ui/mixer/Mixer.sass create mode 100644 packages/app/studio/src/ui/mixer/Mixer.tsx create mode 100644 packages/app/studio/src/ui/mixer/OutputSelector.sass create mode 100644 packages/app/studio/src/ui/model/menu-item.ts create mode 100644 packages/app/studio/src/ui/modular/Camera.ts create mode 100644 packages/app/studio/src/ui/modular/ConnectorView.sass create mode 100644 packages/app/studio/src/ui/modular/ConnectorView.tsx create mode 100644 packages/app/studio/src/ui/modular/EmptyModular.sass create mode 100644 packages/app/studio/src/ui/modular/EmptyModular.tsx create mode 100644 packages/app/studio/src/ui/modular/GenericModuleView.sass create mode 100644 packages/app/studio/src/ui/modular/GenericModuleView.tsx create mode 100644 packages/app/studio/src/ui/modular/Modular.sass create mode 100644 packages/app/studio/src/ui/modular/Modular.tsx create mode 100644 packages/app/studio/src/ui/modular/ModularEnvironment.ts create mode 100644 packages/app/studio/src/ui/modular/ModularTabButton.sass create mode 100644 packages/app/studio/src/ui/modular/ModularTabButton.tsx create mode 100644 packages/app/studio/src/ui/modular/ModularView.sass create mode 100644 packages/app/studio/src/ui/modular/ModularView.tsx create mode 100644 packages/app/studio/src/ui/modular/ModularWires.sass create mode 100644 packages/app/studio/src/ui/modular/ModularWires.tsx create mode 100644 packages/app/studio/src/ui/modular/ModuleShelf.ts create mode 100644 packages/app/studio/src/ui/modular/WiringFlyout.sass create mode 100644 packages/app/studio/src/ui/modular/WiringFlyout.tsx create mode 100644 packages/app/studio/src/ui/pages/AudioInputDevicesPage.sass create mode 100644 packages/app/studio/src/ui/pages/AudioInputDevicesPage.tsx create mode 100644 packages/app/studio/src/ui/pages/AutomationPage.sass create mode 100644 packages/app/studio/src/ui/pages/AutomationPage.tsx create mode 100644 packages/app/studio/src/ui/pages/BackButton.sass create mode 100644 packages/app/studio/src/ui/pages/BackButton.tsx create mode 100644 packages/app/studio/src/ui/pages/ColorsPage.tsx create mode 100644 packages/app/studio/src/ui/pages/ComponentsPage.sass create mode 100644 packages/app/studio/src/ui/pages/ComponentsPage.tsx create mode 100644 packages/app/studio/src/ui/pages/ErrorsPage.sass create mode 100644 packages/app/studio/src/ui/pages/ErrorsPage.tsx create mode 100644 packages/app/studio/src/ui/pages/IconsPage.sass create mode 100644 packages/app/studio/src/ui/pages/IconsPage.tsx create mode 100644 packages/app/studio/src/ui/pages/ImprintPage.sass create mode 100644 packages/app/studio/src/ui/pages/ImprintPage.tsx create mode 100644 packages/app/studio/src/ui/pages/ManualPage.sass create mode 100644 packages/app/studio/src/ui/pages/ManualPage.tsx create mode 100644 packages/app/studio/src/ui/pages/Manuals.ts create mode 100644 packages/app/studio/src/ui/pages/SampleUploadPage.sass create mode 100644 packages/app/studio/src/ui/pages/SampleUploadPage.tsx create mode 100644 packages/app/studio/src/ui/pages/StreamPeakMeter.sass create mode 100644 packages/app/studio/src/ui/pages/StreamPeakMeter.tsx create mode 100644 packages/app/studio/src/ui/pages/errors/Logs.sass create mode 100644 packages/app/studio/src/ui/pages/errors/Logs.tsx create mode 100644 packages/app/studio/src/ui/pages/errors/Stack.sass create mode 100644 packages/app/studio/src/ui/pages/errors/Stack.tsx create mode 100644 packages/app/studio/src/ui/piano-panel/NoteFall.sass create mode 100644 packages/app/studio/src/ui/piano-panel/NoteFall.tsx create mode 100644 packages/app/studio/src/ui/piano-panel/PianoModePanel.sass create mode 100644 packages/app/studio/src/ui/piano-panel/PianoModePanel.tsx create mode 100644 packages/app/studio/src/ui/piano-panel/PianoRoll.sass create mode 100644 packages/app/studio/src/ui/piano-panel/PianoRoll.tsx create mode 100644 packages/app/studio/src/ui/piano-panel/PianoRollLayout.ts create mode 100644 packages/app/studio/src/ui/spinner/ThreeDots.sass create mode 100644 packages/app/studio/src/ui/spinner/ThreeDots.tsx create mode 100644 packages/app/studio/src/ui/spotlight/Spotlight.sass create mode 100644 packages/app/studio/src/ui/spotlight/Spotlight.tsx create mode 100644 packages/app/studio/src/ui/spotlight/SpotlightDataSupplier.ts create mode 100644 packages/app/studio/src/ui/surface/AbstractTooltip.ts create mode 100644 packages/app/studio/src/ui/surface/Surface.sass create mode 100644 packages/app/studio/src/ui/surface/Surface.tsx create mode 100644 packages/app/studio/src/ui/surface/TextTooltip.sass create mode 100644 packages/app/studio/src/ui/surface/TextTooltip.tsx create mode 100644 packages/app/studio/src/ui/surface/ValueTooltip.sass create mode 100644 packages/app/studio/src/ui/surface/ValueTooltip.tsx create mode 100644 packages/app/studio/src/ui/timeline/ColorMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/Config.ts create mode 100644 packages/app/studio/src/ui/timeline/CutCursor.sass create mode 100644 packages/app/studio/src/ui/timeline/CutCursor.tsx create mode 100644 packages/app/studio/src/ui/timeline/LoopAreaEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/LoopAreaEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/MidiImport.ts create mode 100644 packages/app/studio/src/ui/timeline/Modifier.ts create mode 100644 packages/app/studio/src/ui/timeline/ObservableModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/ObservableModifyContext.ts create mode 100644 packages/app/studio/src/ui/timeline/SelectionRectangle.sass create mode 100644 packages/app/studio/src/ui/timeline/SelectionRectangle.tsx create mode 100644 packages/app/studio/src/ui/timeline/SnapSelector.sass create mode 100644 packages/app/studio/src/ui/timeline/SnapSelector.tsx create mode 100644 packages/app/studio/src/ui/timeline/Snapping.ts create mode 100644 packages/app/studio/src/ui/timeline/TimeAxis.sass create mode 100644 packages/app/studio/src/ui/timeline/TimeAxis.tsx create mode 100644 packages/app/studio/src/ui/timeline/TimeGrid.ts create mode 100644 packages/app/studio/src/ui/timeline/Timeline.sass create mode 100644 packages/app/studio/src/ui/timeline/Timeline.tsx create mode 100644 packages/app/studio/src/ui/timeline/TimelineHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/TimelineHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/TimelineNavigation.sass create mode 100644 packages/app/studio/src/ui/timeline/TimelineNavigation.tsx create mode 100644 packages/app/studio/src/ui/timeline/TimelineRange.ts create mode 100644 packages/app/studio/src/ui/timeline/TimelineRangeSlider.sass create mode 100644 packages/app/studio/src/ui/timeline/TimelineRangeSlider.tsx create mode 100644 packages/app/studio/src/ui/timeline/TimelineSelectableLocator.ts create mode 100644 packages/app/studio/src/ui/timeline/constants.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/ClipReader.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/ContentEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/ContentEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/EditorBody.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/EditorMenuCollector.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/EventOwnerReader.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/RegionBound.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/RegionBound.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/RegionCapturingTarget.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/RegionReader.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/Shortcuts.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/TimeGridRenderer.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/ValueInput.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/WheelScroll.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/audio/AudioEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/audio/AudioEditorCanvas.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/audio/AudioEditorCanvas.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/audio/AudioEditorHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/audio/AudioEditorHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/Constants.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteContentDurationModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteCreateModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteDurationModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteModifyStrategies.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteMoveModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteUtils.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/NoteViewMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/UINoteEvent.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PianoRoll.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PianoRoll.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchContextMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchEditorHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchEditorHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchEventCapturing.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchPainter.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchPositioner.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/PitchSelectionLocator.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/ScaleConfig.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/ScaleConfigurator.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/ScaleConfigurator.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/ScaleSelector.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/pitch/ScaleSelector.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyAccessor.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyDrawModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyEventCapturing.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyLineModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyNodeModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyPainter.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyParameters.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertySelectionLocator.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyTable.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/notes/property/PropertyTable.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/value/Constants.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/UIValueEvent.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueAssignment.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueContentDurationModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueContextMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEditingContext.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEditorHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEditorHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEventCapturing.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEventDraft.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEventEditing.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEventsEditor.sass create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueEventsEditor.tsx create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueModifyStrategies.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueMoveModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValuePaintModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValuePainter.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueSelectionLocator.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueSlopeModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/editors/value/ValueTooltip.ts create mode 100644 packages/app/studio/src/ui/timeline/renderer/audio.ts create mode 100644 packages/app/studio/src/ui/timeline/renderer/env.ts create mode 100644 packages/app/studio/src/ui/timeline/renderer/notes.ts create mode 100644 packages/app/studio/src/ui/timeline/renderer/value.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/AudioUnitChannelControls.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/AudioUnitChannelControls.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/AudioUnitTracks.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/AudioUnitTracks.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/AudioUnitsTimeline.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/AudioUnitsTimeline.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/Constants.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/TimelineDragAndDrop.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/Track.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/Track.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/TrackContext.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/TrackHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/TrackHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/TrackHeaderMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/TracksManager.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/Clip.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/Clip.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipCapturing.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipContextMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipLane.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipLane.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipModifyStrategy.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipMoveModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipPlaceholder.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipPlaybackButton.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipPlaybackButton.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipSampleDragAndDrop.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipSelectableLocator.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipsArea.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipsArea.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipsHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/ClipsHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/constants.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/painter/AudioClipPainter.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/painter/NoteClipPainter.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/clips/painter/ValueClipPainter.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionCapturing.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionClipResolver.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionContextMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionDurationModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLane.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLane.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionLoopDurationModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionModifyStrategies.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionMoveModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionRenderer.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionSampleDragAndDrop.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionSelectionLocator.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionStartModifier.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionTransformer.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionsArea.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/audio-unit/regions/RegionsArea.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/footer/TracksFooter.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/footer/TracksFooter.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/footer/TracksFooterHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/footer/TracksFooterHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/PrimaryTracks.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/PrimaryTracks.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerContextMenu.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerRenderer.ts create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerTrack.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerTrack.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerTrackBody.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerTrackBody.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerTrackHeader.sass create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/MarkerTrackHeader.tsx create mode 100644 packages/app/studio/src/ui/timeline/tracks/primary/marker/Markers.ts create mode 100644 packages/app/studio/src/ui/validator/name.ts create mode 100644 packages/app/studio/src/ui/validator/validator.ts create mode 100644 packages/app/studio/src/ui/workspace/AxisProperty.ts create mode 100644 packages/app/studio/src/ui/workspace/ContentGlue.ts create mode 100644 packages/app/studio/src/ui/workspace/Default.ts create mode 100644 packages/app/studio/src/ui/workspace/FlexSpace.sass create mode 100644 packages/app/studio/src/ui/workspace/FlexSpace.tsx create mode 100644 packages/app/studio/src/ui/workspace/PanelContent.tsx create mode 100644 packages/app/studio/src/ui/workspace/PanelContents.tsx create mode 100644 packages/app/studio/src/ui/workspace/PanelFactory.tsx create mode 100644 packages/app/studio/src/ui/workspace/PanelPlaceholder.sass create mode 100644 packages/app/studio/src/ui/workspace/PanelPlaceholder.tsx create mode 100644 packages/app/studio/src/ui/workspace/PanelResizer.sass create mode 100644 packages/app/studio/src/ui/workspace/PanelResizer.tsx create mode 100644 packages/app/studio/src/ui/workspace/PanelState.ts create mode 100644 packages/app/studio/src/ui/workspace/PanelType.ts create mode 100644 packages/app/studio/src/ui/workspace/Workspace.ts create mode 100644 packages/app/studio/src/ui/workspace/WorkspacePage.sass create mode 100644 packages/app/studio/src/ui/workspace/WorkspacePage.tsx create mode 100644 packages/app/studio/src/ui/wrapper/DblClckTextInput.tsx create mode 100644 packages/app/studio/src/ui/wrapper/EditWrapper.ts create mode 100644 packages/app/studio/src/ui/wrapper/RelativeUnitValueDragging.tsx create mode 100644 packages/app/studio/src/utils.ts create mode 100644 packages/app/studio/src/vite-env.d.ts create mode 100644 packages/app/studio/src/vite-plugin-cross-origin-isolation.d.ts create mode 100644 packages/app/studio/src/worker/agents.ts create mode 100644 packages/app/studio/tsconfig.json create mode 100644 packages/app/studio/vite.config.ts create mode 100644 packages/config/eslint/CHANGELOG.md create mode 100644 packages/config/eslint/index.js create mode 100644 packages/config/eslint/package.json create mode 100644 packages/config/typescript/CHANGELOG.md create mode 100644 packages/config/typescript/base.json create mode 100644 packages/config/typescript/package.json create mode 100644 packages/config/typescript/vite.json create mode 100644 packages/lib/box-forge/.eslintrc.cjs create mode 100644 packages/lib/box-forge/CHANGELOG.md create mode 100644 packages/lib/box-forge/package.json create mode 100644 packages/lib/box-forge/src/forge.ts create mode 100644 packages/lib/box-forge/src/header.ts create mode 100644 packages/lib/box-forge/src/index.ts create mode 100644 packages/lib/box-forge/src/schema.ts create mode 100644 packages/lib/box-forge/test/Pointers.ts create mode 100644 packages/lib/box-forge/test/forge.test.ts create mode 100644 packages/lib/box-forge/test/schema.ts create mode 100644 packages/lib/box-forge/tsconfig.json create mode 100644 packages/lib/box/.eslintrc.cjs create mode 100644 packages/lib/box/CHANGELOG.md create mode 100644 packages/lib/box/README.md create mode 100644 packages/lib/box/package.json create mode 100644 packages/lib/box/src/address.test.ts create mode 100644 packages/lib/box/src/address.ts create mode 100644 packages/lib/box/src/array.ts create mode 100644 packages/lib/box/src/box.test.ts create mode 100644 packages/lib/box/src/box.ts create mode 100644 packages/lib/box/src/dispatchers.ts create mode 100644 packages/lib/box/src/editing.test.ts create mode 100644 packages/lib/box/src/editing.ts create mode 100644 packages/lib/box/src/field.ts create mode 100644 packages/lib/box/src/graph-edges.ts create mode 100644 packages/lib/box/src/graph.ts create mode 100644 packages/lib/box/src/index.ts create mode 100644 packages/lib/box/src/object.ts create mode 100644 packages/lib/box/src/pointer-hub.ts create mode 100644 packages/lib/box/src/pointer.ts create mode 100644 packages/lib/box/src/primitive.ts create mode 100644 packages/lib/box/src/serializer.ts create mode 100644 packages/lib/box/src/sync-source.ts create mode 100644 packages/lib/box/src/sync-target.ts create mode 100644 packages/lib/box/src/sync.ts create mode 100644 packages/lib/box/src/updates.ts create mode 100644 packages/lib/box/src/vertex.ts create mode 100644 packages/lib/box/tsconfig.json create mode 100644 packages/lib/dom/.eslintrc.cjs create mode 100644 packages/lib/dom/CHANGELOG.md create mode 100644 packages/lib/dom/README.md create mode 100644 packages/lib/dom/package.json create mode 100644 packages/lib/dom/src/browser.ts create mode 100644 packages/lib/dom/src/compression.ts create mode 100644 packages/lib/dom/src/console-commands.ts create mode 100644 packages/lib/dom/src/context-2d.ts create mode 100644 packages/lib/dom/src/css-utils.test.ts create mode 100644 packages/lib/dom/src/css-utils.ts create mode 100644 packages/lib/dom/src/dragging.ts create mode 100644 packages/lib/dom/src/errors.ts create mode 100644 packages/lib/dom/src/events.ts create mode 100644 packages/lib/dom/src/files.ts create mode 100644 packages/lib/dom/src/fonts.ts create mode 100644 packages/lib/dom/src/frames.ts create mode 100644 packages/lib/dom/src/html.test.ts create mode 100644 packages/lib/dom/src/html.ts create mode 100644 packages/lib/dom/src/index.ts create mode 100644 packages/lib/dom/src/keyboard.ts create mode 100644 packages/lib/dom/src/modfier-keys.ts create mode 100644 packages/lib/dom/src/stream.ts create mode 100644 packages/lib/dom/src/svg.ts create mode 100644 packages/lib/dom/src/terminable.ts create mode 100644 packages/lib/dom/tsconfig.json create mode 100644 packages/lib/dsp/.eslintrc.cjs create mode 100644 packages/lib/dsp/CHANGELOG.md create mode 100644 packages/lib/dsp/README.md create mode 100644 packages/lib/dsp/package.json create mode 100644 packages/lib/dsp/src/biquad-coeff.ts create mode 100644 packages/lib/dsp/src/biquad-processor.ts create mode 100644 packages/lib/dsp/src/bpm-tools.ts create mode 100644 packages/lib/dsp/src/chords.ts create mode 100644 packages/lib/dsp/src/delay.ts create mode 100644 packages/lib/dsp/src/events.test.ts create mode 100644 packages/lib/dsp/src/events.ts create mode 100644 packages/lib/dsp/src/fft.ts create mode 100644 packages/lib/dsp/src/fractions.ts create mode 100644 packages/lib/dsp/src/fragmentor.ts create mode 100644 packages/lib/dsp/src/global-console.d.ts create mode 100644 packages/lib/dsp/src/graph.test.ts create mode 100644 packages/lib/dsp/src/graph.ts create mode 100644 packages/lib/dsp/src/grooves.test.ts create mode 100644 packages/lib/dsp/src/grooves.ts create mode 100644 packages/lib/dsp/src/index.ts create mode 100644 packages/lib/dsp/src/midi-keys.ts create mode 100644 packages/lib/dsp/src/notes.ts create mode 100644 packages/lib/dsp/src/osc.ts create mode 100644 packages/lib/dsp/src/ppqn.test.ts create mode 100644 packages/lib/dsp/src/ppqn.ts create mode 100644 packages/lib/dsp/src/ramp.ts create mode 100644 packages/lib/dsp/src/rms.ts create mode 100644 packages/lib/dsp/src/stereo.ts create mode 100644 packages/lib/dsp/src/utils.ts create mode 100644 packages/lib/dsp/src/value.test.ts create mode 100644 packages/lib/dsp/src/value.ts create mode 100644 packages/lib/dsp/src/window.ts create mode 100644 packages/lib/dsp/tsconfig.json create mode 100644 packages/lib/fusion/.eslintrc.cjs create mode 100644 packages/lib/fusion/CHANGELOG.md create mode 100644 packages/lib/fusion/README.md create mode 100644 packages/lib/fusion/package.json create mode 100644 packages/lib/fusion/src/index.ts create mode 100644 packages/lib/fusion/src/live-stream/Flags.ts create mode 100644 packages/lib/fusion/src/live-stream/LiveStreamBroadcaster.ts create mode 100644 packages/lib/fusion/src/live-stream/LiveStreamReceiver.ts create mode 100644 packages/lib/fusion/src/live-stream/Lock.ts create mode 100644 packages/lib/fusion/src/live-stream/PackageType.ts create mode 100644 packages/lib/fusion/src/live-stream/Protocol.ts create mode 100644 packages/lib/fusion/src/live-stream/Subscribers.ts create mode 100644 packages/lib/fusion/src/opfs/OpfsProtocol.ts create mode 100644 packages/lib/fusion/src/opfs/OpfsWorker.ts create mode 100644 packages/lib/fusion/src/peaks/PeakProtocol.ts create mode 100644 packages/lib/fusion/src/peaks/PeakWorker.ts create mode 100644 packages/lib/fusion/src/peaks/Peaks.ts create mode 100644 packages/lib/fusion/src/peaks/PeaksPainter.ts create mode 100644 packages/lib/fusion/src/types.ts create mode 100644 packages/lib/fusion/tsconfig.json create mode 100644 packages/lib/jsx/.eslintrc.cjs create mode 100644 packages/lib/jsx/CHANGELOG.md create mode 100644 packages/lib/jsx/README.md create mode 100644 packages/lib/jsx/package.json create mode 100644 packages/lib/jsx/src/create-element.ts create mode 100644 packages/lib/jsx/src/index.ts create mode 100644 packages/lib/jsx/src/inject.ts create mode 100644 packages/lib/jsx/src/routes.ts create mode 100644 packages/lib/jsx/src/std/Await.tsx create mode 100644 packages/lib/jsx/src/std/Frag.tsx create mode 100644 packages/lib/jsx/src/std/Group.tsx create mode 100644 packages/lib/jsx/src/std/Hotspot.tsx create mode 100644 packages/lib/jsx/src/std/LocalLink.tsx create mode 100644 packages/lib/jsx/src/std/Preloader.tsx create mode 100644 packages/lib/jsx/src/std/Router.tsx create mode 100644 packages/lib/jsx/src/supported-svg-tags.ts create mode 100644 packages/lib/jsx/src/types.ts create mode 100644 packages/lib/jsx/src/weak.ts create mode 100644 packages/lib/jsx/tsconfig.json create mode 100644 packages/lib/runtime/.eslintrc.cjs create mode 100644 packages/lib/runtime/CHANGELOG.md create mode 100644 packages/lib/runtime/README.md create mode 100644 packages/lib/runtime/package.json create mode 100644 packages/lib/runtime/src/communicator.test.ts create mode 100644 packages/lib/runtime/src/communicator.ts create mode 100644 packages/lib/runtime/src/fetch.ts create mode 100644 packages/lib/runtime/src/index.ts create mode 100644 packages/lib/runtime/src/messenger.ts create mode 100644 packages/lib/runtime/src/network.ts create mode 100644 packages/lib/runtime/src/promises.ts create mode 100644 packages/lib/runtime/src/runtime.ts create mode 100644 packages/lib/runtime/src/stopwatch.ts create mode 100644 packages/lib/runtime/src/timespan.ts create mode 100644 packages/lib/runtime/src/wait.ts create mode 100644 packages/lib/runtime/tsconfig.json create mode 100644 packages/lib/std/.eslintrc.cjs create mode 100644 packages/lib/std/CHANGELOG.md create mode 100644 packages/lib/std/README.md create mode 100644 packages/lib/std/package.json create mode 100644 packages/lib/std/src/arrays.test.ts create mode 100644 packages/lib/std/src/arrays.ts create mode 100644 packages/lib/std/src/attempts.test.ts create mode 100644 packages/lib/std/src/attempts.ts create mode 100644 packages/lib/std/src/bijective.ts create mode 100644 packages/lib/std/src/binary-search.test.ts create mode 100644 packages/lib/std/src/binary-search.ts create mode 100644 packages/lib/std/src/bits.test.ts create mode 100644 packages/lib/std/src/bits.ts create mode 100644 packages/lib/std/src/cache.ts create mode 100644 packages/lib/std/src/color.test.ts create mode 100644 packages/lib/std/src/color.ts create mode 100644 packages/lib/std/src/comparators.ts create mode 100644 packages/lib/std/src/crypto.ts create mode 100644 packages/lib/std/src/curve.ts create mode 100644 packages/lib/std/src/data.test.ts create mode 100644 packages/lib/std/src/data.ts create mode 100644 packages/lib/std/src/decorators.ts create mode 100644 packages/lib/std/src/generators.test.ts create mode 100644 packages/lib/std/src/generators.ts create mode 100644 packages/lib/std/src/geom.test.ts create mode 100644 packages/lib/std/src/geom.ts create mode 100644 packages/lib/std/src/hash.test.ts create mode 100644 packages/lib/std/src/hash.ts create mode 100644 packages/lib/std/src/index.ts create mode 100644 packages/lib/std/src/intervals.test.ts create mode 100644 packages/lib/std/src/intervals.ts create mode 100644 packages/lib/std/src/iterables.test.ts create mode 100644 packages/lib/std/src/iterables.ts create mode 100644 packages/lib/std/src/lang.test.ts create mode 100644 packages/lib/std/src/lang.ts create mode 100644 packages/lib/std/src/listeners.test.ts create mode 100644 packages/lib/std/src/listeners.ts create mode 100644 packages/lib/std/src/maps.ts create mode 100644 packages/lib/std/src/math.test.ts create mode 100644 packages/lib/std/src/math.ts create mode 100644 packages/lib/std/src/multimap.test.ts create mode 100644 packages/lib/std/src/multimap.ts create mode 100644 packages/lib/std/src/numeric.ts create mode 100644 packages/lib/std/src/objects.test.ts create mode 100644 packages/lib/std/src/objects.ts create mode 100644 packages/lib/std/src/observers.ts create mode 100644 packages/lib/std/src/option.test.ts create mode 100644 packages/lib/std/src/option.ts create mode 100644 packages/lib/std/src/parameters.ts create mode 100644 packages/lib/std/src/predicates.ts create mode 100644 packages/lib/std/src/progress.ts create mode 100644 packages/lib/std/src/random.ts create mode 100644 packages/lib/std/src/range.ts create mode 100644 packages/lib/std/src/schema.test.ts create mode 100644 packages/lib/std/src/schema.ts create mode 100644 packages/lib/std/src/selection.ts create mode 100644 packages/lib/std/src/sets.ts create mode 100644 packages/lib/std/src/sorted-set.test.ts create mode 100644 packages/lib/std/src/sorted-set.ts create mode 100644 packages/lib/std/src/string-mapping.test.ts create mode 100644 packages/lib/std/src/string-mapping.ts create mode 100644 packages/lib/std/src/strings.ts create mode 100644 packages/lib/std/src/sync-stream.test.ts create mode 100644 packages/lib/std/src/sync-stream.ts create mode 100644 packages/lib/std/src/terminable.test.ts create mode 100644 packages/lib/std/src/terminable.ts create mode 100644 packages/lib/std/src/time-span.ts create mode 100644 packages/lib/std/src/uuid.test.ts create mode 100644 packages/lib/std/src/uuid.ts create mode 100644 packages/lib/std/src/value-guide.test.ts create mode 100644 packages/lib/std/src/value-guides.ts create mode 100644 packages/lib/std/src/value-mapping.ts create mode 100644 packages/lib/std/tsconfig.json create mode 100644 packages/studio/adapters/.eslintrc.cjs create mode 100644 packages/studio/adapters/CHANGELOG.md create mode 100644 packages/studio/adapters/README.md create mode 100644 packages/studio/adapters/generate-exports.mjs create mode 100644 packages/studio/adapters/package.json create mode 100644 packages/studio/adapters/src/AudioData.ts create mode 100644 packages/studio/adapters/src/AudioFileBoxAdapter.ts create mode 100644 packages/studio/adapters/src/AudioLoader.ts create mode 100644 packages/studio/adapters/src/AudioMetaData.ts create mode 100644 packages/studio/adapters/src/AudioSample.ts create mode 100644 packages/studio/adapters/src/AutomatableParameterFieldAdapter.ts create mode 100644 packages/studio/adapters/src/BoxAdapter.ts create mode 100644 packages/studio/adapters/src/BoxAdapterCollection.ts create mode 100644 packages/studio/adapters/src/BoxAdapters.ts create mode 100644 packages/studio/adapters/src/BoxAdaptersContext.ts create mode 100644 packages/studio/adapters/src/ClipNotifications.ts create mode 100644 packages/studio/adapters/src/ClipSequencing.ts create mode 100644 packages/studio/adapters/src/EngineProcessorOptions.ts create mode 100644 packages/studio/adapters/src/EngineStateSchema.ts create mode 100644 packages/studio/adapters/src/FieldAdapter.ts create mode 100644 packages/studio/adapters/src/IconSymbol.ts create mode 100644 packages/studio/adapters/src/IndexComparator.ts create mode 100644 packages/studio/adapters/src/ManadatoryBoxes.ts create mode 100644 packages/studio/adapters/src/NoteBroadcaster.ts create mode 100644 packages/studio/adapters/src/NoteSender.ts create mode 100644 packages/studio/adapters/src/NoteStreamReceiver.ts create mode 100644 packages/studio/adapters/src/ParameterAdapterSet.ts create mode 100644 packages/studio/adapters/src/ParameterFieldAdapters.ts create mode 100644 packages/studio/adapters/src/PeakMeterProcessorOptions.ts create mode 100644 packages/studio/adapters/src/PianoModeAdapter.ts create mode 100644 packages/studio/adapters/src/ProjectDecoder.ts create mode 100644 packages/studio/adapters/src/RecordingProcessorOptions.ts create mode 100644 packages/studio/adapters/src/RingBuffer.ts create mode 100644 packages/studio/adapters/src/RootBoxAdapter.ts create mode 100644 packages/studio/adapters/src/SortedBoxAdapterCollection.ts create mode 100644 packages/studio/adapters/src/UnionAdapterTypes.ts create mode 100644 packages/studio/adapters/src/UpdateClockRate.ts create mode 100644 packages/studio/adapters/src/audio-unit/AudioBusBoxAdapter.ts create mode 100644 packages/studio/adapters/src/audio-unit/AudioUnitBoxAdapter.ts create mode 100644 packages/studio/adapters/src/audio-unit/AudioUnitInput.ts create mode 100644 packages/studio/adapters/src/audio-unit/AudioUnitInputAdapter.ts create mode 100644 packages/studio/adapters/src/audio-unit/AudioUnitOutput.ts create mode 100644 packages/studio/adapters/src/audio-unit/AudioUnitTracks.ts create mode 100644 packages/studio/adapters/src/audio-unit/AuxSendBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices.ts create mode 100644 packages/studio/adapters/src/devices/audio-effects/DelayDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/audio-effects/ModularDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/audio-effects/RevampDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/audio-effects/ReverbDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/audio-effects/StereoToolDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/instruments/NanoDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/instruments/Playfield/Gate.ts create mode 100644 packages/studio/adapters/src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/instruments/PlayfieldDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/instruments/TapeDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/instruments/VaporisateurDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/midi-effects/ArpeggioDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/midi-effects/PitchDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/devices/midi-effects/ZeitgeistDeviceBoxAdapter.ts create mode 100644 packages/studio/adapters/src/editing/UserEditing.ts create mode 100644 packages/studio/adapters/src/editing/UserEditingManager.ts create mode 100644 packages/studio/adapters/src/global.d.ts create mode 100644 packages/studio/adapters/src/grooves/GrooveBoxAdapter.ts create mode 100644 packages/studio/adapters/src/grooves/GrooveShuffleBoxAdapter.ts create mode 100644 packages/studio/adapters/src/modular/abstract.ts create mode 100644 packages/studio/adapters/src/modular/connection.ts create mode 100644 packages/studio/adapters/src/modular/connector.ts create mode 100644 packages/studio/adapters/src/modular/modular.ts create mode 100644 packages/studio/adapters/src/modular/module.ts create mode 100644 packages/studio/adapters/src/modular/modules/audio-input.ts create mode 100644 packages/studio/adapters/src/modular/modules/audio-output.ts create mode 100644 packages/studio/adapters/src/modular/modules/delay.ts create mode 100644 packages/studio/adapters/src/modular/modules/gain.ts create mode 100644 packages/studio/adapters/src/modular/modules/multiplier.ts create mode 100644 packages/studio/adapters/src/modular/user-interface.ts create mode 100644 packages/studio/adapters/src/protocols.ts create mode 100644 packages/studio/adapters/src/selection/FilteredSelection.ts create mode 100644 packages/studio/adapters/src/selection/SelectableVertex.ts create mode 100644 packages/studio/adapters/src/selection/SelectionEntry.ts create mode 100644 packages/studio/adapters/src/selection/VertexSelection.ts create mode 100644 packages/studio/adapters/src/selection/isVertexOfBox.ts create mode 100644 packages/studio/adapters/src/timeline/ClipBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/MarkerBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/MarkerTrackAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/RegionBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/RegionEditing.ts create mode 100644 packages/studio/adapters/src/timeline/TimelineBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/TrackBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/TrackClips.ts create mode 100644 packages/studio/adapters/src/timeline/TrackRegions.ts create mode 100644 packages/studio/adapters/src/timeline/TrackType.ts create mode 100644 packages/studio/adapters/src/timeline/clip/AudioClipBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/clip/NoteClipBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/clip/ValueClipBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/collection/NoteEventCollectionBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/collection/ValueEventCollectionBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/event/InterpolationFieldAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/event/NoteEventBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/event/ValueEventBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/region/AudioRegionBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/region/NoteRegionBoxAdapter.ts create mode 100644 packages/studio/adapters/src/timeline/region/ValueRegionBoxAdapter.ts create mode 100644 packages/studio/adapters/src/unions.ts create mode 100644 packages/studio/adapters/tsconfig.json create mode 100644 packages/studio/boxes/.eslintrc.cjs create mode 100644 packages/studio/boxes/CHANGELOG.md create mode 100644 packages/studio/boxes/README.md create mode 100644 packages/studio/boxes/package.json create mode 100644 packages/studio/boxes/tsconfig.json create mode 100644 packages/studio/core-processors/.eslintrc.cjs create mode 100644 packages/studio/core-processors/CHANGELOG.md create mode 100644 packages/studio/core-processors/package.json create mode 100644 packages/studio/core-processors/src/AbstractProcessor.ts create mode 100644 packages/studio/core-processors/src/AudioBuffer.ts create mode 100644 packages/studio/core-processors/src/AudioBusProcessor.ts create mode 100644 packages/studio/core-processors/src/AudioDeviceChain.ts create mode 100644 packages/studio/core-processors/src/AudioManagerWorklet.ts create mode 100644 packages/studio/core-processors/src/AudioProcessor.ts create mode 100644 packages/studio/core-processors/src/AudioUnit.ts create mode 100644 packages/studio/core-processors/src/AudioUnitOptions.ts create mode 100644 packages/studio/core-processors/src/AutomatableParameter.ts create mode 100644 packages/studio/core-processors/src/AuxSendProcessor.ts create mode 100644 packages/studio/core-processors/src/BlockRenderer.ts create mode 100644 packages/studio/core-processors/src/ChannelStripProcessor.ts create mode 100644 packages/studio/core-processors/src/ClipSequencingAudioContext.ts create mode 100644 packages/studio/core-processors/src/DeviceChain.ts create mode 100644 packages/studio/core-processors/src/DeviceProcessorFactory.ts create mode 100644 packages/studio/core-processors/src/EngineContext.ts create mode 100644 packages/studio/core-processors/src/EngineProcessor.ts create mode 100644 packages/studio/core-processors/src/EventBuffer.ts create mode 100644 packages/studio/core-processors/src/EventProcessor.ts create mode 100644 packages/studio/core-processors/src/FreeVerb.ts create mode 100644 packages/studio/core-processors/src/InsertReturnAudioChain.ts create mode 100644 packages/studio/core-processors/src/MeterProcessor.ts create mode 100644 packages/studio/core-processors/src/Metronome.ts create mode 100644 packages/studio/core-processors/src/MidiDeviceChain.ts create mode 100644 packages/studio/core-processors/src/Mixer.ts create mode 100644 packages/studio/core-processors/src/NoteEventInstrument.ts create mode 100644 packages/studio/core-processors/src/NoteEventSource.ts create mode 100644 packages/studio/core-processors/src/NoteSequencer.ts create mode 100644 packages/studio/core-processors/src/PeakBroadcaster.ts create mode 100644 packages/studio/core-processors/src/RecordingProcessor.ts create mode 100644 packages/studio/core-processors/src/SimpleAdsr.ts create mode 100644 packages/studio/core-processors/src/SpectrumAnalyser.ts create mode 100644 packages/studio/core-processors/src/TimeInfo.ts create mode 100644 packages/studio/core-processors/src/UpdateClock.ts create mode 100644 packages/studio/core-processors/src/constants.ts create mode 100644 packages/studio/core-processors/src/devices/audio-effects/DelayDeviceDsp.ts create mode 100644 packages/studio/core-processors/src/devices/audio-effects/DelayDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/audio-effects/NopDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/audio-effects/RevampDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/audio-effects/ReverbDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/audio-effects/StereoToolDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/NanoDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/Playfield/AutomatableParameters.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/Playfield/MixProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/Playfield/PlayfieldSequencer.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/Playfield/SampleProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/Playfield/SampleVoice.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/PlayfieldDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/TapeDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/instruments/VaporisateurDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/midi-effects/ArpeggioDevice/ArpeggioModes.ts create mode 100644 packages/studio/core-processors/src/devices/midi-effects/ArpeggioDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/midi-effects/PitchDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/devices/midi-effects/ZeitgeistDeviceProcessor.ts create mode 100644 packages/studio/core-processors/src/global.d.ts create mode 100644 packages/studio/core-processors/src/index.ts create mode 100644 packages/studio/core-processors/src/processing.ts create mode 100644 packages/studio/core-processors/src/processors.ts create mode 100644 packages/studio/core-processors/tsconfig.json create mode 100644 packages/studio/core/.eslintrc.cjs create mode 100644 packages/studio/core/CHANGELOG.md create mode 100644 packages/studio/core/README.md create mode 100644 packages/studio/core/package.json create mode 100644 packages/studio/core/src/Engine.ts create mode 100644 packages/studio/core/src/EngineFacade.ts create mode 100644 packages/studio/core/src/EngineWorklet.ts create mode 100644 packages/studio/core/src/MeterWorklet.ts create mode 100644 packages/studio/core/src/Mixer.ts create mode 100644 packages/studio/core/src/Project.ts create mode 100644 packages/studio/core/src/ProjectEnv.ts create mode 100644 packages/studio/core/src/RecordingWorklet.ts create mode 100644 packages/studio/core/src/Wav.ts create mode 100644 packages/studio/core/src/WorkletFactory.ts create mode 100644 packages/studio/core/src/Worklets.ts create mode 100644 packages/studio/core/src/index.ts create mode 100644 packages/studio/core/src/sync-log/Commit.ts create mode 100644 packages/studio/core/src/sync-log/SyncLogReader.ts create mode 100644 packages/studio/core/src/sync-log/SyncLogWriter.ts create mode 100644 packages/studio/core/tsconfig.json create mode 100644 packages/studio/enums/.eslintrc.cjs create mode 100644 packages/studio/enums/CHANGELOG.md create mode 100644 packages/studio/enums/README.md create mode 100644 packages/studio/enums/package.json create mode 100644 packages/studio/enums/src/AudioUnitType.ts create mode 100644 packages/studio/enums/src/Pointers.ts create mode 100644 packages/studio/enums/src/index.ts create mode 100644 packages/studio/enums/tsconfig.json create mode 100644 packages/studio/forge-boxes/.eslintrc.cjs create mode 100644 packages/studio/forge-boxes/CHANGELOG.md create mode 100644 packages/studio/forge-boxes/package.json create mode 100644 packages/studio/forge-boxes/src/forge.ts create mode 100644 packages/studio/forge-boxes/src/index.ts create mode 100644 packages/studio/forge-boxes/src/schema/audio-unit.ts create mode 100644 packages/studio/forge-boxes/src/schema/audio.ts create mode 100644 packages/studio/forge-boxes/src/schema/defaults.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/audio-effects/DelayDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/audio-effects/RevampDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/audio-effects/ReverbDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/audio-effects/StereoToolDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/builder.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/clash.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/index.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/instruments/NanoDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/instruments/PlayfieldDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/instruments/TapeDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/instruments/VaporisateurDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/midi-effects/ArpeggioDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/midi-effects/EchoDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/midi-effects/PitchDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/midi-effects/ZeitGeistDeviceBox.ts create mode 100644 packages/studio/forge-boxes/src/schema/devices/modular.ts create mode 100644 packages/studio/forge-boxes/src/schema/grooves.ts create mode 100644 packages/studio/forge-boxes/src/schema/modular/builder.ts create mode 100644 packages/studio/forge-boxes/src/schema/modular/index.ts create mode 100644 packages/studio/forge-boxes/src/schema/modular/modules.ts create mode 100644 packages/studio/forge-boxes/src/schema/root.ts create mode 100644 packages/studio/forge-boxes/src/schema/selection.ts create mode 100644 packages/studio/forge-boxes/src/schema/step-automation.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/audio.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/clips.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/marker.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/notes.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/timeline.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/track.ts create mode 100644 packages/studio/forge-boxes/src/schema/timeline/value.ts create mode 100644 packages/studio/forge-boxes/src/schema/user-interface.ts create mode 100644 packages/studio/forge-boxes/tsconfig.json create mode 100644 packages/studio/sdk/CHANGELOG.md create mode 100644 packages/studio/sdk/README.md create mode 100644 packages/studio/sdk/package.json create mode 100755 scripts/cert.sh create mode 100755 scripts/clean.sh create mode 100644 turbo.json diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..02c4f0b2 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,5 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ["@opendaw/eslint-config/index.js"], +}; diff --git a/.gitignore b/.gitignore index 85e7c1df..73b0db25 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,20 @@ -/.idea/ +.DS_Store +.turbo +.idea +.env +.cache +*.log +*.local +node_modules +dist +dist-ssr +server/dist +public/dist +public/build-info.json +lerna-debug.log +/packages/lib/box-forge/test/gen/** +/packages/studio/boxes/src/** +/packages/studio/adapters/src/index.ts +/packages/app/studio/public/build-info.json +/packages/app/localhost.pem +/packages/app/localhost-key.pem diff --git a/README.md b/README.md index 3a61f0fa..294cb7d3 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,21 @@ We are committed to transparency and community-driven development. The source code for openDAW is available under GPL3 (links below). +### Built on Trust and Transparency + +**openDAW stands for radical simplicity and respect.** + +- **No SignUp** +- **No Tracking** +- **No Cookie Banners** +- **No User Profiling** +- **No Terms & Conditions** +- **No Ads** +- **No Paywalls** +- **No Data Mining** + +**Just a free, open-source DAW in your browser.** + ## Huge Shoutout To The Incredible openDAW Community! To everyone who has contributed feedback, reported bugs, suggested improvements, or helped spread the word — thank you! @@ -35,10 +50,8 @@ Huge thanks to our [ambassadors](https://opendaw.org/ambassadors), whose dedicat ## And big hugs to all our supporters! -### openDAW Top Supporter — $100.00 -- Polarity - ### openDAW Visionary — $25.00 +- Polarity - kanaris - Stephen Tai - Thad Guidry @@ -71,15 +84,46 @@ Huge thanks to our [ambassadors](https://opendaw.org/ambassadors), whose dedicat ### openDAW Custom Pledge - lokomotywa ($2.47) -**Let’s keep building together!** - --- ### Repositories * [openDAW](https://github.com/andremichelle/opendaw) -* [openDAW · studio](https://github.com/andremichelle/opendaw-studio) -* [openDAW · library (submodule)](https://github.com/andremichelle/opendaw-lib) + +### Prepare, Clone, Installation, and Run + +openDAW tries to avoid external libraries and frameworks. Following is a list of the internal core libraries and their +dependencies. This is a list of the external libraries we currently use in the web studio: + +* [jszip](https://www.npmjs.com/package/jszip) (for openDAW project bundle file) +* [markdown-it](https://www.npmjs.com/package/markdown-it) + [markdown-it-table](https://www.npmjs.com/package/markdown-it-table) (for help pages) + +Before starting, ensure you have the following installed on your system: + +- [Git](https://git-scm.com/) is required for cloning the repository and managing submodules. +- [mkcert](https://github.com/FiloSottile/mkcert#installation) is required to create a certificate for developing with + https protocol. +- [Node.js](nodejs.org) version **>= 23**. This is necessary for running the development server and installing + dependencies. +- [Sass](https://sass-lang.com/) While Sass is handled internally during the development process, you will need to + ensure you have the + binaries available in your environment if used outside the build system. +- [TypeScript](https://www.typescriptlang.org/) +- [OpenSSL](https://chocolatey.org/) For generating local development certificates (), OpenSSL needs to be installed on + your system. Most Linux/macOS systems have OpenSSL pre-installed. + +### Clone + +`git clone https://github.com/andremichelle/opendaw.git && cd opendaw` + +### Installation + +* `npm run cert` (only for the very first time) +* `npm run clean` (to revert to clean slate, removes all `node_modules` and `dist` folders) +* `npm install` (for the first time and after `npm run clean`) +* `npm run build` (for the first time and after `npm run clean`) +* `npm run dev:studio` | `npm run dev:headless` (start dev server) +* Navigate to https://localhost:8080 (port is important > cors sample api) --- @@ -92,6 +136,19 @@ Watch Polarity's Video *"there's a new FREE DAW in town"* We welcome contributions from developers, musicians, educators, and enthusiasts. To learn more about how you can participate, visit our [Contribute](https://opendaw.org/contribute) page. +### What We Are Looking For: + +1. **Offline desktop build (e.g., via Tauri) or a standalone installable PWA** — offer offline capability. +2. **Cloud-agnostic project storage** — a facade layer that lets users plug in different cloud services (e.g., Drive, + S3, Dropbox) for projects and sample libraries. +3. **Live remote collaboration** — real-time session sharing and sync so multiple users can edit the same project + concurrently. +4. **AI manual assistant** — an embedded agent that answers context-aware questions and guides users through features as + they work. +5. **AI-powered stem splitting** — integrated source-separation to extract vocals, drums, and other stems directly + inside the DAW. +6. **Import and Export** - Contribute every possible file format IO + ## Links * [opendaw.studio (prototype)](https://opendaw.studio) diff --git a/lerna.json b/lerna.json new file mode 100644 index 00000000..26ee9f6e --- /dev/null +++ b/lerna.json @@ -0,0 +1,12 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "independent", + "npmClient": "npm", + "command": { + "publish": { + "conventionalCommits": true, + "registry": "http://localhost:4873/" + } + }, + "packages": ["packages/**"] +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 00000000..bcfbbca1 --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "opendaw", + "private": true, + "license": "LGPL-3.0-or-later", + "scripts": { + "cert": "bash ./scripts/cert.sh", + "clean": "bash ./scripts/clean.sh", + "build": "turbo build", + "dev:studio": "turbo run dev --filter=@opendaw/app-studio", + "dev:headless": "turbo run dev --filter=@opendaw/app-headless", + "dev": "turbo run dev", + "test": "turbo run test", + "lint": "turbo run lint", + "format": "prettier --write \"**/*.{ts,tsx,md}\"", + "publish-sdk": "lerna publish" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^7.1.0", + "@typescript-eslint/parser": "^7.1.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "lerna": "^8.2.3", + "prettier": "^3.6.2", + "turbo": "^2.5.4", + "typescript": "^5.8.3", + "vitest": "^3.1.3" + }, + "repository": { + "type": "git", + "url": "https://github.com/andremichelle/opendaw" + }, + "packageManager": "npm@11.4.2", + "workspaces": [ + "packages/**/*" + ], + "dependencies": { + "@opendaw/studio-core": "^0.0.0" + } +} diff --git a/packages/app/headless/.eslintrc.cjs b/packages/app/headless/.eslintrc.cjs new file mode 100644 index 00000000..02c4f0b2 --- /dev/null +++ b/packages/app/headless/.eslintrc.cjs @@ -0,0 +1,5 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ["@opendaw/eslint-config/index.js"], +}; diff --git a/packages/app/headless/CHANGELOG.md b/packages/app/headless/CHANGELOG.md new file mode 100644 index 00000000..e10c00f3 --- /dev/null +++ b/packages/app/headless/CHANGELOG.md @@ -0,0 +1,32 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.0.7](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-headless@0.0.6...@opendaw/app-headless@0.0.7) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless + +## [0.0.6](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-headless@0.0.5...@opendaw/app-headless@0.0.6) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless + +## [0.0.5](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-headless@0.0.4...@opendaw/app-headless@0.0.5) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless + +## [0.0.4](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-headless@0.0.3...@opendaw/app-headless@0.0.4) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless + +## [0.0.3](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-headless@0.0.2...@opendaw/app-headless@0.0.3) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless + +## [0.0.2](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-headless@0.0.1...@opendaw/app-headless@0.0.2) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless + +## 0.0.1 (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-headless diff --git a/packages/app/headless/index.html b/packages/app/headless/index.html new file mode 100644 index 00000000..0b136736 --- /dev/null +++ b/packages/app/headless/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + TS + + +
+ + + diff --git a/packages/app/headless/package.json b/packages/app/headless/package.json new file mode 100644 index 00000000..238650b2 --- /dev/null +++ b/packages/app/headless/package.json @@ -0,0 +1,35 @@ +{ + "name": "@opendaw/app-headless", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --clearScreen false", + "build": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint \"src/**/*.ts\"" + }, + "dependencies": { + "@opendaw/lib-box": "^0.0.0", + "@opendaw/lib-dom": "^0.0.0", + "@opendaw/lib-dsp": "^0.0.0", + "@opendaw/lib-jsx": "^0.0.0", + "@opendaw/lib-runtime": "^0.0.0", + "@opendaw/lib-std": "^0.0.0", + "@opendaw/studio-adapters": "^0.0.0", + "@opendaw/studio-boxes": "^0.0.0", + "@opendaw/studio-core": "^0.0.0", + "@opendaw/studio-enums": "^0.0.0", + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + }, + "devDependencies": { + "@opendaw/eslint-config": "^0.0.0", + "@opendaw/typescript-config": "^0.0.0", + "@types/node": "^22.15.18", + "eslint": "^8.57.0", + "sass": "^1.88.0", + "vite": "^7.0.2", + "vite-plugin-cross-origin-isolation": "^0.1.6" + } +} diff --git a/packages/app/headless/public/favicon.svg b/packages/app/headless/public/favicon.svg new file mode 100644 index 00000000..c5a39337 --- /dev/null +++ b/packages/app/headless/public/favicon.svg @@ -0,0 +1,8 @@ + + + + + diff --git a/packages/app/headless/public/subset.od b/packages/app/headless/public/subset.od new file mode 100644 index 0000000000000000000000000000000000000000..e34bfa1716500283ac5948cd9bbe388acc0676f4 GIT binary patch literal 35392 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 A4FCWD literal 0 HcmV?d00001 diff --git a/packages/app/headless/src/MainThreadAudioLoader.ts b/packages/app/headless/src/MainThreadAudioLoader.ts new file mode 100644 index 00000000..68633aa7 --- /dev/null +++ b/packages/app/headless/src/MainThreadAudioLoader.ts @@ -0,0 +1,57 @@ +import {int, Notifier, Observer, Option, Subscription, Terminable, UUID} from "@opendaw/lib-std" +import {Peaks} from "@opendaw/lib-fusion" +import {AudioData, AudioLoader, AudioLoaderState} from "@opendaw/studio-adapters" +import {SampleApi} from "./SampleApi" + +export class MainThreadAudioLoader implements AudioLoader { + readonly #context: AudioContext + readonly #uuid: UUID.Format + readonly #notifier: Notifier + + #data: Option = Option.None + #state: AudioLoaderState = {type: "progress", progress: 0.0} + #version: int = 0 + + constructor(context: AudioContext, uuid: UUID.Format) { + this.#context = context + this.#uuid = uuid + + this.#notifier = new Notifier() + this.#get() + } + + invalidate(): void { + this.#state = {type: "progress", progress: 0.0} + this.#data = Option.None + this.#version++ + this.#get() + } + + subscribe(observer: Observer): Subscription { + if (this.#state.type === "loaded") { + observer(this.#state) + return Terminable.Empty + } + return this.#notifier.subscribe(observer) + } + + get uuid(): UUID.Format {return this.#uuid} + get data(): Option {return this.#data} + get peaks(): Option {return Option.None} + get state(): AudioLoaderState {return this.#state} + + #setState(value: AudioLoaderState): void { + this.#state = value + this.#notifier.notify(this.#state) + } + + #get(): void { + console.debug("GET", UUID.toString(this.#uuid)) + SampleApi.load(this.#context, this.#uuid, progress => this.#setState({type: "progress", progress})) + .then(([data]) => { + console.debug("LOADED", UUID.toString(this.#uuid)) + this.#data = Option.wrap(data) + this.#setState({type: "loaded"}) + }, reason => this.#setState({type: "error", reason})) + } +} \ No newline at end of file diff --git a/packages/app/headless/src/MainThreadAudioLoaderManager.ts b/packages/app/headless/src/MainThreadAudioLoaderManager.ts new file mode 100644 index 00000000..3f503d05 --- /dev/null +++ b/packages/app/headless/src/MainThreadAudioLoaderManager.ts @@ -0,0 +1,19 @@ +import {SortedSet, UUID} from "@opendaw/lib-std" +import {AudioLoader, AudioLoaderManager} from "@opendaw/studio-adapters" +import {MainThreadAudioLoader} from "./MainThreadAudioLoader" + +export class MainThreadAudioLoaderManager implements AudioLoaderManager { + readonly #context: AudioContext + readonly #loaders: SortedSet + + constructor(context: AudioContext) { + this.#context = context + this.#loaders = UUID.newSet(loader => loader.uuid) + } + + getOrCreate(uuid: UUID.Format): AudioLoader { + return this.#loaders.getOrCreate(uuid, uuid => new MainThreadAudioLoader(this.#context, uuid)) + } + + invalidate(_uuid: UUID.Format): void {} +} \ No newline at end of file diff --git a/packages/app/headless/src/SampleApi.ts b/packages/app/headless/src/SampleApi.ts new file mode 100644 index 00000000..2c5a0719 --- /dev/null +++ b/packages/app/headless/src/SampleApi.ts @@ -0,0 +1,70 @@ +import {Arrays, asDefined, panic, Procedure, unitValue, UUID} from "@opendaw/lib-std" +import {AudioData, AudioMetaData, AudioSample} from "@opendaw/studio-adapters" +import {network, Promises} from "@opendaw/lib-runtime" + +const username = "openDAW" +const password = "prototype" +const base64Credentials = btoa(`${username}:${password}`) +const headers: RequestInit = { + method: "GET", + headers: {"Authorization": `Basic ${base64Credentials}`}, + credentials: "include" +} + +export namespace SampleApi { + export const ApiRoot = "https://api.opendaw.studio/samples" + export const FileRoot = "https://assets.opendaw.studio/samples" + + export const all = async (): Promise> => { + return await Promises.retry(() => fetch(`${ApiRoot}/list.php`, headers).then(x => x.json(), () => [])) + } + + export const get = async (uuid: UUID.Format): Promise => { + const url = `${ApiRoot}/get.php?uuid=${UUID.toString(uuid)}` + const sample: AudioSample = await Promises.retry(() => network.limitFetch(url, headers) + .then(x => x.json())) + .then(x => {if ("error" in x) {return panic(x.error)} else {return x}}) + return Object.freeze({...sample, cloud: true}) + } + + export const load = async (context: AudioContext, + uuid: UUID.Format, + progress: Procedure): Promise<[AudioData, AudioMetaData]> => { + console.debug(`fetch ${UUID.toString(uuid)}`) + return get(uuid) + .then(({uuid, name, bpm}) => Promises.retry(() => network.limitFetch(`${FileRoot}/${uuid}`, headers)) + .then(response => { + const total = parseInt(response.headers.get("Content-Length") ?? "0") + let loaded = 0 + return new Promise((resolve, reject) => { + const reader = asDefined(response.body, "No body in response").getReader() + const chunks: Array = [] + const nextChunk = ({done, value}: ReadableStreamReadResult) => { + if (done) { + resolve(new Blob(chunks).arrayBuffer()) + } else { + chunks.push(value) + loaded += value.length + progress(loaded / total) + reader.read().then(nextChunk, reject) + } + } + reader.read().then(nextChunk, reject) + }) + }) + .then(arrayBuffer => context.decodeAudioData(arrayBuffer)) + .then(audioBuffer => ([fromAudioBuffer(audioBuffer), { + bpm, + name, + duration: audioBuffer.duration, + sample_rate: audioBuffer.sampleRate + }]))) + } + + const fromAudioBuffer = (buffer: AudioBuffer): AudioData => ({ + frames: Arrays.create(channel => buffer.getChannelData(channel), buffer.numberOfChannels), + sampleRate: buffer.sampleRate, + numberOfFrames: buffer.length, + numberOfChannels: buffer.numberOfChannels + }) +} \ No newline at end of file diff --git a/packages/app/headless/src/Test.tsx b/packages/app/headless/src/Test.tsx new file mode 100644 index 00000000..4f371041 --- /dev/null +++ b/packages/app/headless/src/Test.tsx @@ -0,0 +1,9 @@ +import {createElement} from "@opendaw/lib-jsx" + +type Construct = {} + +export const Test = ({}: Construct) => { + return ( +
Hello Jsx
+ ) +} \ No newline at end of file diff --git a/packages/app/headless/src/features.ts b/packages/app/headless/src/features.ts new file mode 100644 index 00000000..95c06dea --- /dev/null +++ b/packages/app/headless/src/features.ts @@ -0,0 +1,12 @@ +import {requireProperty} from "@opendaw/lib-std" + +export const testFeatures = async (): Promise => { + requireProperty(Promise, "withResolvers") + requireProperty(window, "indexedDB") + requireProperty(window, "AudioWorkletNode") + requireProperty(navigator, "storage") + requireProperty(navigator.storage, "getDirectory") + requireProperty(crypto, "randomUUID") + requireProperty(crypto, "subtle") + requireProperty(crypto.subtle, "digest") +} \ No newline at end of file diff --git a/packages/app/headless/src/main.ts b/packages/app/headless/src/main.ts new file mode 100644 index 00000000..54c55f12 --- /dev/null +++ b/packages/app/headless/src/main.ts @@ -0,0 +1,62 @@ +import "./style.css" +import {assert} from "@opendaw/lib-std" +import {PPQN} from "@opendaw/lib-dsp" +import {AnimationFrame, Browser} from "@opendaw/lib-dom" +import {Promises} from "@opendaw/lib-runtime" +import {Project, Worklets} from "@opendaw/studio-core" +import MeterProcessorUrl from "@opendaw/studio-core/meter-processor.js?url" +import EngineProcessorUrl from "@opendaw/studio-core/engine-processor.js?url" +import RecordingProcessorUrl from "@opendaw/studio-core/recording-processor.js?url" +import {testFeatures} from "./features" +import {MainThreadAudioLoaderManager} from "./MainThreadAudioLoaderManager" + +(async () => { + console.debug("openDAW -> headless") + console.debug("Agent", Browser.userAgent) + console.debug("isLocalHost", Browser.isLocalHost()) + assert(crossOriginIsolated, "window must be crossOriginIsolated") + console.debug("booting...") + document.body.textContent = "booting..." + { + const {status, error} = await Promises.tryCatch(testFeatures()) + if (status === "rejected") { + document.querySelector("#preloader")?.remove() + alert(`Could not test features (${error})`) + return + } + } + const context = new AudioContext({latencyHint: 0}) + console.debug(`AudioContext state: ${context.state}, sampleRate: ${context.sampleRate}`) + { + const {status, error} = await Promises.tryCatch(Worklets.install(context, { + meter: MeterProcessorUrl, + engine: EngineProcessorUrl, + recording: RecordingProcessorUrl + })) + if (status === "rejected") { + alert(`Could not install Worklets (${error})`) + return + } + } + { + const audioManager = new MainThreadAudioLoaderManager(context) + const project = Project.load({audioManager}, await fetch("subset.od").then(x => x.arrayBuffer())) + const worklet = Worklets.get(context).createEngine(project) + await worklet.isReady() + while (!await worklet.queryLoadingComplete()) {} + worklet.connect(context.destination) + worklet.isPlaying().setValue(true) + AnimationFrame.add(() => { + const ppqn = worklet.position().getValue() + const {bars, beats} = PPQN.toParts(ppqn) + document.body.textContent = `${bars + 1}:${beats + 1}` + }) + } + if (context.state === "suspended") { + window.addEventListener("click", + async () => await context.resume().then(() => + console.debug(`AudioContext resumed (${context.state})`)), {capture: true, once: true}) + } + AnimationFrame.start() + document.querySelector("#preloader")?.remove() +})() \ No newline at end of file diff --git a/packages/app/headless/src/style.css b/packages/app/headless/src/style.css new file mode 100644 index 00000000..12320801 --- /dev/null +++ b/packages/app/headless/src/style.css @@ -0,0 +1,97 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.vanilla:hover { + filter: drop-shadow(0 0 2em #f7df1eaa); +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/app/headless/src/vite-env.d.ts b/packages/app/headless/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/packages/app/headless/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/app/headless/tsconfig.json b/packages/app/headless/tsconfig.json new file mode 100644 index 00000000..13ed5c02 --- /dev/null +++ b/packages/app/headless/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@opendaw/typescript-config/vite.json", + "include": [ + "src" + ] +} diff --git a/packages/app/headless/vite.config.ts b/packages/app/headless/vite.config.ts new file mode 100644 index 00000000..bd93d763 --- /dev/null +++ b/packages/app/headless/vite.config.ts @@ -0,0 +1,31 @@ +import {defineConfig} from "vite" +import crossOriginIsolation from "vite-plugin-cross-origin-isolation" +import {readFileSync} from "fs" +import {resolve} from "path" + +export default defineConfig({ + resolve: { + alias: { + "@": resolve(__dirname, "./src") + } + }, + server: { + port: 8080, + host: "localhost", + https: { + key: readFileSync("../localhost-key.pem"), + cert: readFileSync("../localhost.pem") + }, + headers: { + "Cross-Origin-Opener-Policy": "same-origin", + "Cross-Origin-Embedder-Policy": "require-corp" + }, + fs: { + // Allow serving files from the entire workspace + allow: [".."] + } + }, + plugins: [ + crossOriginIsolation() + ] +}) \ No newline at end of file diff --git a/packages/app/studio/.eslintrc.cjs b/packages/app/studio/.eslintrc.cjs new file mode 100644 index 00000000..02c4f0b2 --- /dev/null +++ b/packages/app/studio/.eslintrc.cjs @@ -0,0 +1,5 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ["@opendaw/eslint-config/index.js"], +}; diff --git a/packages/app/studio/CHANGELOG.md b/packages/app/studio/CHANGELOG.md new file mode 100644 index 00000000..cde60b1b --- /dev/null +++ b/packages/app/studio/CHANGELOG.md @@ -0,0 +1,32 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.0.7](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-studio@0.0.6...@opendaw/app-studio@0.0.7) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio + +## [0.0.6](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-studio@0.0.5...@opendaw/app-studio@0.0.6) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio + +## [0.0.5](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-studio@0.0.4...@opendaw/app-studio@0.0.5) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio + +## [0.0.4](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-studio@0.0.3...@opendaw/app-studio@0.0.4) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio + +## [0.0.3](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-studio@0.0.2...@opendaw/app-studio@0.0.3) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio + +## [0.0.2](https://github.com/andremichelle/opendaw-turbo/compare/@opendaw/app-studio@0.0.1...@opendaw/app-studio@0.0.2) (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio + +## 0.0.1 (2025-07-11) + +**Note:** Version bump only for package @opendaw/app-studio diff --git a/packages/app/studio/index.html b/packages/app/studio/index.html new file mode 100644 index 00000000..c5070ae9 --- /dev/null +++ b/packages/app/studio/index.html @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 🎧openDAW.studio + + + + + + + \ No newline at end of file diff --git a/packages/app/studio/package.json b/packages/app/studio/package.json new file mode 100644 index 00000000..2f3c867d --- /dev/null +++ b/packages/app/studio/package.json @@ -0,0 +1,37 @@ +{ + "name": "@opendaw/app-studio", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --clearScreen false", + "build": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint \"src/**/*.ts\"" + }, + "dependencies": { + "@opendaw/lib-box": "^0.0.0", + "@opendaw/lib-dom": "^0.0.0", + "@opendaw/lib-dsp": "^0.0.0", + "@opendaw/lib-jsx": "^0.0.0", + "@opendaw/lib-runtime": "^0.0.0", + "@opendaw/lib-std": "^0.0.0", + "@opendaw/studio-adapters": "^0.0.0", + "@opendaw/studio-boxes": "^0.0.0", + "@opendaw/studio-core": "^0.0.0", + "@opendaw/studio-enums": "^0.0.0", + "jszip": "^3.10.1", + "markdown-it": "^14.1.0", + "markdown-it-table": "^4.1.1" + }, + "devDependencies": { + "@opendaw/eslint-config": "^0.0.0", + "@opendaw/typescript-config": "^0.0.0", + "@types/markdown-it": "^14.1.2", + "@types/node": "^22.15.18", + "eslint": "^8.57.0", + "sass": "^1.88.0", + "vite": "^7.0.2", + "vite-plugin-cross-origin-isolation": "^0.1.6" + } +} diff --git a/packages/app/studio/public/.htaccess b/packages/app/studio/public/.htaccess new file mode 100644 index 00000000..066d397d --- /dev/null +++ b/packages/app/studio/public/.htaccess @@ -0,0 +1,32 @@ +# openDAW +# prototype + +# CORS Headers +Header set Access-Control-Allow-Origin "https://localhost:8080" +Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE" +Header set Access-Control-Allow-Headers "Authorization, Content-Type, X-Requested-With" +Header set Access-Control-Allow-Credentials "true" +Header set Cross-Origin-Opener-Policy "same-origin" +Header set Cross-Origin-Embedder-Policy "require-corp" + +# Enable Brotli Compression for supported files, only if they exist +RewriteEngine On + +# Serve .br files if the client supports Brotli +RewriteCond %{HTTP:Accept-Encoding} br +RewriteCond %{REQUEST_FILENAME}.br -f +RewriteRule ^(.*)$ $1.br [QSA,L] + +# Set Content-Encoding header only for actual Brotli-compressed files + + Header set Content-Encoding br + + +# URL rewriting (if needed) +RewriteBase / +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^ index.html [QSA,L] + +# Redirect /manuals/ to root index.html for SPA handling +RewriteRule ^manuals/$ /index.html [L] \ No newline at end of file diff --git a/packages/app/studio/public/become_a_patron_button.png b/packages/app/studio/public/become_a_patron_button.png new file mode 100644 index 0000000000000000000000000000000000000000..291b7bcf265521a3d062024bc4f7df927ae60e8f GIT binary patch literal 3086 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 S8x99PkF}+}MV*;%;{O2Ee#b2U literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/cover.png b/packages/app/studio/public/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..5965e823998afb1a23a5b504c5953bd86201dacb GIT binary patch literal 27270 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 + + + + diff --git a/packages/app/studio/public/fonts/OpenSans-Regular.ttf b/packages/app/studio/public/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..67803bb642742643c9525b6d25b8ade89383232c GIT binary patch literal 130832 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 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/fonts/rubik.woff2 b/packages/app/studio/public/fonts/rubik.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9237ec3b860cd190944621eda1d0d7cbaff88868 GIT binary patch literal 17644 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 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/grid16.svg b/packages/app/studio/public/grid16.svg new file mode 100644 index 00000000..28192e69 --- /dev/null +++ b/packages/app/studio/public/grid16.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/app/studio/public/images/meta.jpg b/packages/app/studio/public/images/meta.jpg new file mode 100644 index 0000000000000000000000000000000000000000..11dc61cb88a3a9beba4580e55b55ffa2c89bd44d GIT binary patch literal 355670 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ⅆabKliP@lX8{OL264B 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

c;DS~|{UHd-m~hWAO? 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 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/SeekDeeper.od b/packages/app/studio/public/templates/SeekDeeper.od new file mode 100644 index 0000000000000000000000000000000000000000..b65e60fc4fc4793e7296d8e7a79c8d4fe63701e8 GIT binary patch literal 16825 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 Kq`e<$DgVEwOv$1E literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/Shafted.od b/packages/app/studio/public/templates/Shafted.od new file mode 100644 index 0000000000000000000000000000000000000000..8b081474eead8677be6a24b86dee2d30b406f47a GIT binary patch literal 29399 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 KHRjv}r~e0co-(Zf literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/Sunset.od b/packages/app/studio/public/templates/Sunset.od new file mode 100644 index 0000000000000000000000000000000000000000..cc6ab174270f2ee2dc1f7c1daa5fda57e06317c4 GIT binary patch literal 34512 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 S?WTRr5&uUVVhs^5iugZL_ceq7 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/update.html b/packages/app/studio/public/update.html new file mode 100644 index 00000000..aa928e11 --- /dev/null +++ b/packages/app/studio/public/update.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + 🎧openDAW.studio + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + updating +
+ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-000.svg b/packages/app/studio/public/viscious-speed/abstract-000.svg new file mode 100644 index 00000000..d7af1902 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-000.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/studio/public/viscious-speed/abstract-001.svg b/packages/app/studio/public/viscious-speed/abstract-001.svg new file mode 100644 index 00000000..00c73fdf --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-001.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-002.svg b/packages/app/studio/public/viscious-speed/abstract-002.svg new file mode 100644 index 00000000..f70fb952 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-002.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-003.svg b/packages/app/studio/public/viscious-speed/abstract-003.svg new file mode 100644 index 00000000..339973c3 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-003.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-004.svg b/packages/app/studio/public/viscious-speed/abstract-004.svg new file mode 100644 index 00000000..8bd91766 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-004.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-005.svg b/packages/app/studio/public/viscious-speed/abstract-005.svg new file mode 100644 index 00000000..58249328 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-005.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-006.svg b/packages/app/studio/public/viscious-speed/abstract-006.svg new file mode 100644 index 00000000..4163dfd8 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-006.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-007.svg b/packages/app/studio/public/viscious-speed/abstract-007.svg new file mode 100644 index 00000000..9de373c7 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-007.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-008.svg b/packages/app/studio/public/viscious-speed/abstract-008.svg new file mode 100644 index 00000000..5c7eef2f --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-008.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-009.svg b/packages/app/studio/public/viscious-speed/abstract-009.svg new file mode 100644 index 00000000..36660395 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-009.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-010.svg b/packages/app/studio/public/viscious-speed/abstract-010.svg new file mode 100644 index 00000000..c5d4164f --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-010.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-011.svg b/packages/app/studio/public/viscious-speed/abstract-011.svg new file mode 100644 index 00000000..ae61e361 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-011.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-012.svg b/packages/app/studio/public/viscious-speed/abstract-012.svg new file mode 100644 index 00000000..564093ba --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-012.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-013.svg b/packages/app/studio/public/viscious-speed/abstract-013.svg new file mode 100644 index 00000000..bc5abb42 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-013.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-014.svg b/packages/app/studio/public/viscious-speed/abstract-014.svg new file mode 100644 index 00000000..a11465ef --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-014.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-015.svg b/packages/app/studio/public/viscious-speed/abstract-015.svg new file mode 100644 index 00000000..08070265 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-015.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-016.svg b/packages/app/studio/public/viscious-speed/abstract-016.svg new file mode 100644 index 00000000..e1ac9390 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-016.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-017.svg b/packages/app/studio/public/viscious-speed/abstract-017.svg new file mode 100644 index 00000000..18a11285 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-017.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-018.svg b/packages/app/studio/public/viscious-speed/abstract-018.svg new file mode 100644 index 00000000..a5965d26 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-018.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-019.svg b/packages/app/studio/public/viscious-speed/abstract-019.svg new file mode 100644 index 00000000..e8fe525a --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-019.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-020.svg b/packages/app/studio/public/viscious-speed/abstract-020.svg new file mode 100644 index 00000000..ef1c69e5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-020.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-021.svg b/packages/app/studio/public/viscious-speed/abstract-021.svg new file mode 100644 index 00000000..72d0e2b5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-021.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-022.svg b/packages/app/studio/public/viscious-speed/abstract-022.svg new file mode 100644 index 00000000..bcbc20bf --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-022.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-023.svg b/packages/app/studio/public/viscious-speed/abstract-023.svg new file mode 100644 index 00000000..0bf4ce79 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-023.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-024.svg b/packages/app/studio/public/viscious-speed/abstract-024.svg new file mode 100644 index 00000000..e751071e --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-024.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-025.svg b/packages/app/studio/public/viscious-speed/abstract-025.svg new file mode 100644 index 00000000..4b757aa5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-025.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-026.svg b/packages/app/studio/public/viscious-speed/abstract-026.svg new file mode 100644 index 00000000..9f12e0ce --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-026.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-027.svg b/packages/app/studio/public/viscious-speed/abstract-027.svg new file mode 100644 index 00000000..28dfcb28 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-027.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-028.svg b/packages/app/studio/public/viscious-speed/abstract-028.svg new file mode 100644 index 00000000..8e9d2d18 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-028.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-029.svg b/packages/app/studio/public/viscious-speed/abstract-029.svg new file mode 100644 index 00000000..873b57cf --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-029.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-030.svg b/packages/app/studio/public/viscious-speed/abstract-030.svg new file mode 100644 index 00000000..ad248f9c --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-030.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-031.svg b/packages/app/studio/public/viscious-speed/abstract-031.svg new file mode 100644 index 00000000..13451876 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-031.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-032.svg b/packages/app/studio/public/viscious-speed/abstract-032.svg new file mode 100644 index 00000000..b87548ea --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-032.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-033.svg b/packages/app/studio/public/viscious-speed/abstract-033.svg new file mode 100644 index 00000000..cd0bd604 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-033.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-034.svg b/packages/app/studio/public/viscious-speed/abstract-034.svg new file mode 100644 index 00000000..c436a37b --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-034.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-035.svg b/packages/app/studio/public/viscious-speed/abstract-035.svg new file mode 100644 index 00000000..ef90f0bd --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-035.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-036.svg b/packages/app/studio/public/viscious-speed/abstract-036.svg new file mode 100644 index 00000000..43eaf5b0 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-036.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-037.svg b/packages/app/studio/public/viscious-speed/abstract-037.svg new file mode 100644 index 00000000..8682ef64 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-037.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-038.svg b/packages/app/studio/public/viscious-speed/abstract-038.svg new file mode 100644 index 00000000..ea75e189 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-038.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-039.svg b/packages/app/studio/public/viscious-speed/abstract-039.svg new file mode 100644 index 00000000..82cde8b1 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-039.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-040.svg b/packages/app/studio/public/viscious-speed/abstract-040.svg new file mode 100644 index 00000000..52cc601e --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-040.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-041.svg b/packages/app/studio/public/viscious-speed/abstract-041.svg new file mode 100644 index 00000000..4453d2f5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-041.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-042.svg b/packages/app/studio/public/viscious-speed/abstract-042.svg new file mode 100644 index 00000000..e1175dc9 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-042.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-043.svg b/packages/app/studio/public/viscious-speed/abstract-043.svg new file mode 100644 index 00000000..5424a731 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-043.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-044.svg b/packages/app/studio/public/viscious-speed/abstract-044.svg new file mode 100644 index 00000000..827044e5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-044.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-045.svg b/packages/app/studio/public/viscious-speed/abstract-045.svg new file mode 100644 index 00000000..c9ca8a47 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-045.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-046.svg b/packages/app/studio/public/viscious-speed/abstract-046.svg new file mode 100644 index 00000000..a045d208 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-046.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-047.svg b/packages/app/studio/public/viscious-speed/abstract-047.svg new file mode 100644 index 00000000..2ed49640 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-047.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-048.svg b/packages/app/studio/public/viscious-speed/abstract-048.svg new file mode 100644 index 00000000..efc430ef --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-048.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-049.svg b/packages/app/studio/public/viscious-speed/abstract-049.svg new file mode 100644 index 00000000..b83dec48 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-049.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-050.svg b/packages/app/studio/public/viscious-speed/abstract-050.svg new file mode 100644 index 00000000..76673d90 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-050.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-051.svg b/packages/app/studio/public/viscious-speed/abstract-051.svg new file mode 100644 index 00000000..1620752c --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-051.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-052.svg b/packages/app/studio/public/viscious-speed/abstract-052.svg new file mode 100644 index 00000000..25bb67b7 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-052.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-053.svg b/packages/app/studio/public/viscious-speed/abstract-053.svg new file mode 100644 index 00000000..85a93e4b --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-053.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-054.svg b/packages/app/studio/public/viscious-speed/abstract-054.svg new file mode 100644 index 00000000..e6767bf6 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-054.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-055.svg b/packages/app/studio/public/viscious-speed/abstract-055.svg new file mode 100644 index 00000000..80ca5ff2 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-055.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-056.svg b/packages/app/studio/public/viscious-speed/abstract-056.svg new file mode 100644 index 00000000..da035a76 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-056.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-057.svg b/packages/app/studio/public/viscious-speed/abstract-057.svg new file mode 100644 index 00000000..b22a5d56 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-057.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-058.svg b/packages/app/studio/public/viscious-speed/abstract-058.svg new file mode 100644 index 00000000..58d4cb7e --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-058.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-059.svg b/packages/app/studio/public/viscious-speed/abstract-059.svg new file mode 100644 index 00000000..3fc4d3d9 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-059.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-060.svg b/packages/app/studio/public/viscious-speed/abstract-060.svg new file mode 100644 index 00000000..f803b8af --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-060.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-061.svg b/packages/app/studio/public/viscious-speed/abstract-061.svg new file mode 100644 index 00000000..3526e80d --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-061.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-062.svg b/packages/app/studio/public/viscious-speed/abstract-062.svg new file mode 100644 index 00000000..53cc106b --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-062.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-063.svg b/packages/app/studio/public/viscious-speed/abstract-063.svg new file mode 100644 index 00000000..3c9dae87 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-063.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-064.svg b/packages/app/studio/public/viscious-speed/abstract-064.svg new file mode 100644 index 00000000..b33f312f --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-064.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-065.svg b/packages/app/studio/public/viscious-speed/abstract-065.svg new file mode 100644 index 00000000..f3f26bf5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-065.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-066.svg b/packages/app/studio/public/viscious-speed/abstract-066.svg new file mode 100644 index 00000000..2dc64643 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-066.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-067.svg b/packages/app/studio/public/viscious-speed/abstract-067.svg new file mode 100644 index 00000000..669264b5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-067.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-068.svg b/packages/app/studio/public/viscious-speed/abstract-068.svg new file mode 100644 index 00000000..0148e2f3 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-068.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-069.svg b/packages/app/studio/public/viscious-speed/abstract-069.svg new file mode 100644 index 00000000..50419b09 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-069.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-070.svg b/packages/app/studio/public/viscious-speed/abstract-070.svg new file mode 100644 index 00000000..9ffacde8 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-070.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-071.svg b/packages/app/studio/public/viscious-speed/abstract-071.svg new file mode 100644 index 00000000..a71d03a2 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-071.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-072.svg b/packages/app/studio/public/viscious-speed/abstract-072.svg new file mode 100644 index 00000000..3d533100 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-072.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-073.svg b/packages/app/studio/public/viscious-speed/abstract-073.svg new file mode 100644 index 00000000..49f319d2 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-073.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-074.svg b/packages/app/studio/public/viscious-speed/abstract-074.svg new file mode 100644 index 00000000..9eff42c5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-074.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-075.svg b/packages/app/studio/public/viscious-speed/abstract-075.svg new file mode 100644 index 00000000..e1e61de4 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-075.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-076.svg b/packages/app/studio/public/viscious-speed/abstract-076.svg new file mode 100644 index 00000000..d1f9d536 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-076.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-077.svg b/packages/app/studio/public/viscious-speed/abstract-077.svg new file mode 100644 index 00000000..80d464af --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-077.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-078.svg b/packages/app/studio/public/viscious-speed/abstract-078.svg new file mode 100644 index 00000000..1f9a4615 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-078.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-079.svg b/packages/app/studio/public/viscious-speed/abstract-079.svg new file mode 100644 index 00000000..b717721d --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-079.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-080.svg b/packages/app/studio/public/viscious-speed/abstract-080.svg new file mode 100644 index 00000000..c7960257 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-080.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-081.svg b/packages/app/studio/public/viscious-speed/abstract-081.svg new file mode 100644 index 00000000..779bcb05 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-081.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-082.svg b/packages/app/studio/public/viscious-speed/abstract-082.svg new file mode 100644 index 00000000..075573c5 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-082.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-083.svg b/packages/app/studio/public/viscious-speed/abstract-083.svg new file mode 100644 index 00000000..81aaec5a --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-083.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-084.svg b/packages/app/studio/public/viscious-speed/abstract-084.svg new file mode 100644 index 00000000..f1c146b1 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-084.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-085.svg b/packages/app/studio/public/viscious-speed/abstract-085.svg new file mode 100644 index 00000000..36da4594 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-085.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-086.svg b/packages/app/studio/public/viscious-speed/abstract-086.svg new file mode 100644 index 00000000..f8b9e635 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-086.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-087.svg b/packages/app/studio/public/viscious-speed/abstract-087.svg new file mode 100644 index 00000000..754634fd --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-087.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-088.svg b/packages/app/studio/public/viscious-speed/abstract-088.svg new file mode 100644 index 00000000..cc0e07b6 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-088.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-089.svg b/packages/app/studio/public/viscious-speed/abstract-089.svg new file mode 100644 index 00000000..96346a1d --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-089.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-090.svg b/packages/app/studio/public/viscious-speed/abstract-090.svg new file mode 100644 index 00000000..36dbec29 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-090.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-091.svg b/packages/app/studio/public/viscious-speed/abstract-091.svg new file mode 100644 index 00000000..b81c6a37 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-091.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-092.svg b/packages/app/studio/public/viscious-speed/abstract-092.svg new file mode 100644 index 00000000..e2b79437 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-092.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-093.svg b/packages/app/studio/public/viscious-speed/abstract-093.svg new file mode 100644 index 00000000..7faf1544 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-093.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-094.svg b/packages/app/studio/public/viscious-speed/abstract-094.svg new file mode 100644 index 00000000..936de988 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-094.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-095.svg b/packages/app/studio/public/viscious-speed/abstract-095.svg new file mode 100644 index 00000000..387d2ef3 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-095.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-096.svg b/packages/app/studio/public/viscious-speed/abstract-096.svg new file mode 100644 index 00000000..3a96ebfb --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-096.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-097.svg b/packages/app/studio/public/viscious-speed/abstract-097.svg new file mode 100644 index 00000000..3aff8d7c --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-097.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-098.svg b/packages/app/studio/public/viscious-speed/abstract-098.svg new file mode 100644 index 00000000..9de0cf88 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-098.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-099.svg b/packages/app/studio/public/viscious-speed/abstract-099.svg new file mode 100644 index 00000000..67094137 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-099.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-100.svg b/packages/app/studio/public/viscious-speed/abstract-100.svg new file mode 100644 index 00000000..61e75b2a --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-100.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-101.svg b/packages/app/studio/public/viscious-speed/abstract-101.svg new file mode 100644 index 00000000..0ae9ddc7 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-101.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-102.svg b/packages/app/studio/public/viscious-speed/abstract-102.svg new file mode 100644 index 00000000..6bc11dd4 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-102.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-103.svg b/packages/app/studio/public/viscious-speed/abstract-103.svg new file mode 100644 index 00000000..f23cfdb9 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-103.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-104.svg b/packages/app/studio/public/viscious-speed/abstract-104.svg new file mode 100644 index 00000000..e454c168 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-104.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-105.svg b/packages/app/studio/public/viscious-speed/abstract-105.svg new file mode 100644 index 00000000..85f25e15 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-105.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-106.svg b/packages/app/studio/public/viscious-speed/abstract-106.svg new file mode 100644 index 00000000..8d313ab3 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-106.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-107.svg b/packages/app/studio/public/viscious-speed/abstract-107.svg new file mode 100644 index 00000000..c9fdaa39 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-107.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-108.svg b/packages/app/studio/public/viscious-speed/abstract-108.svg new file mode 100644 index 00000000..1cf5b14f --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-108.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-109.svg b/packages/app/studio/public/viscious-speed/abstract-109.svg new file mode 100644 index 00000000..6a8c59a1 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-109.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-110.svg b/packages/app/studio/public/viscious-speed/abstract-110.svg new file mode 100644 index 00000000..28556a15 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-110.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-111.svg b/packages/app/studio/public/viscious-speed/abstract-111.svg new file mode 100644 index 00000000..4f8b59a0 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-111.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-112.svg b/packages/app/studio/public/viscious-speed/abstract-112.svg new file mode 100644 index 00000000..9648636f --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-112.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-113.svg b/packages/app/studio/public/viscious-speed/abstract-113.svg new file mode 100644 index 00000000..702bdee3 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-113.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-114.svg b/packages/app/studio/public/viscious-speed/abstract-114.svg new file mode 100644 index 00000000..41a9fb33 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-114.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-115.svg b/packages/app/studio/public/viscious-speed/abstract-115.svg new file mode 100644 index 00000000..54b4c1e4 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-115.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-116.svg b/packages/app/studio/public/viscious-speed/abstract-116.svg new file mode 100644 index 00000000..fc2da334 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-116.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-117.svg b/packages/app/studio/public/viscious-speed/abstract-117.svg new file mode 100644 index 00000000..db3e5d8f --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-117.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-118.svg b/packages/app/studio/public/viscious-speed/abstract-118.svg new file mode 100644 index 00000000..503b3728 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-118.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-119.svg b/packages/app/studio/public/viscious-speed/abstract-119.svg new file mode 100644 index 00000000..8a5adee9 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-119.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-120.svg b/packages/app/studio/public/viscious-speed/abstract-120.svg new file mode 100644 index 00000000..b1d72cf9 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-120.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/public/viscious-speed/abstract-121.svg b/packages/app/studio/public/viscious-speed/abstract-121.svg new file mode 100644 index 00000000..3293bbb1 --- /dev/null +++ b/packages/app/studio/public/viscious-speed/abstract-121.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app/studio/src/AppDialogs.tsx b/packages/app/studio/src/AppDialogs.tsx new file mode 100644 index 00000000..f9a4ca3a --- /dev/null +++ b/packages/app/studio/src/AppDialogs.tsx @@ -0,0 +1,37 @@ +import {Dialog} from "@/ui/components/Dialog" +import { IconSymbol } from "@opendaw/studio-adapters" +import {Surface} from "@/ui/surface/Surface" +import {Promises} from "@opendaw/lib-runtime" +import {createElement} from "@opendaw/lib-jsx" +import {Colors} from "@/ui/Colors" + +export const showStoragePersistDialog = (): Promise => { + const {resolve, promise} = Promise.withResolvers() + const dialog: HTMLDialogElement = ( + Promises.tryCatch(navigator.storage.persist()).then(({status, value}) => { + if (status === "resolved" && value) { + console.debug("Firefox now persists storage.") + handler.close() + resolve() + } + }) + }]}> +
+

Data loss is probable if you do not take action.

+

To make this a permanent friendship, please go to:

+

Preferences - Privacy & Security - Cookies & Site Data - Manage + Exceptions...

+

and add opendaw.studio to the list. You will never be bothered again.

+
+
+ ) + Surface.get().body.appendChild(dialog) + dialog.showModal() + return promise +} \ No newline at end of file diff --git a/packages/app/studio/src/BuildInfo.ts b/packages/app/studio/src/BuildInfo.ts new file mode 100644 index 00000000..419f7a7c --- /dev/null +++ b/packages/app/studio/src/BuildInfo.ts @@ -0,0 +1,6 @@ +// This JSON gets created right before building (check ../vite.config.ts) and stored in the public folder. +export type BuildInfo = { + date: number + uuid: string + env: "production" | "development" +} \ No newline at end of file diff --git a/packages/app/studio/src/ErrorMail.txt b/packages/app/studio/src/ErrorMail.txt new file mode 100644 index 00000000..0b9a472c --- /dev/null +++ b/packages/app/studio/src/ErrorMail.txt @@ -0,0 +1,17 @@ +Hello openDAW Support, + +I'd like to report a bug encountered while using openDAW. Below are the details: + +What I did: +[Briefly describe the steps you performed before the issue occurred.] + +What I expected to happen: +[Explain what you expected to happen instead.] + +How to reproduce: +[List clear steps that can help support reproducing this issue.] + +Please let me know if you need any additional information. + +Thank you, +[Your Name] \ No newline at end of file diff --git a/packages/app/studio/src/Recovery.ts b/packages/app/studio/src/Recovery.ts new file mode 100644 index 00000000..6aa475e6 --- /dev/null +++ b/packages/app/studio/src/Recovery.ts @@ -0,0 +1,50 @@ +import {Option, Provider, UUID} from "@opendaw/lib-std" +import {Promises} from "@opendaw/lib-runtime" +import {Project} from "@opendaw/studio-core" +import {StudioService} from "@/service/StudioService.ts" +import {ProjectSession} from "./project/ProjectSession" +import {OpfsAgent} from "@/service/agents.ts" +import {ProjectMeta} from "@/project/ProjectMeta.ts" + +export class Recovery { + static readonly #RESTORE_FILE_PATH = ".backup" + + readonly #service: StudioService + + constructor(service: StudioService) {this.#service = service} + + async restoreSession(): Promise> { + const backupResult = await Promises.tryCatch(OpfsAgent.list(Recovery.#RESTORE_FILE_PATH)) + if (backupResult.status === "rejected" || backupResult.value.length === 0) {return Option.None} + const readResult = await Promises.tryCatch(Promise.all([ + OpfsAgent.read(`${Recovery.#RESTORE_FILE_PATH}/uuid`) + .then(x => UUID.validate(x)), + OpfsAgent.read(`${Recovery.#RESTORE_FILE_PATH}/project.od`) + .then(x => Project.load(this.#service, x.buffer as ArrayBuffer)), + OpfsAgent.read(`${Recovery.#RESTORE_FILE_PATH}/meta.json`) + .then(x => JSON.parse(new TextDecoder().decode(x.buffer as ArrayBuffer)) as ProjectMeta), + OpfsAgent.read(`${Recovery.#RESTORE_FILE_PATH}/saved`) + .then(x => x.at(0) === 1) + ])) + const deleteResult = await Promises.tryCatch(OpfsAgent.delete(Recovery.#RESTORE_FILE_PATH)) + console.debug(`delete backup: "${deleteResult.status}"`) + if (readResult.status === "rejected") {return Option.None} + const [uuid, project, meta, saved] = readResult.value + const session = new ProjectSession(this.#service, uuid, project, meta, Option.None, saved) + console.debug(`restore ${session}, saved: ${saved}`) + return Option.wrap(session) + } + + createBackupCommand(): Option>> { + return this.#service.sessionService.getValue().map((session: ProjectSession) => async () => { + console.debug("temp storing project") + const {project, meta, uuid} = session + return Promises.tryCatch(Promise.all([ + OpfsAgent.write(`${Recovery.#RESTORE_FILE_PATH}/uuid`, uuid), + OpfsAgent.write(`${Recovery.#RESTORE_FILE_PATH}/project.od`, new Uint8Array(project.toArrayBuffer())), + OpfsAgent.write(`${Recovery.#RESTORE_FILE_PATH}/meta.json`, new TextEncoder().encode(JSON.stringify(meta))), + OpfsAgent.write(`${Recovery.#RESTORE_FILE_PATH}/saved`, new Uint8Array([session.saved() ? 1 : 0])) + ])).then(result => console.debug(`backup result: ${result.status}`)) + }) + } +} \ No newline at end of file diff --git a/packages/app/studio/src/audio/AudioDevices.ts b/packages/app/studio/src/audio/AudioDevices.ts new file mode 100644 index 00000000..0bc7949d --- /dev/null +++ b/packages/app/studio/src/audio/AudioDevices.ts @@ -0,0 +1,102 @@ +import {Func, int, Option, panic} from "@opendaw/lib-std" +import {Promises} from "@opendaw/lib-runtime" +import {showInfoDialog} from "@/ui/components/dialogs" +import {Button} from "@/ui/components/Dialog" + +export class AudioDevices { + static #granted: Option> = Option.None + + static async query(query: Func): Promise { + if (this.#granted.isEmpty()) { + this.#granted = Option.wrap(this.#request().catch(reason => { + console.warn("Could not get permission to use microphone / audio devices.") + this.#granted = Option.None + throw reason + })) + } + return this.#granted.unwrap().then(() => query(navigator.mediaDevices)) + } + + static async queryListInputDevices(): Promise> { + return this.query(this.#queryEnumerateDevices("audioinput")) + } + + static async queryListOutputDevices(): Promise> { + return this.query(this.#queryEnumerateDevices("audiooutput")) + } + + static async queryAudioInputDeviceStream(sampleRate: number, deviceId?: string, channelCount: int = 2): Promise { + console.debug(`requestAudioInputDevice deviceId: ${deviceId ?? "default"}, channelCount: ${channelCount}`) + return this.query(mediaDevices => mediaDevices.getUserMedia({ + audio: { + ...AudioDevices.#DefaultMediaTrackConstraints(sampleRate), + channelCount, + deviceId + } satisfies MediaTrackConstraints + })) + } + + static async #request(): Promise { + console.debug("Requesting permission to use microphone / audio devices...") + if (!await this.#queryPermissions()) {return Promise.reject("Permission denied")} + if (!await this.#getUserMedia()) {return Promise.reject("Permission to getUserMedia denied")} + console.debug("Granted permission to use microphone / audio devices.") + } + + static #DefaultMediaTrackConstraints(sampleRate: number = 48_000): MediaTrackConstraints { + return Object.freeze({ + sampleRate, + sampleSize: 32, + echoCancellation: false, + noiseSuppression: false, + autoGainControl: false + }) + } + + static async #queryPermissions(): Promise { + const headline = "Permission Api" + const {status, value: permissionState, error} = + await Promises.tryCatch(navigator.permissions.query({name: "microphone"})) + if (status === "rejected") {return await showInfoDialog({headline, message: String(error)}) ?? false} + console.debug(`Permission state(${permissionState.name}): ${permissionState.state}`) + if (permissionState.state === "granted") {return true} + const buttons: ReadonlyArray
+ + )} success={(result) => { + const update = () => { + entriesLifeSpan.terminate() + replaceChildren(entries, result + .filter(({name}) => name.toLowerCase().includes(filter.getValue().toLowerCase())) + .toSorted((a, b) => StringComparator(a.name.toLowerCase(), b.name.toLowerCase())) + .map(sample => ( + reload.get().update()} + /> + ))) + } + lifecycle.own(filter.catchupAndSubscribe(update)) + lifecycle.own(service.subscribeSignal(() => { + Runtime.debounce(() => { + location.setValue(SampleLocation.Local) + reload.get().update() + }, 500) + }, "import-sample")) + return ( + +
+ Name + bpm + sec +
+ {entries} +
+ ) + }}/> + ) + }}> + + +
+ {slider} +
+ + ) + lifecycle.ownAll( + Events.subscribe(slider, "input", + () => linearVolume.setValue(clamp(slider.valueAsNumber, 0.0, 1.0))), + linearVolume.catchupAndSubscribe(owner => slider.valueAsNumber = owner.getValue()), + Events.subscribe(element, "keydown", async event => { + if (Keyboard.GlobalShortcut.isDelete(event) && location.getValue() === SampleLocation.Local) { + await sampleService.deleteSelected() + reload.get().update() + } + }) + ) + return element +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/browse/SampleDialogs.tsx b/packages/app/studio/src/ui/browse/SampleDialogs.tsx new file mode 100644 index 00000000..559c65c7 --- /dev/null +++ b/packages/app/studio/src/ui/browse/SampleDialogs.tsx @@ -0,0 +1,138 @@ +import {AudioSample} from "@/audio/AudioSample" +import {Dialog} from "@/ui/components/Dialog" +import {IconSymbol} from "@opendaw/studio-adapters" +import {Surface} from "@/ui/surface/Surface" +import {createElement} from "@opendaw/lib-jsx" +import {showInfoDialog} from "@/ui/components/dialogs" +import {isDefined, UUID} from "@opendaw/lib-std" +import {Promises} from "@opendaw/lib-runtime" +import {Errors, Files} from "@opendaw/lib-dom" +import {SampleImporter} from "@/project/SampleImporter" + +const SampleFileTypes: Array = [ + {description: "openDAW audio-files", accept: {"application/octet-stream": [".wav"]}} +] + +export namespace SampleDialogs { + export const nativeFileBrowser = async (multiple: boolean = true) => + Promises.tryCatch(Files.open({types: SampleFileTypes, multiple})) + + export const missingSampleDialog = async (importer: SampleImporter, uuid: UUID.Format, name: string): Promise => { + const {resolve, reject, promise} = Promise.withResolvers() + const dialog: HTMLDialogElement = ( + { + reject(Errors.AbortError) + handler.close() + } + }, { + text: "Browse", + primary: true, + onClick: async handler => { + const {error, status, value: files} = await SampleDialogs.nativeFileBrowser(false) + if (status === "rejected") { + if (!Errors.isAbort(error)) { + throw error + } + return + } + const file = files?.at(0) + if (isDefined(file)) { + const { + status, + value: sample + } = await Promises.tryCatch( + importer.importSample({ + uuid, + name: file.name, + arrayBuffer: await file.arrayBuffer() + })) + if (status === "resolved") { + handler.close() + resolve(sample) + } + } + } + }]}> +
{name}
+
+ ) + dialog.oncancel = () => reject(Errors.AbortError) + Surface.get().flyout.appendChild(dialog) + dialog.showModal() + return promise + } + + export const showEditSampleDialog = async (sample: AudioSample): Promise => { + if (sample.cloud) { + return Promise.reject("Cannot change sample from the cloud") + } + const {resolve, reject, promise} = Promise.withResolvers() + const inputName: HTMLInputElement = + inputName.select() + inputName.focus() + const inputBpm: HTMLInputElement = + const approve = () => { + const name = inputName.value + if (name.trim().length < 3) { + showInfoDialog({headline: "Invalid Name", message: "Must be at least 3 letters long."}) + return false + } + const bpm = parseFloat(inputBpm.value) + if (isNaN(bpm)) { + showInfoDialog({headline: "Invalid Bpm", message: "Must be a number."}) + return false + } + sample.name = name + sample.bpm = bpm + resolve(sample) + return true + } + const dialog: HTMLDialogElement = ( + { + if (approve()) { + handler.close() + } + } + }]}> +
+
Name:
+ {inputName} +
Bpm:
+ {inputBpm} +
+
+ ) + dialog.oncancel = () => reject(Errors.AbortError) + dialog.onkeydown = event => { + if (event.code === "Enter") { + if (approve()) { + dialog.close() + } + } + } + Surface.get().flyout.appendChild(dialog) + dialog.showModal() + return promise + } +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/browse/SampleLocation.tsx b/packages/app/studio/src/ui/browse/SampleLocation.tsx new file mode 100644 index 00000000..3f08d680 --- /dev/null +++ b/packages/app/studio/src/ui/browse/SampleLocation.tsx @@ -0,0 +1 @@ +export const enum SampleLocation {Cloud, Local} \ No newline at end of file diff --git a/packages/app/studio/src/ui/browse/SampleService.ts b/packages/app/studio/src/ui/browse/SampleService.ts new file mode 100644 index 00000000..1451064f --- /dev/null +++ b/packages/app/studio/src/ui/browse/SampleService.ts @@ -0,0 +1,90 @@ +import {AudioSample} from "@/audio/AudioSample" +import {HTMLSelection} from "@/ui/HTMLSelection" +import {asDefined, DefaultObservableValue, UUID} from "@opendaw/lib-std" +import {StudioService} from "@/service/StudioService" +import {AudioFileBox, AudioRegionBox} from "@opendaw/studio-boxes" +import {Modifier} from "../Modifier" +import {AudioUnitType} from "@opendaw/studio-enums" +import {Instruments} from "@/service/Instruments" +import {PPQN} from "@opendaw/lib-dsp" +import {ColorCodes} from "../mixer/ColorCodes" +import {IconSymbol} from "@opendaw/studio-adapters" +import {showApproveDialog, showInfoDialog, showProcessDialog} from "../components/dialogs" +import {AudioStorage} from "@/audio/AudioStorage" +import {Projects} from "@/project/Projects" +import {SampleApi} from "@/service/SampleApi" +import {Promises} from "@opendaw/lib-runtime" +import {AudioUnitBoxAdapter} from "@opendaw/studio-adapters" + +export class SampleService { + readonly #service: StudioService + readonly #selection: HTMLSelection + + constructor(service: StudioService, selection: HTMLSelection) { + this.#service = service + this.#selection = selection + } + + requestTapes(): void { + if (!this.#service.hasProjectSession) {return} + const project = this.#service.project + const {editing, boxGraph, boxAdapters, rootBoxAdapter} = project + editing.modify(() => { + const samples = this.#samples() + const startIndex = Modifier.pushAudioUnitsIndices(rootBoxAdapter, AudioUnitType.Instrument, samples.length) + samples.forEach(({uuid: uuidAsString, name, bpm, duration: durationInSeconds}, index) => { + const uuid = UUID.parse(uuidAsString) + const audioUnitBox = Modifier.createAudioUnit(project, AudioUnitType.Instrument, startIndex + index) + const audioUnitBoxAdapter = boxAdapters.adapterFor(audioUnitBox, AudioUnitBoxAdapter) + const audioFileBox = boxGraph.findBox(uuid) + .unwrapOrElse(() => AudioFileBox.create(boxGraph, uuid, box => { + box.fileName.setValue(name) + box.startInSeconds.setValue(0) + box.endInSeconds.setValue(durationInSeconds) + })) + const tape = Instruments.Tape + tape.createDevice(boxGraph, audioUnitBoxAdapter, name, IconSymbol.Tape) + const trackBox = tape.createTrack(boxGraph, audioUnitBoxAdapter) + const duration = Math.round(PPQN.secondsToPulses(durationInSeconds, bpm)) + AudioRegionBox.create(boxGraph, UUID.generate(), box => { + box.position.setValue(0) + box.duration.setValue(duration) + box.loopDuration.setValue(duration) + box.regions.refer(trackBox.regions) + box.hue.setValue(ColorCodes.forTrackType(trackBox.type.getValue())) + box.label.setValue(name) + box.file.refer(audioFileBox) + }) + }) + }) + } + + async deleteSelected() {return this.deleteSamples(...this.#samples())} + + async deleteSamples(...samples: ReadonlyArray) { + const processDialog = showProcessDialog("Checking Sample Usages", new DefaultObservableValue(0.5)) + const used = await Projects.listUsedSamples() + const online = new Set((await SampleApi.all()).map(({uuid}) => uuid)) + processDialog.close() + const {status} = await Promises.tryCatch(showApproveDialog({ + headline: "Remove Sample(s)?", + message: "This cannot be undone!", + approveText: "Remove" + })) + if (status === "rejected") {return} + for (const {uuid, name} of samples) { + const isUsed = used.has(uuid) + const isOnline = online.has(uuid) + if (isUsed && !isOnline) { + await showInfoDialog({headline: "Cannot Delete Sample", message: `${name} is used by a project.`}) + } else { + await AudioStorage.remove(UUID.parse(uuid)) + } + } + } + + #samples(): ReadonlyArray { + const selected = this.#selection.getSelected() + return selected.map(element => JSON.parse(asDefined(element.getAttribute("data-selection"))) as AudioSample) + } +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/browse/SampleView.sass b/packages/app/studio/src/ui/browse/SampleView.sass new file mode 100644 index 00000000..8037d280 --- /dev/null +++ b/packages/app/studio/src/ui/browse/SampleView.sass @@ -0,0 +1,46 @@ +component + display: grid + grid-template-columns: subgrid + grid-column: 1 / -1 + color: var(--color-dark) + align-items: center + + &.selected + color: var(--color-gray) + + > div.edit + display: flex + + > div.meta + display: grid + grid-template-columns: subgrid + grid-column: span 3 + padding-left: 3px + border-left: 3px transparent solid + + &:hover + border-left: 3px var(--color-blue) solid + cursor: grab + + &:active + cursor: grabbing + + &.buffering + color: var(--color-black) + background-color: var(--color-shadow) + + &.playing + color: var(--color-black) + background-color: var(--color-blue) + + &.error + color: var(--color-black) + background-color: var(--color-red) + + > span + overflow: hidden + white-space: nowrap + text-overflow: ellipsis + + &.right + text-align: right \ No newline at end of file diff --git a/packages/app/studio/src/ui/browse/SampleView.tsx b/packages/app/studio/src/ui/browse/SampleView.tsx new file mode 100644 index 00000000..6fead37a --- /dev/null +++ b/packages/app/studio/src/ui/browse/SampleView.tsx @@ -0,0 +1,105 @@ +import css from "./SampleView.sass?inline" +import {createElement} from "@opendaw/lib-jsx" +import {Exec, Lifecycle, Objects, UUID} from "@opendaw/lib-std" +import {SamplePlayback} from "@/service/SamplePlayback" +import {AudioSample} from "@/audio/AudioSample" +import {Icon} from "../components/Icon" +import {IconSymbol} from "@opendaw/studio-adapters" +import {SampleLocation} from "@/ui/browse/SampleLocation" +import {Button} from "../components/Button" +import {SampleDialogs} from "@/ui/browse/SampleDialogs" +import {AudioStorage} from "@/audio/AudioStorage" +import {ContextMenu} from "@/ui/ContextMenu" +import {MenuItem} from "@/ui/model/menu-item" +import {SampleService} from "@/ui/browse/SampleService" +import {Html} from "@opendaw/lib-dom" +import {Promises} from "@opendaw/lib-runtime" +import {DragAndDrop} from "@/ui/DragAndDrop" + +const className = Html.adoptStyleSheet(css, "Sample") + +type Construct = { + lifecycle: Lifecycle + sampleService: SampleService + sample: AudioSample + playback: SamplePlayback + location: SampleLocation + refresh: Exec +} + +export const SampleView = ({lifecycle, sampleService, sample, playback, location, refresh}: Construct) => { + const {name, duration, bpm} = sample + const labelName: HTMLElement = {name} + const labelBpm: HTMLElement = {bpm.toFixed(1)} + const editButton: Element = ( + + ) + const deleteButton: Element = ( + + ) + const metaElement: HTMLElement = ( +
playback.toggle(sample.uuid)}> + {labelName} + {labelBpm} + {duration.toFixed(1)} +
+ ) + const element: HTMLElement = ( +
playback.eject()} + draggable> + {metaElement} + {location === SampleLocation.Local && ( +
+ {editButton} + {deleteButton} +
+ )} +
+ ) + lifecycle.ownAll( + DragAndDrop.installSource(element, () => ({type: "sample", sample})), + ContextMenu.subscribe(element, collector => collector.addItems( + MenuItem.default({label: "Create Audio Track(s)"}) + .setTriggerProcedure(() => sampleService.requestTapes()), + MenuItem.default({label: "Delete Sample(s)", selectable: location === SampleLocation.Local}) + .setTriggerProcedure(async () => { + await sampleService.deleteSelected() + refresh() + })) + ), + playback.subscribe(sample.uuid, event => { + metaElement.classList.remove("buffering", "playing", "error") + metaElement.classList.add(event.type) + switch (event.type) { + case "idle": + break + case "buffering": + break + case "playing": + break + case "error": + break + } + }) + ) + return element +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/canvas/capturing.ts b/packages/app/studio/src/ui/canvas/capturing.ts new file mode 100644 index 00000000..2c08498d --- /dev/null +++ b/packages/app/studio/src/ui/canvas/capturing.ts @@ -0,0 +1,27 @@ +import {Nullable} from "@opendaw/lib-std" + +export interface Capturing {capture(localX: number, localY: number): Nullable} + +export class ElementCapturing { + readonly #element: Element + readonly #capturing: Capturing + + constructor(element: Element, capturing: Capturing) { + this.#element = element + this.#capturing = capturing + } + + get element(): Element {return this.#element} + get capturing(): Capturing {return this.#capturing} + + captureEvent(event: { clientX: number, clientY: number }): Nullable { + return this.capturePoint(event.clientX, event.clientY) + } + + capturePoint(clientX: number, clientY: number): Nullable { + const {left, top} = this.#element.getBoundingClientRect() + return this.captureLocalPoint(clientX - left, clientY - top) + } + + captureLocalPoint(x: number, y: number): Nullable {return this.#capturing.capture(x, y)} +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/canvas/painter.ts b/packages/app/studio/src/ui/canvas/painter.ts new file mode 100644 index 00000000..13dbccf5 --- /dev/null +++ b/packages/app/studio/src/ui/canvas/painter.ts @@ -0,0 +1,101 @@ +import {asDefined, Exec, Procedure, Terminable, Terminator} from "@opendaw/lib-std" +import {Scale} from "@/ui/canvas/scale" +import {AnimationFrame, Html} from "@opendaw/lib-dom" + +export class CanvasPainter implements Terminable { + readonly #rendering: CanvasRenderer + + constructor(canvas: HTMLCanvasElement, render: Procedure) { + this.#rendering = new CanvasRenderer(canvas, () => render(this)) + } + + readonly requestUpdate = (): void => {this.#rendering.requestUpdate()} + + get isResized(): boolean {return this.#rendering.isResized} + get devicePixelRatio(): number {return this.#rendering.devicePixelRatio} + get width(): number {return this.#rendering.width} + get height(): number {return this.#rendering.height} + get actualWidth(): number {return this.#rendering.actualWidth} + get actualHeight(): number {return this.#rendering.actualHeight} + get context(): CanvasRenderingContext2D {return this.#rendering.context} + terminate(): void {this.#rendering.terminate()} +} + +export class CanvasUnitPainter implements Terminable { + readonly #rendering: CanvasRenderer + + readonly #xAxis: Scale + readonly #yAxis: Scale + + constructor(canvas: HTMLCanvasElement, + xAxis: Scale, + yAxis: Scale, + render: Procedure) { + this.#rendering = new CanvasRenderer(canvas, () => render(this)) + this.#xAxis = xAxis + this.#yAxis = yAxis + } + + readonly requestUpdate = (): void => {this.#rendering.requestUpdate()} + + xToUnit(x: number): number {return this.#xAxis.normToUnit(x / this.#rendering.actualWidth)} + unitToX(value: number): number {return this.#xAxis.unitToNorm(value) * this.#rendering.actualWidth} + yToUnit(y: number): number {return this.#yAxis.normToUnit(1.0 - y / this.#rendering.actualHeight)} + unitToY(value: number): number {return (1.0 - this.#yAxis.unitToNorm(value)) * this.#rendering.actualHeight} + get context(): CanvasRenderingContext2D {return this.#rendering.context} + get isResized(): boolean {return this.#rendering.isResized} + get width(): number {return this.#rendering.width} + get height(): number {return this.#rendering.height} + get actualWidth(): number {return this.#rendering.actualWidth} + get actualHeight(): number {return this.#rendering.actualHeight} + terminate(): void {this.#rendering.terminate()} +} + +class CanvasRenderer implements Terminable { + readonly #lifecycle = new Terminator() + + readonly #context: CanvasRenderingContext2D + readonly #update: Exec + + #width: number = 0 + #height: number = 0 + #devicePixelRatio: number = 1 + #isResized: boolean = true + #needsUpdate: boolean = true + + constructor(canvas: HTMLCanvasElement, update: Exec) { + this.#context = asDefined(canvas.getContext("2d")) + this.#update = update + + this.#lifecycle.ownAll( + Html.watchResize(canvas, () => { + this.#isResized = true + this.#needsUpdate = true + }), + this.#lifecycle.own(AnimationFrame.add(() => { + const width = canvas.clientWidth + const height = canvas.clientHeight + if (!this.#needsUpdate || width === 0 || height === 0) {return} + this.#isResized = width !== this.#width || height !== this.#height || devicePixelRatio !== this.#devicePixelRatio + this.#width = width + this.#height = height + this.#devicePixelRatio = devicePixelRatio + canvas.width = width * devicePixelRatio + canvas.height = height * devicePixelRatio + this.#update() + this.#isResized = false + this.#needsUpdate = false + })) + ) + } + + get isResized(): boolean {return this.#isResized} + get devicePixelRatio(): number {return this.#devicePixelRatio} + get width(): number {return this.#width} + get height(): number {return this.#height} + get actualWidth(): number {return this.#width * this.#devicePixelRatio} + get actualHeight(): number {return this.#height * this.#devicePixelRatio} + get context(): CanvasRenderingContext2D {return this.#context} + requestUpdate(): void {this.#needsUpdate = true} + terminate(): void {this.#lifecycle.terminate()} +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/canvas/scale.ts b/packages/app/studio/src/ui/canvas/scale.ts new file mode 100644 index 00000000..598475c2 --- /dev/null +++ b/packages/app/studio/src/ui/canvas/scale.ts @@ -0,0 +1,48 @@ +import {unitValue} from "@opendaw/lib-std" + +export interface Scale { + unitToNorm(unit: number): unitValue + normToUnit(norm: unitValue): number +} + +export class LinearScale implements Scale { + readonly #min: number + readonly #max: number + readonly #range: number + readonly #rangeInv: number + + constructor(min: number, max: number) { + this.#min = min + this.#max = max + this.#range = max - min + this.#rangeInv = 1.0 / this.#range + } + + get min(): number {return this.#min} + get max(): number {return this.#max} + + normToUnit(norm: number): number {return this.#min + norm * this.#range} + unitToNorm(unit: number): number {return (unit - this.#min) * this.#rangeInv} +} + +export class LogScale implements Scale { + readonly #min: number + readonly #max: number + readonly #range: number + readonly #logMin: number + readonly #logRangeInv: number + + constructor(min: number, max: number) { + this.#min = min + this.#max = max + this.#range = Math.log(max / min) + this.#logMin = Math.log(min) + this.#logRangeInv = 1.0 / (Math.log(max) - this.#logMin) + } + + get min(): number {return this.#min} + get max(): number {return this.#max} + + normToUnit(norm: unitValue): number {return this.#min * Math.exp(norm * this.#range)} + unitToNorm(unit: number): unitValue {return (Math.log(unit) - this.#logMin) * this.#logRangeInv} +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/BoxDebugView.sass b/packages/app/studio/src/ui/components/BoxDebugView.sass new file mode 100644 index 00000000..d638382d --- /dev/null +++ b/packages/app/studio/src/ui/components/BoxDebugView.sass @@ -0,0 +1,54 @@ +component + font-size: 0.75rem + display: flex + flex-direction: column + row-gap: 0.5rem + + > h2 + white-space: nowrap + font-family: monospace + font-size: 0.75rem + text-transform: uppercase + opacity: 0.3 + border-bottom: 1px white solid + + div.fields + display: grid + grid-template-columns: auto auto 1fr + column-gap: 0.75rem + white-space: nowrap + + > div.type + color: var(--color-green) + grid-column: span 3 + + > div.field + margin-left: 0.25rem + display: grid + grid-template-columns: subgrid + grid-column: span 3 + + > span.key + text-align: right + opacity: 0.5 + + > div.value > div.target + font-family: monospace + font-size: 0.75rem + margin-top: 0.0625rem + + > div.value + color: var(--color-green) + + > div.target + color: var(--color-blue) + + &.clickable + cursor: pointer + + > div.object + display: flex + flex-direction: column + + span.pointer + color: var(--color-shadow) \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/BoxDebugView.tsx b/packages/app/studio/src/ui/components/BoxDebugView.tsx new file mode 100644 index 00000000..ac4f046a --- /dev/null +++ b/packages/app/studio/src/ui/components/BoxDebugView.tsx @@ -0,0 +1,74 @@ +import css from "./BoxDebugView.sass?inline" +import {UUID} from "@opendaw/lib-std" +import {ArrayField, Box, Field, ObjectField, PointerField, PrimitiveField, Vertex} from "@opendaw/lib-box" +import {createElement, JsxValue, replaceChildren} from "@opendaw/lib-jsx" +import {Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "BoxDebugView") + +export type Construct = { + box: Box +} + +export const BoxDebugView = ({box}: Construct) => { + const content =
+ const uuidElement: HTMLElement =

{UUID.toString(box.address.uuid)}

+ const incoming = (vertex: Vertex) => `← ${(vertex.pointerHub.incoming().length)}` + const render = (vertex: Vertex): JsxValue => ( +
+
+ + {vertex.isBox() ? vertex.name : vertex.isField() ? vertex.fieldName : ""} + {incoming(vertex)} +
+ {Array.from(vertex.fields()).map(field => { + return ( +
+ {field.fieldKey} + {field.fieldName} + { + field.accept({ + visitPrimitiveField: (field: PrimitiveField): JsxValue => ( +
+ {`${field.getValue()}`} {incoming(field)} +
+ ), + visitPointerField: (field: PointerField): JsxValue => ( + field.targetVertex.match({ + none: () =>
→ unset
, + some: vertex => ( +
{ + uuidElement.textContent = UUID.toString(vertex.box.address.uuid) + replaceChildren(content, render(vertex.box)) + }}> + {`→ ${vertex.box.name}/${vertex.address.fieldKeys}`} +
+ ) + }) + ), + visitObjectField: (field: ObjectField): JsxValue => ( +
+ {render(field)} +
+ ), + visitArrayField: (field: ArrayField): JsxValue => ( + N:{field.size()}), + visitField: (field: Field): JsxValue => ( +
{incoming(field)}
) + }) + } +
+ ) + })} +
+ ) + replaceChildren(content, render(box)) + return ( +
+ {uuidElement} + {content} +
+ ) +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/BoxesDebugView.sass b/packages/app/studio/src/ui/components/BoxesDebugView.sass new file mode 100644 index 00000000..9caf7bc6 --- /dev/null +++ b/packages/app/studio/src/ui/components/BoxesDebugView.sass @@ -0,0 +1,47 @@ +component + font-size: 0.75rem + display: flex + flex-direction: column + row-gap: 0.5rem + overflow: hidden + + > div.boxes + display: flex + flex-direction: column + display: grid + grid-template-columns: 1fr auto auto auto + column-gap: 0.5rem + + > div.title + display: grid + grid-template-columns: subgrid + grid-column: span 4 + color: var(--color-green) + margin-bottom: 0.125rem + + > div.scrollable + display: grid + grid-template-columns: subgrid + grid-column: span 4 + overflow-y: scroll + align-content: start + height: 14rem + + > div.box + display: grid + grid-template-columns: subgrid + grid-column: span 4 + color: var(--color-dark) + cursor: pointer + + &:hover + color: white + + > span.dependencies + justify-self: center + + > span.uuid + white-space: nowrap + font-size: 0.625rem + line-height: 0.875rem + font-family: monospace \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/BoxesDebugView.tsx b/packages/app/studio/src/ui/components/BoxesDebugView.tsx new file mode 100644 index 00000000..9c93ccec --- /dev/null +++ b/packages/app/studio/src/ui/components/BoxesDebugView.tsx @@ -0,0 +1,38 @@ +import css from "./BoxesDebugView.sass?inline" +import {NumberComparator, UUID} from "@opendaw/lib-std" +import {createElement} from "@opendaw/lib-jsx" +import {BoxGraph} from "@opendaw/lib-box" +import {showDebugBoxDialog} from "@/ui/components/dialogs.tsx" +import {Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "BoxesDebugView") + +type Construct = { + boxGraph: BoxGraph +} + +export const BoxesDebugView = ({boxGraph}: Construct) => { + return ( +
+

Boxes

+
+
+ Name + In + Out + ID +
+
+ {boxGraph.boxes().toSorted((a, b) => NumberComparator(a.creationIndex, b.creationIndex)).map(box => ( +
showDebugBoxDialog(box)}> + {box.name} + {box.incomingEdges().length} + {box.outgoingEdges().length} + {UUID.toString(box.address.uuid)} +
+ ))} +
+
+
+ ) +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Button.tsx b/packages/app/studio/src/ui/components/Button.tsx new file mode 100644 index 00000000..8553642f --- /dev/null +++ b/packages/app/studio/src/ui/components/Button.tsx @@ -0,0 +1,22 @@ +import {Lifecycle, Procedure} from "@opendaw/lib-std" +import {createElement, JsxValue} from "@opendaw/lib-jsx" +import {Appearance, ButtonCheckboxRadio} from "@/ui/components/ButtonCheckboxRadio" +import {Html} from "@opendaw/lib-dom" + +export type ButtonParameters = { + lifecycle: Lifecycle + onClick: Procedure + style?: Partial + appearance?: Appearance +} + +export const Button = ({lifecycle, onClick, style, appearance}: ButtonParameters, children: JsxValue) => { + const id = Html.nextID() + const input: HTMLInputElement = + return ( + + {input} + + + ) +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/ButtonCheckboxRadio.sass b/packages/app/studio/src/ui/components/ButtonCheckboxRadio.sass new file mode 100644 index 00000000..a5406312 --- /dev/null +++ b/packages/app/studio/src/ui/components/ButtonCheckboxRadio.sass @@ -0,0 +1,81 @@ +@use "@/mixins" + +component + --color: var(--color-shadow) + --color-active: var(--color-blue) + + appearance: none + margin: 0 + min-width: 1em + min-height: 1em + flex: 0 0 auto + display: flex + place-items: center + outline: none + border: none + background: none + color: var(--color) + font: inherit + + @include mixins.controllable + + &.active + color: var(--color-active) + + > label + padding: 0 0.25em + min-width: 1.5em + height: 1.5em + display: flex + place-items: center + place-content: center + pointer-events: all + position: relative + + * + pointer-events: none + + > input + display: none + + &:checked + label, &[type="button"]:active + label + color: var(--color-active) + + &.framed + > input:not([type="radio"]) + label + border-radius: 0.25em + border: 0.5px solid var(--color) + box-shadow: 0 0 3px -1px var(--color) + + > span + padding: 0 0.5em + + &:after + content: "" + position: absolute + width: 100% + height: 100% + border-radius: inherit + background-color: var(--color) + opacity: 0.04 + pointer-events: none + + &.landscape + > label + width: 1.625em + + > input:checked + label, > input[type="button"]:active + label + color: var(--color-active) + border-radius: 0.25em + border: 0.5px solid var(--color-active) + box-shadow: 0 0 3px -1px var(--color-active) + + &:after + content: "" + position: absolute + width: 100% + height: 100% + border-radius: inherit + background-color: var(--color-active) + opacity: 0.08 + pointer-events: none \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/ButtonCheckboxRadio.tsx b/packages/app/studio/src/ui/components/ButtonCheckboxRadio.tsx new file mode 100644 index 00000000..5b370b45 --- /dev/null +++ b/packages/app/studio/src/ui/components/ButtonCheckboxRadio.tsx @@ -0,0 +1,70 @@ +import css from "./ButtonCheckboxRadio.sass?inline" +import {isDefined, Lifecycle} from "@opendaw/lib-std" +import {createElement, JsxValue} from "@opendaw/lib-jsx" +import {TextTooltip} from "@/ui/surface/TextTooltip.tsx" +import {CssUtils, Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "ButtonCheckboxRadio") + +export type Appearance = { + color?: string + activeColor?: string + framed?: boolean + landscape?: boolean + tooltip?: string + cursor?: CssUtils.Cursor +} + +type Construct = { + lifecycle: Lifecycle + dataClass: string + style?: Partial + className?: string + appearance?: Appearance +} + +export const ButtonCheckboxRadio = ({ + lifecycle, + dataClass, + style, + className: externalClassName, + appearance + }: Construct, children: JsxValue) => { + const wrapper: HTMLElement = ( +
{ + self.getSelection()?.removeAllRanges() + event.preventDefault() + event.stopPropagation() + }}> + {children} +
+ ) + + if (appearance?.tooltip) { + lifecycle.own(TextTooltip.simple(wrapper, () => { + const clientRect = wrapper.getBoundingClientRect() + return { + clientX: clientRect.left, + clientY: clientRect.bottom + 8, + text: appearance.tooltip ?? "" + } + })) + } + + if (isDefined(appearance?.color)) { + wrapper.style.setProperty("--color", appearance.color) + } + if (isDefined(appearance?.activeColor)) { + wrapper.style.setProperty("--color-active", appearance.activeColor) + } + if (isDefined(style)) { + Object.assign(wrapper.style, style) + } + return wrapper +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Checkbox.tsx b/packages/app/studio/src/ui/components/Checkbox.tsx new file mode 100644 index 00000000..9f2601ff --- /dev/null +++ b/packages/app/studio/src/ui/components/Checkbox.tsx @@ -0,0 +1,38 @@ +import {Lifecycle, MutableObservableValue} from "@opendaw/lib-std" +import {createElement, JsxValue} from "@opendaw/lib-jsx" +import {Appearance, ButtonCheckboxRadio} from "@/ui/components/ButtonCheckboxRadio.tsx" +import {Html} from "@opendaw/lib-dom" + +type Construct = { + lifecycle: Lifecycle + model: MutableObservableValue + style?: Partial + className?: string + appearance?: Appearance +} + +export const Checkbox = ({lifecycle, model, style, className, appearance}: Construct, children: JsxValue) => { + const id = Html.nextID() + const input: HTMLInputElement = ( + { + model.setValue(input.checked) + input.checked = model.getValue() + }} + checked={model.getValue()}/> + ) + lifecycle.own(model.subscribe(model => { + input.checked = model.getValue() + })) + return ( + + {input} + + + ) +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/ControlIndicator.tsx b/packages/app/studio/src/ui/components/ControlIndicator.tsx new file mode 100644 index 00000000..548094e8 --- /dev/null +++ b/packages/app/studio/src/ui/components/ControlIndicator.tsx @@ -0,0 +1,17 @@ +import {Lifecycle} from "@opendaw/lib-std" +import {AutomatableParameterFieldAdapter} from "@opendaw/studio-adapters" +import {createElement, Group, JsxValue} from "@opendaw/lib-jsx" + +type Construct = { + lifecycle: Lifecycle + parameter: AutomatableParameterFieldAdapter +} + +export const ControlIndicator = ({lifecycle, parameter}: Construct, children: JsxValue) => { + const element: HTMLElement = {children} + lifecycle.own(parameter.catchupAndSubscribeControlSources({ + onControlSourceAdd: () => element.classList.add("automated"), + onControlSourceRemove: () => element.classList.remove("automated") + })) + return element +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Dialog.sass b/packages/app/studio/src/ui/components/Dialog.sass new file mode 100644 index 00000000..3c394062 --- /dev/null +++ b/packages/app/studio/src/ui/components/Dialog.sass @@ -0,0 +1,34 @@ +@use "@/mixins" + +component + @include mixins.floating(false) + flex-direction: column + min-width: 25em + max-width: 50% + padding: 2em + + &.error::backdrop + background: rgba(255, 0, 0, 0.04) + + > h1 + display: flex + flex-direction: row + align-items: center + column-gap: 0.25em + white-space: nowrap + overflow: hidden + text-overflow: ellipsis + + > footer + padding-top: 1em + margin-top: auto + display: flex + flex-direction: row + justify-content: end + column-gap: 1em + + &:empty + display: none + + > [data-class='button'] label + min-width: 4em \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Dialog.tsx b/packages/app/studio/src/ui/components/Dialog.tsx new file mode 100644 index 00000000..4d4e233e --- /dev/null +++ b/packages/app/studio/src/ui/components/Dialog.tsx @@ -0,0 +1,72 @@ +import css from "./Dialog.sass?inline" +import {Exec, Procedure, safeExecute, Terminator} from "@opendaw/lib-std" +import {createElement, JsxValue} from "@opendaw/lib-jsx" +import {Button} from "@/ui/components/Button.tsx" +import {Icon} from "@/ui/components/Icon.tsx" +import {Colors} from "@/ui/Colors.ts" +import {IconSymbol} from "@opendaw/studio-adapters" +import {Events, Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "Dialog") + +export interface DialogHandler { + close(): void +} + +export type Button = { + text: string + onClick: Procedure + primary?: boolean +} + +type Construct = { + headline: string + icon: IconSymbol + onCancel?: Exec + cancelable?: boolean + buttons?: ReadonlyArray + ))} + + + ) + if (cancelable === false) { + dialog.oncancel = (event) => event.preventDefault() + } + dialog.onkeydown = (event) => { + if (!(cancelable === true && event.key === "Escape") && !Events.isTextInput(event.target)) { + if (event.code !== "F12") { + event.preventDefault() + } + event.stopPropagation() + } + } + dialog.onclose = () => { + lifecycle.terminate() + if (dialog.returnValue === "") { + safeExecute(onCancel) + } + dialog.remove() + } + return dialog +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/FlexSpacer.tsx b/packages/app/studio/src/ui/components/FlexSpacer.tsx new file mode 100644 index 00000000..56939483 --- /dev/null +++ b/packages/app/studio/src/ui/components/FlexSpacer.tsx @@ -0,0 +1,5 @@ +import {createElement} from "@opendaw/lib-jsx" + +export const FlexSpacer = ({pixels}: { pixels?: number }) => ( +
+) \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/FloatingTextInput.sass b/packages/app/studio/src/ui/components/FloatingTextInput.sass new file mode 100644 index 00000000..f987af28 --- /dev/null +++ b/packages/app/studio/src/ui/components/FloatingTextInput.sass @@ -0,0 +1,31 @@ +@use "@/mixins" + +component + @include mixins.floating + top: -1rem + left: -0.25rem + height: 2rem + align-items: center + + &:after + content: attr(unit) + padding: 0 0.5em 0 0 + opacity: 0.25 + + > input + color: inherit + font-size: 0.75rem + font-weight: inherit + font-family: inherit + padding: 0 0.5em + appearance: none + border: none + background: none + outline: none + width: 7em + max-width: 11em + + &[unit] > input + text-align: right + width: 6em + max-width: 8em \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/FloatingTextInput.tsx b/packages/app/studio/src/ui/components/FloatingTextInput.tsx new file mode 100644 index 00000000..8d270015 --- /dev/null +++ b/packages/app/studio/src/ui/components/FloatingTextInput.tsx @@ -0,0 +1,50 @@ +import css from "./FloatingTextInput.sass?inline" +import {isDefined, Point} from "@opendaw/lib-std" +import {createElement} from "@opendaw/lib-jsx" +import {Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "TextInput") + +type Construct = { + resolvers?: PromiseWithResolvers + position?: Point + value?: boolean | number | string + unit?: string +} + +export const FloatingTextInput = ({resolvers, position, value, unit}: Construct) => { + const inputField: HTMLInputElement = () + requestAnimationFrame(() => { + inputField.select() + inputField.focus() + }) + if (isDefined(resolvers)) { + const {reject, resolve} = resolvers + const remove = () => { + inputField.onblur = null + inputField.onkeydown = null + element.remove() + } + inputField.onblur = () => { + remove() + reject("cancel") + } + inputField.onkeydown = (event: KeyboardEvent) => { + if (event.key.toLowerCase() === "enter") { + const value = inputField.value + remove() + resolve(value) + } + } + } + const element: HTMLElement = ( +
+ {inputField} +
+ ) + return element +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Icon.sass b/packages/app/studio/src/ui/components/Icon.sass new file mode 100644 index 00000000..f60d04e7 --- /dev/null +++ b/packages/app/studio/src/ui/components/Icon.sass @@ -0,0 +1,5 @@ +component + width: 1em + height: 1em + min-width: 1em + min-height: 1em \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Icon.tsx b/packages/app/studio/src/ui/components/Icon.tsx new file mode 100644 index 00000000..119c07ce --- /dev/null +++ b/packages/app/studio/src/ui/components/Icon.tsx @@ -0,0 +1,30 @@ +import css from "./Icon.sass?inline" +import {Lifecycle, ObservableValue} from "@opendaw/lib-std" +import {createElement} from "@opendaw/lib-jsx" +import {IconSymbol} from "@opendaw/studio-adapters" +import {Html} from "@opendaw/lib-dom" + +const defaultClassName = Html.adoptStyleSheet(css, "Icon") + +export const Icon = ({symbol, className, style}: { + symbol: IconSymbol, + className?: string, + style?: Partial +}) => ( + + + +) + +export const IconCartridge = ({lifecycle, symbol, className, style}: { + lifecycle: Lifecycle, + symbol: ObservableValue, + className?: string, + style?: Partial +}) => { + const use: SVGUseElement = + const updater = () => use.href.baseVal = `#${IconSymbol.toName(symbol.getValue())}` + updater() + lifecycle.own(symbol.subscribe(updater)) + return ({use}) +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/InsertMarker.sass b/packages/app/studio/src/ui/components/InsertMarker.sass new file mode 100644 index 00000000..a30dfc39 --- /dev/null +++ b/packages/app/studio/src/ui/components/InsertMarker.sass @@ -0,0 +1,10 @@ +component + flex: 0 0 20px + height: 100% + display: flex + justify-content: center + color: var(--color-red) + filter: drop-shadow(0px 4px 1px rgba(black, 0.5)) + top: -0.25em + position: relative + pointer-events: none \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/InsertMarker.tsx b/packages/app/studio/src/ui/components/InsertMarker.tsx new file mode 100644 index 00000000..9dc820f9 --- /dev/null +++ b/packages/app/studio/src/ui/components/InsertMarker.tsx @@ -0,0 +1,15 @@ +import css from "./InsertMarker.sass?inline" +import {Html} from "@opendaw/lib-dom" +import {IconSymbol} from "@opendaw/studio-adapters" +import {Icon} from "@/ui/components/Icon" +import {createElement} from "@opendaw/lib-jsx" + +const className = Html.adoptStyleSheet(css, "InsertMarker") + +export const InsertMarker = () => { + return ( +
+ +
+ ) +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Knob.sass b/packages/app/studio/src/ui/components/Knob.sass new file mode 100644 index 00000000..361a033a --- /dev/null +++ b/packages/app/studio/src/ui/components/Knob.sass @@ -0,0 +1,16 @@ +@use "@/mixins" + +component + min-width: 1.75em + max-width: 1.75em + min-height: 1.75em + max-height: 1.75em + place-self: center + align-self: center + justify-content: center + + @include mixins.controllable + + .light + opacity: 0.25 + filter: blur(3px) \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Knob.tsx b/packages/app/studio/src/ui/components/Knob.tsx new file mode 100644 index 00000000..81491e3d --- /dev/null +++ b/packages/app/studio/src/ui/components/Knob.tsx @@ -0,0 +1,92 @@ +import {isDefined, Lifecycle, Parameter, PI_HALF, TAU, unitValue} from "@opendaw/lib-std" +import {createElement} from "@opendaw/lib-jsx" +import css from "./Knob.sass?inline" +import {Html, Svg} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "knob") + +export const DefaultDesign: Readonly = Object.freeze({ + radius: 20, + trackWidth: 1.5, + angleOffset: Math.PI / 5.0, + indicator: [0.3, 0.6], + indicatorWidth: 2.5 +} satisfies Design) + +export const TinyDesign: Readonly = Object.freeze({ + radius: 20, + trackWidth: 1.5, + angleOffset: Math.PI / 5.0, + indicator: [0.2, 0.66], + indicatorWidth: 2.5 +} satisfies Design) + +type Design = { + readonly radius: number // defines the size + readonly trackWidth: number // thickness of the arc + readonly angleOffset: number // positive & smaller than PI/2 + readonly indicator: [unitValue, unitValue] // allows floating indicator + readonly indicatorWidth: number +} + +type Construct = { + lifecycle: Lifecycle + value: Parameter + anchor: unitValue + color?: string + design?: Design +} + +export const Knob = ({lifecycle, value, anchor, color, design}: Construct) => { + const {radius, trackWidth, angleOffset, indicator: [min, max], indicatorWidth} = design ?? DefaultDesign + + const trackRadius = Math.floor(radius - trackWidth * 0.5) + const angleMin = PI_HALF + angleOffset + const angleMax = PI_HALF - angleOffset + const angleRange = (TAU - angleOffset * 2.0) + const angleAnc = angleMin + anchor * angleRange + const width = radius * 2.0 + const height = radius + Math.ceil(Math.cos(angleOffset) * radius) + const paths = [ + , + + ] + const update = (unitValue: unitValue) => { + const angleVal = angleMin + unitValue * angleRange + const aMinValAnc = Math.min(angleVal, angleAnc) + const aMaxValAnc = Math.max(angleVal, angleAnc) + const [value, line] = paths + value.setAttribute("d", Svg.pathBuilder() + .circleSegment(0, 0, trackRadius, aMinValAnc - 1.0 / trackRadius, aMaxValAnc + 1.0 / trackRadius) + .get()) + const cos = Math.cos(angleVal) * trackRadius + const sin = Math.sin(angleVal) * trackRadius + line.setAttribute("d", Svg.pathBuilder() + .moveTo(cos * min, sin * min) + .lineTo(cos * max, sin * max) + .get()) + } + const svg: SVGSVGElement = ( + + + + + + {paths} + + + ) + if (isDefined(color)) { + svg.style.color = color + } + lifecycle.own(value.subscribe(model => update(model.getControlledUnitValue()))) + update(value.getControlledUnitValue()) + return svg +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Menu.sass b/packages/app/studio/src/ui/components/Menu.sass new file mode 100644 index 00000000..cc050396 --- /dev/null +++ b/packages/app/studio/src/ui/components/Menu.sass @@ -0,0 +1,125 @@ +@use "@/mixins" +@use "@/colors" + +$ACTIVE: hsl(210, 90%, 30%) +$PARENT: hsla(210, 90%, 30%, 0.5) + +component + @include mixins.floating + position: fixed + pointer-events: all + flex-direction: column + border-collapse: collapse + color: var(--color-bright) + min-width: 12em + + &:after + content: "" + top: -4px + left: -4px + width: calc(100% + 8px) + height: calc(100% + 8px) + position: absolute + background-color: transparent + z-index: -1 + + &:focus > div.container > div.item.selected > div.default + color: white + background-color: $ACTIVE + + &.overflowing + max-height: calc(100vh - 1em) + + > div.scroll + display: flex + + > div.container + display: flex + flex-direction: column + overflow: hidden + pointer-events: all + + > div.item + flex: 1 0 2.25em + display: flex + padding: 0 0.5em + pointer-events: inherit + + &.selected > div.default + color: white + background-color: $PARENT + + &:hover > div.default + color: white + background-color: $ACTIVE + + > div.shortcut + opacity: inherit + + &.has-children > div.default > svg.children-icon + display: flex + + &:not(.selectable) + color: var(--color-dark) + pointer-events: none + + > div.default + width: 100% + display: flex + align-items: center + border-radius: 0.25em + padding: 0 0.5em 0 0.25em + white-space: nowrap + + &.checked > svg.check-icon + visibility: visible + + > svg.check-icon, svg.children-icon + pointer-events: none + fill: none + stroke: currentColor + stroke-width: 1.5 + stroke-linecap: round + width: 1em + height: 1em + + > svg.check-icon + visibility: hidden + + > svg.children-icon + display: none + + > div.label + pointer-events: none + flex: 1 + margin: 0 3em 0 0.25em + + > div.shortcut + display: flex + opacity: 0.3 + pointer-events: none + margin: 0 + justify-content: flex-end + + > span + flex: 0 0 1em + text-align: center + + > hr + margin: 0.375em 0.75em + width: calc(100% - 1.5em) + height: 0 + border: 0 + border-top: 1px solid rgba(white, 0.07) + pointer-events: none + + > div.scroll + display: none + align-items: center + justify-content: center + flex: 1 0 1.5em + width: 100% + color: var(--color-gray) + + &:hover + color: var(--color-bright) \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/Menu.tsx b/packages/app/studio/src/ui/components/Menu.tsx new file mode 100644 index 00000000..f823692e --- /dev/null +++ b/packages/app/studio/src/ui/components/Menu.tsx @@ -0,0 +1,271 @@ +import css from "./Menu.sass?inline" +import {DefaultMenuData, MenuItem} from "@/ui/model/menu-item.ts" +import {createElement, Frag} from "@opendaw/lib-jsx" +import {int, isDefined, Lifecycle, Nullable, Option, panic, Terminable, Terminator} from "@opendaw/lib-std" +import {Icon} from "@/ui/components/Icon.tsx" +import {Surface} from "@/ui/surface/Surface.tsx" +import {IconSymbol} from "@opendaw/studio-adapters" +import {AnimationFrame, Events, Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "menu") + +export const DefaultMenuDataElement = ({data}: { data: DefaultMenuData }) => ( +
+ + + + {data.icon && } +
{data.label}
+
{[...data.shortcut ?? []].map(s => {s})}
+ + + +
+) + +type MenuHtmlStructure = { + element: HTMLElement + scrollUp: HTMLElement + container: HTMLElement + scrollDown: HTMLElement +} + +export class Menu implements Terminable, Lifecycle { + static create(item: MenuItem, groupId?: string): Menu {return new Menu(Option.None, item, groupId ?? "")} + + static Padding = 4 // this is the invisible increase of the hitarea to have seamless connection to the source + static MIN_TIME_MS = 250 // if the menu is placed under the pointer, we avoid an accidental click + + readonly #terminator: Terminator + readonly #parent: Option + readonly #item: MenuItem + readonly #groupId: string + + readonly #element: HTMLElement + readonly #scrollUp: HTMLElement + readonly #container: HTMLElement + readonly #scrollDown: HTMLElement + readonly #openTime: number + + #childMenu: Option = Option.None + + #x: int = 0 + #y: int = 0 + + private constructor(parent: Option, item: MenuItem, groupId: string) { + this.#terminator = new Terminator() + + this.#parent = parent + this.#item = item + this.#groupId = groupId + + const {element, scrollUp, container, scrollDown} = this.#createHtml() + this.#element = element + this.#scrollUp = scrollUp + this.#container = container + this.#scrollDown = scrollDown + this.#openTime = Date.now() + + this.#element.onblur = (event) => { + const related = event.relatedTarget + if (related === null) { + // lost focus + this.root.terminate() + } else if (related instanceof HTMLElement && !isDefined(related.getAttribute("data-close-on-blur"))) { + // an unrelated element has been focussed + this.root.terminate() + } + } + } + + own(terminable: T): T {return this.#terminator.own(terminable)} + ownAll(...terminables: Array): void {this.#terminator.ownAll(...terminables)} + spawn(): Terminator {return this.#terminator.spawn()} + + get root(): Menu {return this.#parent.isEmpty() ? this : this.#parent.unwrap().root} + get element(): HTMLElement {return this.#element} + + moveTo(x: int, y: int): void { + this.#x = x | 0 + this.#y = y | 0 + this.#element.style.transform = `translate(${this.#x}px, ${this.#y}px)` + } + + attach(parentElement: Element): void { + parentElement.appendChild(this.#element) + const {right, bottom, width, height} = this.#element.getBoundingClientRect() + const owner = Surface.get(parentElement).owner + const innerWidth = owner.innerWidth + const innerHeight = owner.innerHeight + const offset = parseFloat(getComputedStyle(this.#element).fontSize) / 4 + if (right > innerWidth) { + this.#parent.match({ + none: () => this.moveTo(innerWidth - width - offset, this.#y), + some: () => this.moveTo(offset - width, this.#y) + }) + } + if (height > innerHeight) { + this.#setupScrolling() + this.moveTo(this.#x, -parentElement.getBoundingClientRect().top) + } else if (bottom > innerHeight) { + this.moveTo(this.#x, this.#y - bottom + innerHeight) + } + AnimationFrame.once(() => this.#element.focus()) + } + + terminate(): void { + this.#childMenu.ifSome(menu => menu.terminate()) + this.#childMenu = Option.None + this.#changeSelected() + this.#element.onblur = null + this.#element.remove() + this.#item.removeRuntimeChildren() + this.#terminator.terminate() + } + + #onPointerEnter(item: MenuItem, itemElement: HTMLElement): void { + this.#changeSelected(itemElement) + if (this.#childMenu.nonEmpty()) { + if (item.hasChildren && this.#childMenu.unwrap().#item === item) { + // no need to remove and recreate the same pull-down + return + } + this.#closeChildMenu() + } + if (item.hasChildren) { + const itemRect = itemElement.getBoundingClientRect() + const elementRect = this.#element.getBoundingClientRect() + const childMenu = new Menu(Option.wrap(this), item, this.#groupId) + const em = parseFloat(getComputedStyle(this.#element).fontSize) + childMenu.moveTo(elementRect.width - em / 4, (itemRect.top - elementRect.top) - em) + childMenu.attach(this.#element) + this.#childMenu = Option.wrap(childMenu) + } + } + + #onPointerLeave(_item: MenuItem, itemElement: HTMLElement, event: PointerEvent): void { + if (this.#isChild(event.relatedTarget as Node)) {return} + itemElement.classList.remove("selected") + this.#closeChildMenu() + } + + #onPointerUp(item: MenuItem, _itemElement: HTMLElement, event: PointerEvent): void { + event.preventDefault() + if (this.#childMenu.isEmpty() && this.#openTime + 100 < Date.now()) { + this.root.terminate() + item.trigger() + } + } + + #changeSelected(element: Nullable = null) { + this.#element.querySelector(".selected")?.classList.remove("selected") + element?.classList.add("selected") + } + + #isChild(node: Nullable): boolean { + if (this.#childMenu.isEmpty()) { + return false + } + const childMenu = this.#childMenu.unwrap() + let target: Nullable = node + while (null !== target) { + if (target === this.#element) {return false} + if (target === childMenu.#element) {return true} + target = target.parentNode + } + return false + } + + #closeChildMenu(): void { + if (this.#childMenu.isEmpty()) {return} + this.#element.focus() + this.#childMenu.unwrap().terminate() + this.#childMenu = Option.None + } + + #createHtml(): MenuHtmlStructure { + const scrollUp =
+ const scrollDown =
+ const container =
+ { + this.#item.collectChildren() + .filter((item: MenuItem) => !item.hidden) + .map((item: MenuItem) => { + item.open() + const hasChildren = item.hasChildren + const selectable = item.selectable + const itemElement: HTMLElement = ( +
+ {(() => { + if (item.data === undefined) { + return panic("") + } else if (item.data.type === "default") { + return + } + })()} +
+ ) + if (selectable) { + itemElement.classList.add("selectable") + } + if (hasChildren) { + itemElement.classList.add("has-children") + } + const now = Date.now() + itemElement.onpointerenter = () => this.#onPointerEnter(item, itemElement) + itemElement.onpointerleave = (event: PointerEvent) => this.#onPointerLeave(item, itemElement, event) + itemElement.onpointerup = (event: PointerEvent) => { + if (Date.now() - now < Menu.MIN_TIME_MS) {return} + this.#onPointerUp(item, itemElement, event) + } + return ( + + {item.separatorBefore &&
} + {itemElement} +
+ ) + }) + } +
+ const element = ( + + ) + return {element, scrollUp, container, scrollDown} + } + + #setupScrolling(): void { + const scroll = (direction: int) => this.#container.scrollTop += direction * this.#computeEmInPixels() / 3 + this.element.classList.add("overflowing") + this.#terminator.own(Events.subscribe(this.element, "wheel", (event: WheelEvent) => { + event.preventDefault() + scroll(Math.sign(event.deltaY) * this.#computeEmInPixels() * 1.5) + }, {passive: false})) + const setup = (button: HTMLElement, direction: number) => { + const scrolling = new Terminator() + button.onpointerenter = () => { + if (!this.#canScroll(direction)) {return} + scrolling.own(AnimationFrame.add(() => { + if (this.#canScroll(direction)) { + scroll(direction) + } else { + scrolling.terminate() + } + })) + button.onpointerleave = () => scrolling.terminate() + } + } + setup(this.#scrollUp, -1) + setup(this.#scrollDown, 1) + } + + #canScroll(direction: number): boolean { + return (0 > direction && this.#container.scrollTop > 0) + || (0 < direction && this.#container.scrollTop < this.#container.scrollHeight - this.#container.clientHeight) + } + + #computeEmInPixels(): number {return parseInt(getComputedStyle(this.#element).fontSize)} +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/MenuButton.sass b/packages/app/studio/src/ui/components/MenuButton.sass new file mode 100644 index 00000000..74443aed --- /dev/null +++ b/packages/app/studio/src/ui/components/MenuButton.sass @@ -0,0 +1,60 @@ +component + --color-active: var(--color) + + appearance: none + margin: 0 + padding: 0 + min-width: 1.5em + flex: 0 0 auto + display: flex + place-items: center + place-content: center + outline: none + border: none + background: none + color: var(--color) + font: inherit + pointer-events: all + + > * + pointer-events: none + + .disabled & + opacity: 0.3 + pointer-events: none + + &.stretch + flex: 1 0 auto + + &.pointer + cursor: pointer + + &.tiny-triangle:after + content: "▾" + font-size: 0.5em + position: relative + top: 0.75em + left: 0.125em + + > label + display: flex + align-items: center + justify-content: space-between + font-size: 0.75em + column-gap: 0.25em + + &.framed + border-radius: 0.25em + border: 0.5px solid var(--color) + box-shadow: 0 0 3px -1px var(--color) + min-height: 1.5em + + > label + padding: 0 0.25em 0 0.5em + + &.active + color: var(--color-active) + + &.framed + border: 0.5px solid var(--color-active) + box-shadow: 0 0 3px -1px var(--color-active) \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/MenuButton.tsx b/packages/app/studio/src/ui/components/MenuButton.tsx new file mode 100644 index 00000000..f409d7a9 --- /dev/null +++ b/packages/app/studio/src/ui/components/MenuButton.tsx @@ -0,0 +1,79 @@ +import css from "./MenuButton.sass?inline" +import {createElement, JsxValue} from "@opendaw/lib-jsx" +import {MenuItem} from "@/ui/model/menu-item.ts" +import {Menu} from "@/ui/components/Menu.tsx" +import {isDefined, Option} from "@opendaw/lib-std" +import {Surface} from "@/ui/surface/Surface.tsx" +import {Html} from "@opendaw/lib-dom" + +const className = Html.adoptStyleSheet(css, "MenuButton") + +type Appearance = { + color?: string + activeColor?: string + framed?: boolean + tinyTriangle?: boolean + tooltip?: string +} + +type Construct = { + root: MenuItem + style?: Partial + appearance?: Appearance + horizontal?: "left" | "right" + stretch?: boolean + pointer?: boolean + groupId?: string +} + +export const MenuButton = + ({root, style, appearance, horizontal, stretch, pointer, groupId}: Construct, children: JsxValue) => { + let current: Option = Option.None + const button: HTMLButtonElement = ( + + ) + if (isDefined(appearance?.color)) { + button.style.setProperty("--color", appearance.color) + } + if (isDefined(appearance?.activeColor)) { + button.style.setProperty("--color-active", appearance.activeColor) + } + if (isDefined(style)) { + Object.assign(button.style, style) + } + const toggle = () => { + current = current.match({ + none: () => { + button.classList.add("active") + const rect = button.getBoundingClientRect() + const menu = Menu.create(root, groupId) + menu.moveTo(rect[horizontal ?? "left"], rect.bottom + Menu.Padding) + menu.attach(Surface.get(button).flyout) + menu.own({terminate: toggle}) + return Option.wrap(menu) + }, + some: menu => { + button.classList.remove("active") + menu.terminate() + return Option.None + } + }) + } + return button + } \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/NumberInput.sass b/packages/app/studio/src/ui/components/NumberInput.sass new file mode 100644 index 00000000..065df549 --- /dev/null +++ b/packages/app/studio/src/ui/components/NumberInput.sass @@ -0,0 +1,4 @@ +@use "@/mixins" + +component + @include mixins.Input \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/NumberInput.tsx b/packages/app/studio/src/ui/components/NumberInput.tsx new file mode 100644 index 00000000..68381e37 --- /dev/null +++ b/packages/app/studio/src/ui/components/NumberInput.tsx @@ -0,0 +1,121 @@ +import css from "./NumberInput.sass?inline" +import {Events, Html} from "@opendaw/lib-dom" +import {int, isDefined, isInstanceOf, Lifecycle, MutableObservableValue, StringMapping} from "@opendaw/lib-std" +import {createElement} from "@opendaw/lib-jsx" + +const defaultClassName = Html.adoptStyleSheet(css, "NumberInput") + +type Construct = { + lifecycle: Lifecycle + model: MutableObservableValue + mapper?: StringMapping + negativeWarning?: boolean + className?: string + maxChars?: int + step?: number +} + +export const NumberInput = ({lifecycle, model, negativeWarning, className, maxChars, mapper, step}: Construct) => { + step ??= 1.0 + maxChars ??= 3 + mapper ??= StringMapping.numeric({}) + const input: HTMLElement = (
) + const element: HTMLElement = ( +
+ {input} +
+ ) + const updateDigits = () => { + const value = model.getValue() + element.classList.toggle("negative", negativeWarning === true && value < 0) + input.textContent = mapper.x(value).value + } + lifecycle.ownAll( + model.subscribe(updateDigits), + Events.subscribe(element, "focusin", (event: Event) => { + if (!isInstanceOf(event.target, HTMLElement)) {return} + Html.selectContent(event.target) + }), + Events.subscribe(element, "focusout", (event: Event) => { + if (!isInstanceOf(event.target, HTMLElement)) {return} + updateDigits() + Html.unselectContent(event.target) + }), + Events.subscribe(element, "copy", (event: ClipboardEvent) => { + event.preventDefault() + event.clipboardData?.setData("application/json", JSON.stringify({ + app: "openDAW", + content: "number", + value: model.getValue() + })) + }), + Events.subscribe(element, "paste", (event: ClipboardEvent) => { + const data = event.clipboardData?.getData("application/json") + if (isDefined(data)) { + const json = JSON.parse(data) + if (json.app === "openDAW" && json.content === "number") { + event.preventDefault() + model.setValue(json.value) + } + } + }), + Events.subscribe(element, "keydown", (event: KeyboardEvent) => { + if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {return} + const target = event.target + if (!isInstanceOf(target, HTMLElement)) {return} + switch (event.code) { + case "ArrowUp": { + event.preventDefault() + const result = mapper.y(target.textContent ?? "") + if (result.type !== "explicit") {return} + const nextValue: int = result.value + model.setValue(nextValue + step) + Html.selectContent(target) + break + } + case "ArrowDown": { + event.preventDefault() + const result = mapper.y(target.textContent ?? "") + if (result.type !== "explicit") {return} + const nextValue: int = result.value + model.setValue(nextValue - step) + Html.selectContent(target) + break + } + case "Enter": { + event.preventDefault() + const result = mapper.y(target.textContent ?? "") + if (result.type !== "explicit") {return} + const nextValue: int = result.value + model.setValue(nextValue) + updateDigits() + Html.selectContent(target) + break + } + case "Digit1": + case "Digit2": + case "Digit3": + case "Digit4": + case "Digit5": + case "Digit6": + case "Digit7": + case "Digit8": + case "Digit9": + case "Digit0": + case "Tab": + case "ArrowLeft": + case "ArrowRight": + case "Minus": + case "Backspace": { + break // Allow + } + default: { + console.debug("ignore", event.code) + event.preventDefault() + } + } + }) + ) + updateDigits() + return element +} \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/ParameterLabel.sass b/packages/app/studio/src/ui/components/ParameterLabel.sass new file mode 100644 index 00000000..c2755426 --- /dev/null +++ b/packages/app/studio/src/ui/components/ParameterLabel.sass @@ -0,0 +1,40 @@ +@use "@/colors" + +component + padding: 0 0.5em + white-space: nowrap + max-width: 100% + color: var(--color-gray) + position: relative + text-align: right + font-size: 8px + overflow: hidden + + &.midi, .midi &, &.automated, .automated & + min-width: 4em + border-radius: 0.125em + background-color: rgba(white, 0.02) + + &.midi, .midi & + box-shadow: 0 0 1px 0 var(--color-orange) + + &.automated, .automated & + box-shadow: 0 0 1px 0 var(--color-blue) + + &:after + content: attr(unit) + color: var(--color-dark) + margin-left: 0.25em + + &.modifying, .modifying & + color: var(--color-blue) + + &.framed + min-width: 44px + border-radius: 0.25em + text-align: right + line-height: 18px + + &.modifying, .modifying & + box-shadow: 0 0 0 0.5px rgba(white, 0.2) + background-color: var(--color-black) \ No newline at end of file diff --git a/packages/app/studio/src/ui/components/ParameterLabel.tsx b/packages/app/studio/src/ui/components/ParameterLabel.tsx new file mode 100644 index 00000000..8d7fa43e --- /dev/null +++ b/packages/app/studio/src/ui/components/ParameterLabel.tsx @@ -0,0 +1,45 @@ +import css from "./ParameterLabel.sass?inline" +import {ControlSource, Lifecycle, Terminable} from "@opendaw/lib-std" +import {createElement} from "@opendaw/lib-jsx" +import {attachParameterContextMenu} from "@/ui/menu/automation.ts" +import {AutomatableParameterFieldAdapter, DeviceBoxAdapter} from "@opendaw/studio-adapters" +import {Editing} from "@opendaw/lib-box" +import {Html} from "@opendaw/lib-dom" +import {MIDILearning} from "@/midi/devices/MIDILearning" + +const className = Html.adoptStyleSheet(css, "ParameterLabel") + +type Construct = { + lifecycle: Lifecycle + editing: Editing + midiLearning: MIDILearning + adapter: DeviceBoxAdapter + parameter: AutomatableParameterFieldAdapter + framed?: boolean + standalone?: boolean +} + +export const ParameterLabel = ( + {lifecycle, editing, midiLearning, adapter, parameter, framed, standalone}: Construct): HTMLLabelElement => { + const element: HTMLLabelElement = ( +

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%0AbKv{> z@oDXO1$Wz6ie(KnE8lZ@!sXX1jhK-&tUlOYtbm|96ijk^AXyR3!tj#~cBLTPEV;ex z=?#VusR>RFl`m-1&bNMNEm@^Db;22cMl+<#dHd!xbd4yOILKys1u_YzcFnuBRS&q{ zmhwC4Qd1++408>kjkd?GNt#Ibc!$#&Ln@cqSyw;vW(}9?<3Ng^kRON4s)vf4yVwUz zn+=euxW7-ZMJq-X`?K4NE;T@(K=7fv$n8M4a+-a$uDM(fcQ+V$Sz|xCb{+$@$%G%< z=|1BdvQ1%b8OJ3xvKwxDQmcQ{d*T3V>qDMY%QoAL+pPWLje#>m%dc!1&NpuZ#>P@_R(rX)@0K8C-rY=naYG@8%CNRJfT zMgU0*MIqK)PPBIB&27TpCwf1~m%*{JI*r7H_DpO}RB3^US zZ~E~V88I186%0WXu^|siXRU!vqU)(9%M0B}roktf6=&DY`EzDzEOlQ;VO3;CwNLjN z=zaY|Ws+p4TsYij30`+sFpoMn^Y=pL)qc$k1{jNct6Cy_!jkjLwHok_>i@_Wf;ds$G!o_H8J<#^_W7H}e|V)Z(yylZV-*ttuF z2HGy&*=q@@1v-i9-Y8BUiLl$R>jCkc*b}*KHreLY(s3uw^tHAARz^}9rr)-5nEEN+ zSMn`m^J0EUjf~IF>#NAAkP$H;{UD=3OZtc(@;r9?E}-YJ-3mX&MUt_^r$15cI=BH% zTI;r`7Wn%u&nAzZiWWi@!Ueag=XJF#f8wk2H3)oSBe0%VkK$V^*S_-1JG{Scy?s}0 zpFv2)D29Lb^mLR);i1NQ0%+zOw*!#Vj)$Sb{7CFMu5{WPfPaNm!%Bu8UC(d|Tf1*57 z<)v_1MaCXj6|Mxv#Kq8EvPf#q)+(-S7_~GRLucqZ-sHr3BeW_HbrXXSu3yUYxu6g1 z14P#kq=(d%qwoYEN3QjnM;&^2^-Jv@0_{h=EeA+>!U_OI#AyIN`9DGsvEjg2GjQ-i zj9MHJaJ5h)mH^0m>~>FzK&{xj?ZZ=&PrfwQJXOjlx^Jm3`o&M85d`i}p`(EJNsG+w z$7&X=U=c9gW7TNV@0TDBdIZ7U_iuEw-*?qAR%h|9-lE-2XuWMvHMOK*dNkzns*Ms% z%6mK?`58``7wY{?XU3)qO0Z;pJ)Z*0mwNg$Gv<;sW(262H2A3o74deWeWBm_NLbt$ z8KBEBZuMdYXib{RYNTD#6{lHk1~Wf!lhL91Wc$|lT3k$<5;v91->6*z!wu%N!&{%M zdF%yGjfGY&`TZqZ!%ldR_|7-zO&?%kF9N)cfv(WOU+r};UOr0IjpROdW8yrN+LZVW z5{X6JQLo7WRJ(J4tN`^_kfIo^bC4+~{`)6X|9&0_SqU7)*7~WsqNV81={d4RBHC3y z8Yf1AkQS3B6FPn!Fw2M~(y>dc;gxNaKMp$haBBeh(v@VipTEugnMQ-y0Y79oKzH9h zfU=$D3YOROWL+E={&B_%LFP8mA@+1^rkh(TZ?ECTAI?pcT3}B0ZH}mtpwhtBTGzT< zdx2}SXIsjNGsdg9lTrn%e$tkp^nRfvL5tP8aTk_7pF+@(&a9AWQ4=NS$Qu?dndcPg z&xA=;Qk9lh54Yrh)RJ}^eu}m(-qDP!G3BKJXqSJ@cf^{XJS3LR>y1nZTY{c&EKn5vw&5DN?&-X?U`icz~8xEsc!IiKqo zsnGS<4d`+PNY6{Je)O7K59QR}4@MDtNADjadC&|*vwNd{oD5=E_6~#}) z@O9&N!rle8tcov2Y?OnF!Yr0;tIsYdkdCgX3INI^$cz8X=gTQtH-d12_sPjxRrMJ- z_(Ol`)puS+H{6Q;ENu>Q>#7abnobI(gx5pzRVnE%Z&}C#*#Lt<`2z$(&Uo=!?yhVZNPW^@NaS*!oS!D3KRKq8I=A&iH2iz1IS{ zLQBXwzm~IGSXg-_&*M>Mitlz!R3A6GnKd0%BDsV)W`m}G6iWO^S1kk7h9(;tbYAWu zB~<}BZ4?~4(jIuTR|NY2>AFO7c3Jo2o&uLY9?3i7lfq(_S!)gI+az;FwhhH~ zGd-lX;C}NQh>Hm5SVUbS+m;JLIr(&+Z_*=+Mk4g##}1o%Q6-k5+t`nN#he7S@}2D0 zQ$0pRT-dXZTa@f4Ub+etCP36&-W9lFc8u^dewuXZqoYAMU(dklsF0?`=(K%?;;G0d zSZrw2ep-2{@ulsR_OCZGcAYr8bF$K!*K*}dpV&OJa#_|c|MsrItNrX*htQ56yVWJ` z(@@^#2ti|~^5y^p0e;0NuU$-OEhYz~zSXp>+9H3u(3mM!_VI_-k`XK_i=xSo^OY8R zqKmqtt_!LYFonA%fR-Lu{8r!h-0-hw{-2(3LXq-AHr3g{!|8?EJI>>tr3GSvgRqSs z?%nKvZxDbcqNvOvLxIqFIeuSFV5B{AO9?S5esS1(GcY5QyIVV7QrKJ&Xu%0y9;J9m zzvFwzCHf1poipa9yK44xP800s9nG8Z!r(GKbQxzc=%Q4x+T?h8l*Ii;)90-JnRT^-N03 zDIUE*1kD+0sBMYHa89R5Sz%SeuiWO$$N>_AJvv)eN{JryO*P$TkC~2oQYezt#(acD zal-iURdY7bYv7SQWDH{hL>ez2z5&Q_&h!`^f!lixC3Hq46d%Hq1~uO%x_n)UHS{LQ zhV&5U_gv~N5o3y(opw=8QJtcb(Z#V%L;jerA9cy1lpn0!jJwaoDhB9r)~@xC*nn0e z^)x4l6Yfb~RX5h`?HA8a6gITNJd+H{aK5S}=s0Hj! z;3Sy(nnN5Bv!E91Z+pOXhcNBjtc)G8f6}@Q^tsU&fKE}j{02!Y2^`Y&Cd)i&J2-1U zc3#~r1h7Ikm?wHexzq&SE>=N>&{=ZQnX8dEtX_N_B2?g<2hpc}M=pRfAFz|Vf!6~= z#W3J3vT!>0XLBnDN#0?6NuR3y_3L7WG|O4?8(}){TC5`P?=U$GXSeELhFf?%$zJVs znJ$q-^Iny-VHLJL0i%qC$Bz{r* zW>6sb$lixdWHr4Rnf!J^mu{_DylrsJ^3|0%&Vq$n%&yPN>7;e7qM+2Badur{S@~|- z{Lk4s6&X6?SQLIZ<}zBC$qH%Y^cO?rIpe~`%v(LA!T&Z`6(Gd+mdJ&RoTgP~t?cuW zVH7u{hW{wAy200}_W$Zirn%Hyq0{+_FOp&_MbZA5482tujtn(xM~^IBbOmNsdEdN4 z8Dr!05gQIynezP7K zaO6WNVQar`Zj&3Spp^^pf9YvH^}}HC<=h(AJ8G==*;s^qc(v0tu4F{1XM;+UO`b)= zsI6NfPwH4<^{Wu*p>pTNam1R!)n zdBggDXxuU5OJI1Xxh8QHFWWVEW{t8DB+?nTV{mG>9QE(q)Pr#VA{r*f)#%(kLgA#- z_MVIfaLRa6)ORo=ZhCUZo{rsmXf^@FGQTJWYHm2Xk>`T;E63H)PWJxv+?8rIcvO1m z%C$;W`UA2YtXK0PmZn0jfe|sy;$9I2u5jkdw^Fsq1}8Yd7$(bODge zWn?iU0MrkP<#qwf5{SO&N(^yBeXtY<`RG5VkYQnx0zORBCJ&s5PNzkGcz2ov1 z;K~!?rruoMP^HGHs@A7_2GJ!rU-QKS2Pk2RDAd|dWjpk}f6S-3~5JcyM4Mkl1{5UWE zKzZNKoDh844u0c3xbAft+bL0r+mrDo*(8;kA_{-Dl(kC~n^JC@w*_dX0DsMFN1Of+tzUsTmT85M|BV{G^^!LRt_+``fm;g5BmX6l>R zg?m_C_4}wlIi8G?h>E4>Y3#)`jkyJ`jb!Oae!ubzhOH^%xYF{*`1>qWPSDn+tXE%# z)*ro$k#(~4wyOYrs;_8hQSb4&RnRbS7OmxEj^K<)aW1mXx*y_c^fn65eO2 zLuX_VrwHeV$B1F*xkVblLM#^ojC9`eLdBv0cFkX$?q8S>Ks9o6N(32TO*pp#rNnb? zXnNPC>Vos>!|pY`k$orNPv5{VOoITB-pn z#F$fS{|5gk;7u$hKTX9I2^I;K+95mqStmj<5|{&&wE$BnpoS4HjtAY$cI!p-SiAlP zDe?21LQhn^W&XJ~eyIQrPNSHZo)%?rR%f?%YHVg2)V35xX`QfUIPWfLkf6xI^siNQ zHYd&Yl3n0zE*fZ3D^fpLeldB~%r{qjWSgg9@VSGT22VOn!{A}QDk7X2h!Gh8q8R*LY|$Sb&NDfv6e+FOhc-MU!=F5khQDk!wR}SjEr9@e!N0hfbSRGAd7Wa$_D&cWN`y zwM-Lox!~?YoHk8VZT%AP*Rm`)M#;oj1Y>>3k{)YRY~if6$cpFkYUR6iI6iszMShB> zf3vcsI^YRS{nw-Tm+Ebgwb06GzQoZ)NuYcg*LF+qO7K|JWoVc@rk~2dDA!GAH4cBT zp{h*FVo_My#+0G=J;f--rv>MgMdT6#sc7P8=gu7-c@F1@A($7vU4w(aRQOW`=X~a0 z!Ncm|_>AL>J(E%x8BQ44AfHD?e-kZaRFFVtdjH(=Kh?zl5j_lI>P|V+(&=>MZF05m zT1Z+pSQnH=pWo(>c+KT_-jMQngbUk)@&DuPt)trR*L}g@4uuvk?!~oGyc93)-XcW< z#i2+j6ew;53KW97ltOTKE$;5_7A)`l`tEb)?0wFjduPp>b^jq`EwU2w)#v#bGK6Sf z2#}{{j3`%+cRA?9kCl^KaY*B?*rb|cuYRsB+}wN`NGEO=4CE-*0Yv%isf+2)mq`D% zpMQ?&UNN%*XKsCnry+&RuDwL0x!qk zzSC&JVMv*yfjPEqwkM0!Syx>F-ZZZC47v^zS_xk z(PJifJV7j(#fx!-BIKPA%>d&=@$;4;B!I(LEz@Rjb@zS4%n7H!L6rQ+K6AnzG6}zQ_uXfqxrUEd8$;M8r+*QIhvG_x$(x zok!I236EJVCr6@ZF``cM{v+GgKfI0jAIR2!+K2-Qtbbz>2q^zQp%Sc8TJ`q_m&I4+ zJ0}(6C8J2DookX(MmSF?fgU{}cb z5=*RXVUwCiW7TzNh>QT3PUM4CV#JOJhoVUFTAmjJmC#m(+vTxXi!4!z;A%W@Mm+rp#_;I0w*Zk32vs9$f{{A`%TR5aKMr$pLv4vjKwgWPrsdBw*1^|%yugs$I5@3(Fo40=a$^+Sh*(W}J z{d4R*0LPB$Q^@Wu`=<4S2qfZRqytzV^}r5SQF5LFH?qiDwEL8}HOhAV=8VW-G2pgt z!P~d*tp>+V z9@lfSlMwX08JDw1N9(lRxHhj3(bTz~{Wv0fj(ZWEvYlTzG#V_=$2^CL>50qh_*wO% z>jISx5?&KVNEGHQL%T){r^37Mh~0OXrU3y`eFXvp)67u>>;Fbp`53e|q7v#Hh)-KWqAT!kPa=jE6*<3i6S`Ia;BpnItS<#h;zr z(r_KqK7aO+fc8UdJC^yjAXoQX8VxUBq=K?LQ!fFuNmzuKtxs57R?xuMij1e9978M` zbE8g-0)$LoTwI9#eI5kj5+Ib2;ky%MoO_dJ+!dg!Z=qKzem%0*FEczRX zMVXbfhW^O`#e*E$`~>RjgUgC*pjRJ{cV>YY@BrH3nR|)w3)CBuDxA&TO+^Cy zG7PdDnqBR2W1}H@x*))%h#`Eoxqav-E8#EE3k4^Jhr?7CtaByZ)U6FfN}0M$y0| z+|Y(N>`PvZNuE*@AOw{cj}co4D^tH@;Mxq@6|-9Z{$RE~tk=!2X63}3_p!=bfTxvz- zxF1ZEpUuD=m&(Wei)KPH;1g90!05|7qEckJ z5FDV+k4#vOZ=}OFtz~Ki^gX(?KtlmkbToj)v&s6RlO&eRgcVyzSy=N7LGtGm$xB^zAIiA|5d{rc4kY8ZWI{RNNNDH%R|p#e0`vP_54X zXGM1WvBLQCEtD}FawR9toFFrf$=4pylBMLt3gJtGHuB~8&E&i+HvB?E1(wi{O(+#6 zo6J@Z$g5j%;o)FI{nn}@Dl27Y!T2{8O$lmGl{l$3RkBX!UXVRhjVH5APV2Dt`26_( zgZS0{l%U!8-dNf6(DEdyTJ88ctU3cL&mJnI#?;h9`=-xS59Ap4eKR56oB1bezqm~q z(XYx0vhxz)Q@;JvPXU#cNr>|usMS?X8m^>h$}0ardk_0|#Q2~=WX22fkLV!sTSehL{W*ceGNo~7_ansQ_ggOHBpSHV%JlqU z@|)7+Hvnzh+yfY%zxOs$t$rJIer7poysMD{r9Ja$x5hLt+8NH48Kz>)th$h${^WkM zM#`<{uL=O>X|xD&&zMxHQHvM#u^bHTecvpO6D`t&2fBY9dGWXZ7?;>zL4i_bcrWHf zhgHYNjSo|8#wvI9Kh#85dSN}e<>`ec2?P=qiz3xyZ7fa|mYBqDp4jAk!-oR##*QfY z{Z!Ruf`v)K7Fyd+7vjrJf#CCcp6ZY#}i4)ZVg8s0v7JOVZT=0X!YfL!WGUY56D{pkg5v@k+u0bg+(OgzAcQ%NrqbK^AQYNl2dFjH!!jjVUhUR4X zho+{+#DcoIy14vQTjQ+^#pg*M#QRw$GKo9ovDb7aTXup1`mI8HwR=RClBP+{I;FyQi}3UEVN#si+vcoNCos z&tSx5gl1IV{bPmyS>@=zN}|e9aDxK*`0(X7y{WGl8v9(?s}g!lB50<+|I3^I%;gF| z{{SKaF$Q2cf~f0{4y4e#=AYWk*R{2^Eli*+)aJ43V9uy$Y>>?Ml1wHeEAQpvMC z!u9jQf^u@QaLXf+00oJh?AwiDQtEA;Js%~_0v{8>n-ZFztuS54+M9ps-KqG$nm)P- z_th#kTAsISST6E$Dl)@UJ*P~Y%Maha)n=_rq#9^ymqO}e1l8S_M84SRSX&~it92df z=c|8b^GY-E_yo>$2W&AW@;{$(_eD_<6&@NSDq;^UDWU|bxp)g`6D`iSd5nl@5b>eL zzaSEqGUt~f;aeaP?==Sz@_7`ZfLM1y&z&`Hoi`};%0J=f9wU4oy$>`2G0JK*8!NKD z52L7BYEF(>$5zqAEJ(Q@1E6m!Q3T7@maJ7n_I1_BWY@ASK#Se(ZXu?S zsf70puQ8TyTg-a$#;%TBJ7+k3GVMqy+&iAeX6Lx!Ku~VLIlkPD0e1erN9V z0J)bYpLyqQ{2hfi!o$np;Rju$8FZx7toAdL^SnD$uUSGi1L{=v=yN{T9&gFXGfWq2 zUr{iHKDzy}LNFUOJDdSJF-5C1_fN}!H6){Vu}5&X3$QzBez#_}&Q%~(wAv)ES&V>A zYe)sdOSr|pFDVVAQS&bl>Fx+1S^OV#Q5H$Uhj$oS>tIhBIB$K$oYVj4wNX8|`hxvw zz4phB%F4kfzG}rd!5N(6-X3?bp+>rIPe#3)a!czu$rpN2#c1xQ%rs6<9-^IF*CBUW zybcdk>%&sEN7lK_6D7 znX(Olz(eq|nbxj^9pYf~>U~&;!?d8_&$t`hP--{bWb3Pzs z1RE0n>vNg^XIl=;*2`r(NkE9I;As&e*`A1&H@nCOMCNk#@l z7LhLV#Ou15$8Y@$ z^bSl41eq(E`5}hQ&Rxs^H}H_lipM8Yrz}THO^$9w6}UFOW8jQx@YcugC^eW|0Hw%DFeYx9_Yw_dNkh z9DDBT~=*U5=jl<+2_P&xQ^Af&Ps;j>!ij4QE@=&A<%5 zNMLMW2?4Ipva|u{<0DU7^wfKUGV! zAdrBD3owAbiRb)?=dIlc>os6p7fT>BQ@3v)2{4Yed(+=)WQJ!u`&S-nBai9)pM0jze;g7yj0g`u@8cNBV}ie5n}qYO-|tluJTWnbi+0}?8`*MR z+qh4CKIHUJDTGye2qoe1rG2Y0pky*g65u0-FIuCpcvAWK!8cN8YtPVIZF%ZoQ|_3| z2HW)p^v!kAvUT;E32&(^ahVbgk`$3v=;Nur6X6RZX}<^{mI5IKfL1}GpjX(G6uKng zthqcD^^(?1Kh=ncKZ&|KyCx_NjvIx z3uRHug!`tv9T)QxS>eWLI`*&Qo2(jqncxy09c(6$usZr7h^^qgpu5E(C3oNo{uOY8 z-*4fqR~|+_&}lpa4=3jIyHwfm+T8Ht_`IArI^v>-Vv~r*2(3RwCgzQ+b)Fq>dFDma zHV|NakMC?0k(e>DMl*NP@u??b-QIpMqPEef zg19$pKi)*qiNOeNrOHfUZpafyA;r*WUk`4o`S=qzkp-P5FoSr;7iX1IOV&j0_YRPO zB=~-v^Y#9^LT*)p8H7t^-hHZ6DVBloS~S9&*&twvr^m1fYA`18(wB4m`0zp2YJ(fg zHucNz8HgQ42K2qFSde}7IJ&ap(j9+Q3nDn`<4gwq8P##JRpvfLd7f*5?H9qssP3b# znwmWA;_sZBaoJyr<8uaOJL1ui=;OZ`Hc&>0Cv1##wxWCCpU5P%SMbRfLhOu|4Ex>P zedCn#MxJ5sxw_l_(ZRkKQ!4$b^c@wQ{FGvL`ayP`hG3aQk zBSvI4%9$~;SdEbl1PE)X)6jnEsjYrBuRrSz0T)DBg@b(*!W9;g%j3x_0+W7$(O^uBoWTP zhWDDxA>Ur)prI(^^-l z6)qzuttWo>ueI+&GD6^4`vye14|P_)U20U>rY`hdxR3q9*ALMnjw@BUaed`Kk=lY4 zA|W2>-2;9m>)f9u2?Sz5yDvxWv=$FM+1HFx%FD_fxoDeXy0mgNE9MYANz-v}%2le1 zK8~=p*eVEq;Lcy1-@UVrD6KYQP;YwmrB-fGpQK8Ky~#P46zSu8 zP&U%!v2fdIPtaM+I)0dame-5U?iR+e>RX*7a5Zew@p91iTYMQwheM{7!;uxMM#B?V zO|P7_mpu^76v0+9FVSua(>ayN)TrU$iOg^H--c%5urw@JlDWo1@h%desd0>2PM#m+FPj*3Q*38~2b&ug4@hSu3{tQ~-;Ar?s>#RL`o9usa|%euyh(?M8lRa zI!K9@ZC{xj%(gr8J9#fpa_A8`?!n4+&A35G)I)mYvd_Z*w#xq_@}Y1SL~Qusfuc+F zfph!|^y>E?5`escdr_%tA>jX23tS5br$6A?>iC>reQ<+>(!BZP*`ChdKEKnoLa-|# zI^pCFX4h%1nLrF$xL?!HkS0HAryS->Onet*ved=FXsxaOnzTY5*zqM%>=0Cw0tb1g zOTCd54_eHL*>hg0JDN4hB?8q_VUE+>&+XZlh0XZDozB3uglHxhuGRgjH4t`S_SA+~ zUn0k{{U~>myP!iXwU= zn`>pNsLNO!Z?5V~o9_lAj8Yh0aEl}cZw{+x6I75)uh-mx6dzhGtROVuU|;P9>RNZ7 zkK_P1w~DFWi>@|?P%ciPB#Cz5HyJ-#N5nEA+%Fd%*x6=@W;AMBC-KU< z4?phPqS`xrXZ#uJ_KxoLP$!EAp3BPVFEKTM=PLqt-LzSmmF>!d{NnVV+xhws=X^b! z0hxbe{SNAxQnfYmX@?W`Xg*x+QS&2flsRcb^;Y|qNbS{DE`Ik~t_IEmluLH<2W9ZH?h#^4C zkPporyaAy;BVXb*VlpF8qC%siOuqK>GiO=8&=bx@^`83<&W_A)$cwF#5~_!rGa~=- zq7(OrtP0y|eCc!nXq= z3gq*5KaHK%RIc?*35s$bf#wr87KUA)Snw0PSUM(WxX?w@4i`r#g$X6B?st{0g5yAj?3Q zGt070=UdgCQGYx*Qnpv<#!19wzkrJBNt^$ZGtQP2&gcwB=8TPdxmBYD!-&{r7kT6= zV-r;~-;c6Cl430+M%FyP=)Im4T+xY7@SB}O|%xO zrc%fzjc`ETPd+gWU3lI`lzmSa5a@o6qvFj)+h`xfH!Ut9QqH+`5pVyMb^-VN1k~79 z;H3lnlh`n;v(R-3s0A0)zPL+gd(t{&+n&;(;*fFb#;d(z7g0~kIe{bHB{9F=1SoDpRC~f9=YebEl$Ew9r9^_=x z;A1QlQ0Dk-vVyRNTjxB{X?Pw-`U9L-$hRBu^w!nFuZHs5ebop!TJ>=Nf$6!mmb@5zG^}=>7W;0Lnj=#1AeElN> z7%i}+nVZZf*0xiacDkZ)R}9-(f(0pk*eM@%4-R8*o$YFc;>k_qIxae~qxFz}YjaxL znvp&DWi5`l<_JYtRxKIX;n?B_zrUtbz8BzKSTR@-Q=ux`RPZPri`+OtZ|lXOhLy-W z6&d*z%bS=hFacNG6KAICBUj4CSR>CLLx<96VWPi;^HW>0t11s_CGo`AsHTQt#|_sw zxp1eqQ(PyUfMh&fplX4Rk7L_r7Pd5a7|5tq2aSElLrqHV5k(<8yCrS)`>0f&fgvcU z$7jad_KdPyD3$wxVaV-%SQMP?mjTeOY8ur!-jiIzFVuhZ5(VTY{5CovQo}|EQGZh` z|NQJOLiU;VH)0MPlwl$hh10fixnF}6-Z9VKt}4&5+6Lt$ z4f+{a&3R|&q0BisdkvBy6<7DWm*CeUT~$jmM zDHbo4GGTRcDAXVJZ4qMAG=UWQ$^4RW*ronY%d-_{HRmAWQ?f6R= zmSl^Vxh#ctvJXr4nzF+o>;2V$=O(4}WO@9)XpM;=moBAIgi+%6U<;?MMRa7@-H)qr z2{7;oGcYB^s29wC96; z1{N4e(jL{7uCLzNNs!xabp?T$kqmKZvX=g^5Y*n)JAcskGneJW@rST2nD-=s zKo;HCKBQl7S5E6B=qo}?oA}X-sG7^6BWvcP3!C?_D79OKTQzO&cu}+Ti zi(G1Oao^|M4^m3U?4ON+R&g&)*nD(>eTiD(oZNL-q5QSJK%=nRed5#^5JJ-^7}4MG zvQh5{T}pWsJnLO;LTs!(PFEI6-I#;K6rThZ++x~2BwtmZ;sdKV8;`+NsXjB_J~ z2+p?z7Lyd?ZOb>O&sb&$ga!(MqPBcYy7!|UU%mIBCqmu__cN1Rn@#bQMji>|;RDN} zM(*<L#6QivWfTHtRWEHvo$bF7G! zxqXTpJQ~o~WkqJGm$mTV2~V~yvom}wy?gWWRd*L@?a%TEbBC>#nz+0WKu$kQ_|+^o zdWcJES@E_OlqtaCy7ch=)Mu?V=s^pkL-;bev1Qr~N^D1hU<6VdjY`;~g!lRO3V)Vn zPpySe5^w>uf&92yqDCpvRGM~ZusY~2jBu&cFu4JBxj$u}JK#JgHpw*TZix{UMH zG4fZnvkKF2VI0%vC#AR+>O2%J0G<%sdq&qJ;+9poCQ>q`N*^Za zqAz=QdWknnM_#dmhI(z)o%JgGMSTrg6V&RGP0zV54-UX8++dC)a0QoB8J*DSqUlf^ ziZ|oO1d7}Cruqc?pn;%cg>sMLxgqE*{pczqFMm$Wl{1rsqO9zf z81uG4o(xlS&m1o^PWct4BC(GF+&0r@8o^#)KgDruUIq9(a?Hs7*!QeaSM&A=5#g+r zZ;*czPD`Fr%kae0+B3r*AqMm_%B$1TRqYj?N`q`Y46UMC(hFu055|>&(@P|Re5$DN zB#S1YVjyIj7SS`c&@1~gC*?-{6K*Fhjr7exHl5>aV4kQ%=gG}+F}(wUNNARf8E4dO zFA1o;T-8pK!;XDL3+ynojD*)oiK>-xWZl|Q%D!{Nmk3~BAC~L+Z|#TFQ%p^}rYM zF1Nk?3k3b%dP%3!UIIbBf@I-r_(xocE3eihtS&*;Jw9i`Pt=;G1jv3cG8cpZx34ty*$?twIv6iB*Py>n2wVEB(d9nI_k-CwzbcK z+YK{?iZObjru?43nxArXEs6f{w8&R@!lJsivTkPUv^7+4FbyoJm0?E4be!YukQ~LF&Io;P zA~vtqAjazTE1sCC-_+td8t%6mg9=wVFgmr{_4kVjhpC{^bk653=RMceo#s<>OwDYH zySDqF|Go07gB5-OlXL}3%=$`~f*Yk1zTtk{{KCA!yzQB(k-~C>qvh(cxUf4&740=eYKBJ6I3IE5>H}AMH%o7;D0t#Yi1SBFTNO8 z#jeza%i9sCn053{aYbuPO!jm{di+X~bg?`yKQAOL%dcj-2WLVe&zfKUo$ns!Y!Mx9 z0{vYr7FDlnO1kTJDyMCzCP|p%$R#7vAsP_tw_sLD!J{}@ zMtW}$)ZIcyv9$9ws?YxMHF0fy+{5DCM^cv9JH$F+2RDlIV?7oqLBmW*)74N_dH}bvD9vE2C{L^ zeRlx^N_2MpNgepCCLFM9AWr#*-W%HKWnK?YSUs@aFfdQ+YGBlq+b1`nMxa?)iJ<8d z{oRwYQhYYPpp^Vk=~U5ikne4@xmPMZm8G60Hs2F69@-*uRKiryeZCpNimySv5pZ+o zwj*8l^`{;e#1z;B zf%_<&=9i{M*Afrk%x{NwV1e1ZzeGMut7)vU`JNpMwT=5XTqm!q;p`)xPdupL zsx_6I z)I|~R$Jq!yaXacO1~$}pK|y97zAA9;(~C7oFoMpjV_=^$%CPtC)ZrDSH*`4gw;I_B zgUwS}QhHDlx(-K4XJA_t?DkGw0oTei6isPE1f#Im_fF4mtrgo>8y-eAb{Z114tdt? zb?R4cB7yVxdU@?gZWga=pBf8Si~}t2MRrWdA}EEa@Q2at-C!34LxSXi_iW^|;pj+- zGI%5Esm$cN)Vp;B7-RFB@2dBQ7PYWMCQD~9ZoIr;<<6vU=oy8mf-huU*g>G)&Bz93 z)R+A;W!`|6aG+1xTHBoJTSHU{OrMoZT}@{r2HE%1DI(4mxWkjaK1c&)=cMa8JTil#QB`^`=f71t}YU{ZjPwbY_~Ic>kJRV7#j7 zyQ~gs<*gJ-02;QP873>NUJf8){5@I!CS?M|Ofz*~q3H*wwThs!LSM0ory5gEO%SRt zqf{@b)Q)sl<_Hy%eqqt3B#|@I3N00Ev(WyS8N8Z-E1RBOB@TM|w0%ncN>@MmU18oo z$lX7Fu|^0(Xqt;c6@6)o0L1kPn;R@$vg;Gt&5i!RbZQ6>)qC|J$1QZ7IwxzsEcj;b z2rQ5;!EQ9zmlY<*R42o6{S)0v;ksN^YkRYW&zEBqLF^Z#sv-@e(lTgjopQ(x2Vd{4 zh0u$$%}LSaH{I@B@JVR1qKlLs#00EVKX2g6T_I?)6WEUb5QU!bshcSlHC_jXIU#ol z8VVui0QJ8^b2b&45tCo1Asq2sPjmXY|HNqC;4#3k-#kgTMm?{&iFbbJZEROz3bq&5 z@6HnnC1)QDc6nZmyOXv*+M~Z8-T|3Gk2KvBQW{$a>!2F*l94m zDm3qrD#y9mvAECX9P-RqIO|&+oky{EP~`5S2D?e) zD1G}$zmMPAsp^RJ-a>6Uj-65}6Z!>sICcF2Oq{l4SXJ--zOY~BF}G)c@nK%@c?TV_@sVKl$56aFR2yzpOw&JPX<@9T7o zDjJ|CI>jaKH(HPTpb(m?Gl0M$neIkB(urvKGZ)GO1F%_(j&f^4w%IB;{g;r1ENkxH zB(>PIQ~K^o$4h*4X*!GkGK#MAPx6}NE>c6CmAM7wv7YF{**Nq9_ag7y417mzvg^o5 zZoG_7*fRe=OK|?Xi&hc)N$Xq*LRI-1n3g}66aU!7wV*!MLpFEa{{r2k*tFhpDQ&j@ z1!{&Yl$^_l#sV|&2>9B7FM5whLLKO)E=no@K#y}v=&hcR#F1Off2N9zqDRu~C*>6a zL>GXk0EC!-)9s%W;68->gmk=;tQLcE->co*-AFh+T;DUVFo^67j3h7Qfn0TI&JHD) z1zn0}A-%27eTVh_yP5?#8dhKsRAxK+hX#*^^IxhEmAZdYiy-|`h#(h1;Xnla-L^eM zxoO-XFYyXYX8&S8Ti{jV@ANGm7U$t#3CycfogW*$_U);Um2F`~AF5#YcufJ-x+^yE zhp+2UoYHxS6#F=nHm#{ZnOJtPorh0AKiqiXmZIvv?6xKV8$ZaKWh!7R(4CMxlm?co zN{MmBp*%pQs#vADI|Zh*e7}j_|Ax5GHv)G7m{hmWFM5B0T!5A|Dk1EwZ&g2!F>RB8Uv6>*6a&0iD$hlvS{8p>itsF>r* z45)9UlRj7kfUa1=kLQ)uFdGf^b4e+huvL~WSH*-JFovIFuQ2cScn-|9_dU17J;8ix z%avEbEVjhlp_n;BYy9>NFHPZMm(R=!^i=iab1F@j6SbYc_?cC)9feaMVqiLH0*O(} zZU!ymWr~6*Vwj?|n3A@izMfo`;l-4Wu!ypyw$4%v!71dhab4-YY;@6|YPh(OP?|;d4eoGSS zWGKQdMM7`-z8$}Plap1FH;d4PnQ(Pns6n3CXjJob9Z(&`F%9R`-I|b{kBY259jG1f ztA7EoXrFk!-dL;Xezad}fzdCPMdx{Dnu?G;ZKr!2iVDc&?-}j$2tXlvWr&l#=u8k9nbRyD9SEDE{b>9hBqg3K~m#aCsC=m zcMpV%HVCTl`)-QBw_6NeZtNZnQTovz9lwxMVfKj_2k|F!7>6XzEksdvLaQ>8^A->0 zsglF|Irh~J_hW4vx|jj6vhGCSso+%k*1c&N{rfJpuSarNw?D1+d<9oy7G$m?A`nDr zI3pwnx}-Sw>2iKL)qcFmKRB?SC5`=Z`FPsaC*5=SPP_FNOD6KP#m-tqcdAmNQ9ON0GjTqeFpKwYQp`CyJb1@$?8~xmcGiThy)wu z7n=gsKl&e$A2d!^q7lq?{JsK#n3ol3ONLp~?jp#_oDVLW;y(!EJvMPgc{XT+W)XP) zqY!+pYk&A{30zAhZhOM*KEnP{Y^X;OaAGkoR_dipaTYL&R>UL^GgoY4a@V;|PS#M- zzYPqZJ0nRaiL2PBu%y{9E2lE=Wf+v?BWTyh?x}eDN7fDkg5dGr&)4AAGsk3NgtnH@8eXNlDAoqMHOUGBz5XTOM6tQ5Fu+rs=^L@Z z3Z5|aX_Upn&%vb#q`x$)F5f{xppzj4569xaJ&o?+Gu(Hn){wPR_=juZGo@{v z)aB`&0rjsF9VQ+45wU}@qSgW@N6@>_y%jkA%7aH`Vaau5jP+CNduv42ohJeX0KKVl z{`pC%-4#Ip@~1wPXk8njfpo~A=KzhK43a6BA6chxV9)H{nB2B)p#QaP(+qYc@4477 zWp*Ku$gGcWhU;S$Kwf2H>qGqzNrdGm9*QD6={`#3h6ht;eCSL|B{xIgkKL8xGgK*S2s{yJf4dG(z~GF4OF zak65#`qpty+#8w}1D$t!}1)>Eoh_?A{vYX-b``|B7z znng6z>{qP*ww25N)5F1+;qk#$=LH!)U@5i}uUjQF6 z5%>8=B1amM~dK1#n2!M62 z`$NT|ai(jl+@XfDwPC*UtI)7JK{#;pU!$Dlu8y-VG)l7hpFiJ~?rE2h^qY_G$ zt0%d>TBYTrbvUJ9-!sDoY!xYL64qKVmTd``Yu77K?3UR8SxeCU>m!PROTmj-8LDgr zPHN1YpKQYMLbl4sxM>P@P%K}TRS2aQ?!tWM+C4C|cJpOJuXIyN4?ZQOy9$2)`FV|` z(%@Cwx!}zFGr&@V{S{`_ED7;Qx=n>F+;w&7X;}dm=LOa8F{NH9NpzQFQ5kNd1A5rhV6(jml<`&_;1#9x|#sd%l0`Z$lHYYh7_2Z))fTs(Dgj%LN(g>JEX5M>Q|T5--N9y-<`)N=sMN#Hpk`-WQAsZpAl0{T<o2H3HlrtjiFScuK)M0r+bK&W;S1*%_0=yB|9?rnlgsr z(`}1F!i~REa^v92xl_+cvf#-wJ%FbLl(oDt+RGq3^(ZNxg$H$fQn?9f5}TPJ8fJ!- z%*${PE-lIn=y4Nm%YT!hPhXIl!}QQ>cipjL-`x|#IX#w)GUc0i_xZ$^a}AGDXJ%`H z)1BPv>2U7esG|6nPXY8E!Gc(fk&DR2xw6v7A|p?|NR_4qTSH^vs`zz$;>cGlRDK|RLBK#g+tJKJi^vDC4g z>qCNK6;~~<=u)m8;qvy}w2u2DV2&M}2*U4ZkZ{ay_UUdg3x1GZt-ydUw7MB!Mn&NGxpDb~_Br^|@<@nlE=5fc}Q4t!m_V_`0$q$AT#dl-y zt8r3ue0z?Aaf0J*0r=NY&lZUeNA45L`!8tgKi(~Od>dc9Ee_v(P|NIIyB`!j;!f7A znyfxB(fqyl&fbEldHOVK%{sQ1UcjNWan_CY;`49q+1!)DP0z4tg?_!)CGhm%^btI)5gt3B;r|9TmvdhH#w@TGpj@pziuNT=(Aa8qI0P{Pf) zh&z)-TUkXog=A;5r>y(k=G4@Vlr*^k8VW9zPl32Tt5SL9bbU1& zgOQB;IXu%{gF(XMd7K!a1pepq-4cLoBvk?Vp9kU>p_!ByBpEXowg)aiBs3h`S;UXnypv&kLYYR{(;PXCRhNq1M-#@VmQ}uE>24O{U%mF{yHwT9*-e zGO#5E$NPAB_FCcdcjwXCs~5VdGijFPgW;5Gt*D5()@n=6b+FJ*cWO(zTc#|8x$sWn z+rTRh!d}j56`C7EGAhj8-*()Dv;K25RoW%R2RHsK;{tnBw6;zs_>I{nNsJs?9Op}~ ziNoeeWIzA-!M3O!vztoxzBU8^w8vSq)#G}?i3#-rigN-$yJ%WdZe{$&6I|8c595>v zII|fzY4%@;WCTdsY6|WhZhE>WfJXVwh-!9LsY{9BGM%t}!UCfU!`S0KR zPmsEpc$qs9n%U~+mBn+CK;ZJ1I3RpnUJjy#H?J*h)g2j)-~V>isW!oe%qLtoq`hhK ztR27d^FN-y* zBKz;k!t00puPVE9$mc(W=J^?EXUxLOYcH4tYXh`9RU-XEN}5LX6jXO2=WW!Wn5Oc_ z2x`#c_`=t={n@^9J1XwZmFm3a?((!eeJ`i=2Sr!k*uB^Y6ZRf+0o%MN@XfcXsp}Gj zJc2|w6ibvLvvK~Ocm{d;lAOTOQY2lBLfTX5V?2n2WX(v&|Ha-{K-INvSzau-2KNMa z5AMN(Cg??i%MI>91Hl~v1PBmZF9dfB8r<#T8X(Ap;PU$9{rdmE_v=?xkM6GO9zBXN z?l{0W9QNL4pR?CqbIm!o@3S6+VP3)Oi!l;YuRq;ji1@n(Q9dB{CH_pWOC&jnv2}YpFROm z4aQ6-Kb>U@yf&35eXVV=gcnFIwmZ^9uo5LVcZ4lAk$CYQJyIVd+W%@ep~Yi2+9gM* zjrRNclluX&hk4%%pr>@8w^K0naF}Q`&mO~MPf|nQ#6mahT?fxXvx`b-(WX#Gnj77D zz`emur#*ND;JL#G_N!HG_bc67zVCurSQE#V39oC$TZbwM?G8G5_eBzqGBdCQ*2t2XUT(=M(rZrsX>Y;6WX_mf}cz8*2*AmO)K z_zygEcOdgShO9pN8ArIJpL+B1*j`3#VTm%<#cv|=6>k@ zujsj*m&HX>lg$#aaMf1+C@Y$(6Bpm+2I!CaFgZ_-8U@no)It56Q|Q;j&eM5LqEJ<@ z%UA)J$>XabeK=915>myOTQa3{!gUAa?*wXFCE{@2C zzuUI!{J{<-fBatyx)DJOm%RK56WrU#jkFiuMdZ#DPKnj^v+6K2o}r5!F*r|AeMe#} z>HQ5vQxnkKG1(&RwtUM>fmV)Gbo0GQNFKL7?2S7y~& z>)SuQ&moscxq0rqHBeciQbGo%LneD2JcNNjO3`2~W}aRf*&Y=8f16VJyGGjo2BlP? z4M1#?JFGp|32Q?HxUki|-HMUt@UKF5CM=z2-lN+ckV-D&%%Af&q-NpyDCJGH@`)Er z(Xk5>c!loonYnONe!U2<4mtQz9lS3x)$p-$%f;hgfSsHmuBVdhl&9*uFSTU<7wuDs z@(RcDy4Z`rldIYh3D1?N3pmp!8kt;4BFUoPy+g9aY#{qK1|pkz0aPa50B{wbQ4y>a z6}Yc4a}Pv<*>@p^ZIg>b#Y3K!4sW1wcrbx(qgtgvZfm!geBp0Pnr}DjRfxWp83*(O zGwpn&BcV*-56WPeE-AY|RsUU*>C8Vfm;amDiZ8%{4da3bq+O{7T(Yj7pZmX*M0N<+ zq61L1d6~=KK+5#RrQkoC$=~ew?+2AF2bBH>dWTV^ee}EF7A=dQV=>fV&|y{6pcdh` z>HlJ!=O;;L9L~Jgkm6OzI%7@HF}V3ee6(QwaLpTtQWYANw)8OZkXmtEL>dh}1kNSz z9^cG$J_y2@!u_eek~F8w3#K_f&(s$G5FlgUY_pM$-PV76JP?1)j=q&c>y&)L6xeEC z;VT5sirK8hZe}dVHD*{s)NEz}VN+Hqa<8^zktC9=#aAd&1XfzZD`E<4LgzN;I!9j3 zU%9AiF@n*K2(Tev$$NUL^{bI?VTM)2sraGt@5A%8nyj{<>gjMtzc$sUH`$Yd?^{{& zz1U>Kx)*7(FBHj^RfmtAS!^j>2~G+6nHr?$bXK{c8mjY&FW|K`Do+*@`hs2g z9(Q6O(9dl+21~9LNj`S7=VZerxiV3N3-l;893FUbrt;^z@%F?UJ_plyr`nh&61~O6 zy*j&fxYM~>%^g_>*VdlQg>iyN42(aVD$hjD_bYPr}WQ*7FZ-!OUp!Lw%9Hh(5WiGh>SBO0U{33fAZDqwPFn2gFE1DBZWIxND&b}Hew<$(}FDn z2rstR&$yL^)wEY-QM7==;q91Fp8BTA(rdLYPrslB$>S0c(T$Mc7g_lS26PGCdD^bg z#Pok{XB>%cXP%U-LT|i>$(7D4?I<`5N-d7|t>ZX{Nwul5UCwr-2ZVd1oAg3OU)_I} zpsB0RE`fzii@C2iZmZbV!dA%6Glir2ru3Eua~8};dPvw6krPS2(}Z@MXh}x-<4n>{ zh?y4HKJbHI(}7_vsZ+-n#UONxP_o>#4%q4VCfT8Jr_0jipH|~|Y zY!_qj`cydhB597(SAe;trs0_cMML^iGDgTF_mt;!!kS`}g#mkM;=@zapoE8C==RC z0P*RfE@F&@9%)(rK&Q$EHgb=Bze<$gWX4_bUg5&>=xh?hUhj=eoeiXBKDX~h({kaz zfzowFrPj*wQUJZiAAw} z6&b{^gws77gT#fvH)4R^;bT=k6eXFTFf|+b;NOlB&?VK*e#dokUKDzc#(rm;2bLpW zz}E4$Kc)?)VdYq)hdxE=)K1|&SRMm;WCPT>wE`1j-tH+z&mAN^7Gk21X>jvc+} zts6({)(MC9#3;5^Xc{6UKBr>65OK zjAzLGM=>ySqBEBVY;q&#<8uL_tG|9KrB4KV#_;b%FWyph&gA$&>Sum_bZ3It zzM`++pN!W*mx<%$>BdhQ@jfR+*h~ElMC_|xa`kMr^KEFxdfLx2hF0*?MeL5n9~l|} zfQvCCP_~<`9W6nAd$IK{x4M=lyq*1IHY?pYiQ{7^S6w*u#vs`dN6Nj&60~(x@Oh1U zJl57JkD(mll#Lpjc|9DpN1f;@chE>uH)Xh2)S#{>e8J44MPH5C;_JpBkt|MSV0>a_dnYsIYGZU4_eC#rl;=1+apV zf>inpbu1SU*>_=hXTu3cjBAWu}iBxO6jE!2}CrY{vam4t-EW0En!hDN!uCE|5s zl8V{;`C54K*)s>NRUw3^$6IbM8_Q#BzWNKoNrKG40l4CyBRF5TMR2iiw1R!gEKWBY zgGZ42MT!O}AD^B`L#fm^9HZU+I8~`{e4d4Z<)>EMt3tR`KP9GR!47F1PpQ?@lA4ZV z*@ALot-rXGt#qoX0dR%l?7Oy4}vEs(dnL{4(y3^9`2;%XX*`Y>3#RPdf3Y! zlGrGGf(c4VD8dGd9Hf~>Z9d~_137EJYmu5vXo_Jn>j`!cCZvsZWgj*=dFhw3$SH$tC$Fe|r23M_zmAh3==N>m&tQj7ju`d>smp zDnRaM`+JcG8{IVL1Mi(|8?X4t_NOEzj_CupMc+sJE0AgYF@{>0E0SU`ga|eE2c?s-0UF*#Nw0={Zs-iUV6-XKL zQ3AC#^Qie7#C0W%>%pyr5!Y85sBZzH>zzJL1hf^LSC<-g3}py%i;}JvF^WzCEA8Yb zElSfydUC}a(lSh=h+#}lwextLsWvBWGfq{63=7s@elgzrVkBK6TWsi8YSE#@ck#If zG@e5Hm5`OH33Zqm@U{~btqhmo?0^HpUa{vC1C;`q+Lp1`M;v*HiyLIQdgRN81E(V$ z$>j1+L7?zFVKULpO~JU6(#bs+dV4FlEMv063AiojLp{W60I*vUijF=!PCs2_DG~T0 zRMbqLqF=$7xUnIhVw>-6nJ}uql@QfZbu`?QbYv$2$SeR4Fe1cu1Uf9JLdi$U5UWWv zY-U5x^W}A7pI73uJ}O)sfWJ3a(*;!i%GAI)8luX97oBy<;vVmJC5DDD=(_xrrDE=_ zXzmxRs$L8Q`~jZ+Hj*$qI4hvu`!iE;V=S6qT-!YWr#IK88u}yk!8jui1_P(2OzRIJ zJr`uDNe4Zz2P&*G)72=qtbn_M?`s6TDpH5X%nTDR#wK9bRixJwR~Z=Sf%T71U)R@b z0C4CT4Xdof$~8SD&eKRvHoD2Ajnx>s8uB-`xrJFAS!1^XZa&UMepyN(-9-z5u+R^V zOv1~fKDyZDb~mvdWyX;7)}5V;o0t5j$=XX>D5Tm5+Q63-DF&!~pQY(<^W>KbNyB;v z0mL6~?oF%e`cQ&xiR~nR%4w}FFCx5Et&$=rQGs4dM1;GW4!^65s&2K|$N zabAL)iJcVFAuHg)uQntv#)wzW1z zGzt=w#DK+8wlEcKzU5Z)=?tqp*Yf9*9cw$vHnI z{Kg#T%*|Ac&*w%~iF;pgK1756FiwN#ZqLOyQnvu5HNS%t$q_{fZZg#PDbNLBzf}k& zn7eQohd$69@Pa#fGObk-eCcw#=ylOQFPJZ9gFp?+?By< zkBED3tqEbPV17YEI6IeBl zsQV8udyI59sKXpB%e_cc>t;XKdD^S1#aA1tBOuw<`yS#HG1;Pel2-P_!7eu$6W}Hr zkAiVS?Hx7)u)fa`dlENjd^{p~*^w^jWArJB-imYzgf~Kqp)^1h(BpW;V$z#UxW~6g zjXhC2_Q-o*vvRE|NvmDkG;S#^CzRPlER2PbC#H4FR~J}1yVhwQ>-oN%H48RropfA0 z?N{wcSMpydrnOQ!g6+D*4-ZM~E=?+zeL72h-!+=Cn?Cb~ApI>}<9*4G*FbpCV?@)b z*(|n#dSV?a#^+@|I@4BDYr88oGW6qC`EFUbUqkA;qSoEdTo;a0=2Ho|bg?5ZEO6%7 zK3w{Y+St_SN?*-Qi8$JGNXgtuiJ(8THxK08dtmRvM*I2rWjU@Hf@$3l8!Acq8bZnr@J${k8h`2v2CZGeZy#LR^OOr zUtlEre72kc%f5n;ZI^(Sfs|L3i~{TuNHNl5dY|u?tz9Y*4K2ARxZ3S$$ih7VN@gS8 zxHZ+Ku@hNBL_N^yc6;yrMhC3b-3)Uo-;t1~tG$BI%? z-j*F&)pz;3_tacG+f=WfYzm=nrUk5(7(cUT@2BZr#xqH#9b9Z10-uUpo0wxM01I+o zJKbb1Jnj&8Q~$8yTwGA0x+?NOyQ8)FgZ}qLob=HcPcbJY9?NiUljY~eN;GCIDBYC; zSXi43BFzjXTE+DWfqk+@d^lmwcO!ycTt2&dJos?vb$+0!^`Do-&)$$N2j;0Ydzc+lgusrKIAV2M0!>f>}g|>VoR2c$lA^R{@Jc(=%UN2q3N>0()_Zzsn28Z(&7k1>q)y{ zFF(7MBFvV~MI>2>-om}osqHFh9n;>j?!ZXceOYJyxM4qN*vtQDk*zL<&1X3B zs>oHarNdK3uLZNzw<#tZ0~og-h>h~M5EVeP+1(4ZP&UJHD>z#8{Gzjy#rvhc^7=`7 zwF%IRD5|blna>2;>Zmz4BI@B;gw2!uer#HEZbOB&52Fu@1U5-S_QleU5Pn@}Fq=VX z-=yL}?O~MH^*a!re=d)z-Prs#V^;XJap_+?S;}J?uZa?PJ?QE$UyTixFNmh;g6h>a z_*Tk{{H6igPX52)+42{#G!mrw&ka_P-7Ci>=W8xfu9Qx6JN@ZTfUrmAOuelgj%la! zAfM^}HV$cFu`6>Hu1FO8bwQ`A4{dGkktMovOm2nm7>Q}=+)#m9v|;9Kgwc_o`hTQR zX}o+Qdr^8NxCT_eleSuJfNyVA>G}*}l2;N$_8MN+R>A1{9xOEaPGy!!Q8nZJq>;7* z79kr7ArkC&?z3X9YfVK>6BX?IFvWt#hQyiWL(TVLgCE!%&=8jr5wMt00}@l0~1$HuvXxT6J1I6b5n%OcK_nfh>|bcdElQjeAeJ4JT@;WH!z; zTWhB(w2l?i*~*4UI!u6REtY!HSJll&U){fbXy5T{Bqx5oq`=cu(9+GjuD5RF)2elA zC{PHEF4mNg=NGMrT^A^-gp3qTfLkDId<{qK^CyB+N4Ws{84aKH^}0+U_u1@%vvY7G z#WS@zb%J302KN`}-~g7|*C{6=E;?^9IOOXI~FL( zEdm76--)Du(&U^LWVUEXxiG!2lz4QaZUnnSuZF@Jg?8jD<@o%6Ve?AlDelZ4{TQZ|*b?dr<%EFfH zWKYRc{ON!nPkaF89Kp->AvbowsQCr&eVnNO)OJHcV^bWp!!v6ymgxI6-QuSe-%}0L z@90x*V(XAp3)(9Li(ahVAB9}3+07GyoN9hbV}aNR${T;x-8!J-6BI33XikXG&AK!`*&C*GV*&UEg0%Mfs4?Fs%c%{2lKB{WkMojPx|E zcVI&vxMvRmrK2b^cMj!~#?Y0gk%}?oN@Q8OvHZ{FtgJn?HH5|aiu_Iv`iPA=znoZ( zhVgj?YY=y<*F}A6Ox)voXG6YdW06Q^_QBz);xKVo8%7!k+R1jXTim$io zCpZa3-#r_Mqxk#w!JDP!r?%aLFP$L;_w|xI;W8S6DP*CO;~Cb`DktU}@5z_mBBvvl zxpHPolvn%JcmD`@UH?Ivf9J~R{yqImqL{8vA}!3Uf>>j@ceqz&8&r^&Cp)R@dnVeG zoE9~$Rq2=NbwETlIqu9F8Ut*U3*Y4m+jqb{7Y`xYs0KGbV1 zNwmf}tx&6k%s%Oe9aPD4phSNiT_gEHlVLIDjCa>n8D7*a8W%y$3dbIc@|AR5hnkJ4 zo%A&jH(3YZl$6>$6S0T3^^PVu+dYpF|1sX|Eej!3)Ni1Br#7H#-CcMzK^LjS7|Wj~ z+h-KypoM_^sO!5zhk#kz*g8qXon)?D<--2k9&(2EJbq^}vU z(8|(J$g)2M*A@q-+O)1SPMqQ8Gjjw=S&MJdgaMI++;V0^)X(f{C70?U>nDkerz{d< zTuFk-;^htaB$3(+Ps^^u=dtqGGLcB%f+3K9LpXyI!57A3`Sl)fc!LU@157XBl zG}RI0jq+%YC&Hw_(W^&4hujBraj)9M@2}$XQ|YLxuU8bTiL1P%A(o=+APv`vde^E9K}8Ls_bzpG`3wxZU7kB)kF?af^jr(!#75^M zdZUt2&dsjSPPda^)c}={cP#HVp-;aWNh+TFq=7XsI_DXUm^+sZxk3mxsK%($_ciP4 z%{AG2_FEL`O&fYvvG)V0e4RJT*baPyExk)x>mS#$+UN2XeC?K8C`_=wo1#p} z<`+zvf88m{Hg7lzqv0xJD|UMVSltK5OCPa7OnM&m*4=CV94g@|U%A;{YfcdeRoe6> zdmlqyT1qnNQCb>1n73^hnWFKlZu=!Q=@Du&yDe{`go4JVI4Ux=_eQpwNvkky%tRS< zcBwS7-NK)RT;j6B7fH!v2 z@jgQ{{lK7xkw|LcBuyJDO&hGFb51ywJ6&luaT#FEuspcnNa|S4Ucqt7&F!0+hKzJD zYFF^P^3<=0;jbTLSEa2k{;TD!Uiuc-=J+}937FORvtbeuTXQppH^ zs-iIPtCq$z>V6%2J4MsX*Y$X12AE0?bf<9{Pm+-wufNQk1?LXLJ&w+g9O$OE)O#Jv z?Tt#QTW7aQ=_^}dppH|P`(031q+~K+owg-?(Icq`J!kWW=IZB0y{~MnwX4>81|D)N zGC>77d@nm6kWXl$eKB1>O}qSqQlp%g>HVyvxT zUmUL+P`x_72B5i#3%-Isi?FR&wQVPb`|ZAW7sXuGr%ly7<{j!Par8vvl_sA)vB~R6q-pK? zfLPS04iuPnQ9ld7^s-vH7@yy}@w~`{90M%MxN7(!vaU1VvmL^ z2#dezz?Pt@4BM2`0fI$pcXrxIp3Y0nR?tnOwuwSEKtMjMl5&3XwX@Po##bE6{g^{bQg;o|kK z^Ph}eczn3jw0V4`#$mtyVc&NBHf-erp>-X>_yvSd#!4|Q{+ZHSJkeBN>-E*JdP(e7 z;f*oeJ@Txm(u14&0xX?5k^YNTg1xr}XjV;F7xhpIzouCR(kIE3XI<0+;G4?`0WSQC z1nSSUia*84hh%DES0p)zC%cE4^@z!qyCWQx~bYmxrTjY8O`!S-cXmn4=0 z%&w%1O~59506j;5gL-z9h-b-YUVqHZVBZ>9!I32Kb6@aCT0Vt75otONHop;OPdoQi zD+km@cX1Pvnvz27ykHks&`O}rIhVG~;qam=-=Za&_PM-^A}RI>ZX8LcuHa?F`aKso zRinCb>f^qu7qU)6f*1*N(Cp4?T5f!a)zZtLkHSN49pQrQG&7-1>oH8q6UXLXrpsy5 z7g-h+Q?<_UE0Dg4));kR#b7;trraO1f0$?-H2o9MPj_9*YTD=^(~sc;>Tbru?A=F< zu{}84&63^PxX}&)Jss7AP;ZAKuO5qmcPW~kY{L%>SKzfwrtU1}$#U2$brLTcnep>B zgCp?Af+f}T6jeb(gZyfpDM6Jd1*S0O8R)aFWBHvaoVaeitP*#ua1U>JKSjhUtqkG>9&XMm zu+IB9QvR|=Z5-*gxMz}{b*l7fJt6>3NrZjC50d`jtfXM9`Y)osKUWdG%)5axfd|C2 zS`wWfrLL<`NoY^G!IEnlJ6dNPMhaT3wl`A;A}~Y;21DWoA3c)wPWAwVQ=xP3H)h@T z_z$QY72rgPdUnk^`PCVa;+zlan2&<=tRnR+De@8pkuBe$(t)T$xVi%n_3vEb)*p&0 z?Bcz2_BT}_;4AywRIPLlgO$;Z*;SP1=zJ7i6fXwMRYM{PI(06)9fRJIM76U*B&gxU zIqpSX>T+=G*}%DYev>!NZGx`g`T0%@EvPf=bL)@q9a+(q2P?KryH(&m8q;DnVt$oZ zp3*Y{mVm;UY^|V9*$$YY)x$X;Z&}`d#Hzl^8{fL(m?wY9xuDQD;3{OjgKX()tV;JqL-sRij-eJZ{fF1|AlA}~8B&3QZ=O}tdjaUJ`0j=JUS{j( z3h=DDbyeM79l;61o^(St2*+AYt&cgnH!@sbILm~a-(jC_aMy7Jo!(VG>A6y@oUV*K zx(*rH9kvgfuM^yD@%cq+O1kAv6-Q`Ee*cE(#|rvc+Ntx1f~m14)>e>yuZT5UGn%e7IVozW_ zDe~KgcTHx@d(`XO@o%p#%HZZ&ZRD@W)q-;XeG(c-R1CqKdPBBVTCw4Bw-3WlY=NF~ z2j2s)ndc$viqh{DYLmd80AEv}1r~yT<=CyW_+~LSuWUbEc|lb?rL5R)g4Cg?k%WX` zgp8*OubkjH?KfCLAe)T4Xa}M%%}HzrJcTCApW$TWBD=_BPxIiJI%MO!!;tMkhoFb2 z5@dVdIN-{oM?7u^_ggM6Va(YL+rLr@;W-!*+M5dhz|ssFa3vIJ1%> z$UAa=lW5Q7&Lri`GOKd!7-K(OAh|vpQebnL;>iUm>@TRTble(jfVkYQcw-Nw=#qfH ztm$SP+#D5c#Q3~~b2cz%YXIU%Tu1rZ^HA~O7`j8l%wkMa5+=LACZYTv0zPSf#2ZmO zO-@Q%-JRFAu7VbktG_EDne=-Z&wMnX&n0dFy9zG$HV=geBGNFMJNsn|IOBiO)e%QP zJ*_N;wyLj1+zFyaTEJD4+m=kwEw4P>(2;)wEt)Kr8!su-;d{$>mPG{%#c#&zI`#51 zdd)_hG;Gj>w+cINjNr;NwM-s{Oz`EWe4oTb!F78bq?EX^1uhvbTw(E`EV+J%6g~xY zaQBm$QktALTv=^Y(Ia?{Et(}IGhFI=5HEgkkd5h;y?z;5>5IMri6h^elRPQQhrc!4 zyI8dmBp;Z`Z^|0^SzseGnsonJj!$s{t)9p16`~hzkOa?!FH51#MXJQp>XWS$kuTW> z;CyQlXyhWjMn3)X+a8xkkJt+_z1tK=&_S!`g%&R4}kn?0pU5X)FDN=ebrz*H2RR<$;nGdY_kpI=;iuV zt*Lpo zpe6CEC>qH~qfcXI!iGkE(BME<>|r2_84SVnz#kDV`5v~R9#UBwUJG!}>)-l~wB8gP z&bE~pb^+B@fS}qq--}pT70MUHLTO5uMThH+~~y(AiAnXC1C*-bv01MH3Pq-I58lbso$hppw& z80Fbe|pow=;*+RZt1()o-9gC^URF_ZY|Gwgn`>>RzUyCrDhv4E}d80P#?@xG_OY2*rH47#3Xe!{}G z*G3HBU^;qK`q{-b(5<4K(yLz?uALo3Bbz4BrU4UAPHsrzX(cIZMyE|&Q3$d~mVWvw zAqk`R;~T#gfQ{weMxi|GJ|bw;9;e&@X9{s&#Zf38rGzak?K{y1frH7Fp2Ci!hLUGU zbK5tbh0-n5N)p{ko>cZYhAq}yHID*`8OD%;E02qv0aZT35x4Xn-N*A*{Cu#zz6Uz? z_wvf2r!ybl6vk&*k3MjoNJfdFdqONX+QffQ-ypf#t@yP~3*wc1Ov}xhwO#W|WYNXg zPWVEK6}_=|74T~MXPTI-wFMyj`Mj~wr@+RD4$MQA)@S0xgKj?hXtU9NOz6DL0WfcR zARCt;@*-9RSUV?I5`KVuW8>tDn!OR?qGFgD$6BIZuI+`i!x$@am-Xp2{TxvG@bz1@ zo<*!+y_InZaP0<;;hiB4w*7N6zwm%SDUYrj(h%^F?D4 zdA4{Q^gbz}HJ#Ku1_`#`Ksmu+pvi5Qzk%p=hzJeYRoz|P{hS=RcC(Jw10O-s@*6+C z>wKi7zqIDW>qUvfO3wTl-Sq#ON*RR&tpfcj!5tWx)mX{*B~*@_i~UroWa%k0)esK| zXKShpP>s?)r}?93S#)k&@B`saMLI)Yk!zW)hWeY-ICe)*nuVNO!f{#F5jP48wHV3K z0wo=-M?bc_9ZCvUz5_d%xDth}<%JjH>SRwMMb5>lBgUS>ELahvqSK z?QlxP9DLd*udqN8Q@9|H8(mWW%T1*i^7>|lOvGhF!^MT3ADYzrns_daOC+I8WMrGv z=jOK*0MYmJEC7bRGr12@D!zsk+B}ka;oZSW5~MpC=0v^q>TKwuaVPZaMxVyukNA8F zEBp%eRaOa0<04@pp`y=qJjbrj4OSFvf;>6$(P3*Az(c>a_3l>n1uRi0d40 ze4FpJFm_pZK9@F_xJ#~-Y3m#u72QsU%HrMtT3Ub+U^B)p@WM6uT^dhX3Ppn7mhx$I zq7=xTeu_<9o@|DL?>CSn9^eoNks?uxz&XoN0#&%ScJuYeED)I#uirq~7hrT(ngq5Gy+UAp-AGPKob)=(>hhF$e)1yP_Hu^| zRaJ?DT%7coYdV&QN<_%swrB(F!%BUMWStuo1DPJ&)&MYKOeU=>&)Rv8Oo`_oT3Az+ zc;m>*{W-+S%7sY#m1Ww;6GEKAIx#iSTqPjlCixO*s#OdnZna(iLyl*_4aPJKjB|rc zE)WK{Th#jv)R6t~HT{P5+C@BbJ9#1oD>`NB*ePnJKH2cyDiKE};CL}uCSKQ?^J&n* z?96lPuE1ZX6DdgOTbY4{D`SIG1BIYKGHi#N2&1kgnH3d;9~=qobxol|MXh5{;sW57 zX?GOtzxlc~EBw{$%?3&S7rr#D5m0K75{NNhH;FaQG1EH({iHTrJonNYJh&ia4-=_@iXk8Kt28~YqCYetbcus155Nvr* zr2E+i?K!(snC!;AW(7vkFtX#*qZkHmxw_1N2nAtMNoB=1BO(%62yEqh^l>);I`e~# z^I{Z25mw(wVT6M=ATBSB3#my-(}*YNPyC8P?M!O$In9M$YO14PY<;4aNglz zFAUU|2Ehtd$52~gz%8!h;cEt9~PwpO=P)3+aHFm-kVOST!z~T(h$x9M}ebN zg-upamU8wkU37k8-b;i;rQVzS+4A$7)J(=qbGXvaUVLFg=3N?iDzjz5EJR=b$O%=g z&h^hvzsQ#P*ZOTQrdR#}htt}tBBDtbeyl#U^c1G`iCANq9d1opn7d*rcedX-UO+}T zpr1*&m%z(XhW$H>gA7t@4vT7pq5VSr%7YcL$stHv3--J%JFV2MXBx6V>@YXdpGzds^(yiH(zmI;o5M z?bT`^1}P{j|J@K5mDtQhiJ!zZx=LtoS75v!A5 ziD$cO z`W>e9PPs5i14>jChJ@iRO1MTqt5nHIUF%KmcTa;?9)geQLo6eYl5KAJ&4rwKb`{XE#9 znMa6<@xniC?B(eJ7R`$@a6R54crVGW!2=NeT;SKBmzR%leLB#ambA0R2qN7&)0@u2 zNLMx7?p-T3Gs`o^P=b^k(EubsyW{8pWM3lGKwsh;wmqGO$4lM!fJK$NNL#meqCcGT zH8Kf9AY0$t&B*JUgI6YOas^(6N41y;|S2JhX0O*A$>!(0&965Ki z@n-fgx$0={C1N9Gn^md^oj1|v)VVc=di!tPmzV24Rws@?FHzEV^oiF1NOwr>Rf$?Z zGIg?M9@@7-HXTAIHN^~_^1G&A{>-=D1vC zJ9s)e(EtARs}ke8*R!AcSn_N#Od2%0k^2k8?Bi4iJI_{U8)Ld>Q=QK5Z5s7fIR6@>hg|6{mSUjyRJc{4nB9)Jb-luh3u7haJ~Xq|3H1$s?~j?Qa$+ zk_N4XrBxI}>2WJ~vb}(de~Omh@`<-)%q|#&B+CV?W)j!{JGLwb!AmF>F_$Fg0{&@vEs0> z-deNq^9O`RF0w8vzR9Z7_PjGfOFxAj=El)>pg>J;*a@OxZ^iDp7rRSuUPj=2_(Hd; zD&6O-#IM<#Hl0DP-b>y}CXM}vls57j!go}nK?fSZP@Zx9e*Jo?v0OZMhhyKiHqAuy zI+7Q-G!Y#>V5Nq8TJgqj@%wVBxr+$(!^|jdixfHcuQ((pFpkB$#6{c&0a6$VX1f(d zD{O!E*!J*QKeyO=&uBH`Gj7(wq19+zo`eJW^#fHNy?qk(FR=<~Vp2IvLRQ3&w<07i zfuM`nyL2(6H{Za$BGp#7Nsro_+>yP9tdONso*_^pIB7a*@rx&}$!wC-dG5MtcjI2X zyno&N@QvR?31b6waf+*Y-6GkWtTj5cS-v0&2vP$boj@NjXB*#+f7CmuG_7q5SCHr+ zo*2;k`OO@8lkABeq96L6zQOWO-OFQsiq4bCc+1qvH%f3zH6?!wz-kUVJ0k zE}t#mZyEG%?6x0R4$7kwXFae@e^Zt3Sec{Pjr`J7f{^E1|Jc%*;iv+XbN%237C1|(e6B{BA`2j+<8XhKR`V$ddQKiOT54=*eL8bdc*#k1G zZ=6A;i*yv|k`O_)#ZS&|R`a2*Bw?Q!>9@K6g6031UlOIFpr|*%-35*wx~2CuJGF|T zX0~2(-2{lo$F}?LPqWvh;@EQAUOo_=$K5>`2CT9?5C(j0uL5i9S}CQzr15c8vI`Q z3h*WIGY9qvsWg{^0UL;IZ|NGzn_u&8c)cgPO!Gl6Q6_TE}-?B-5 zjLq5feVxoi8K(gu{!1C;9|G^c`fL1W9T|e}J=g5+HU4q{5lwh`y<_+;{(~#vXO{A= z-E#8Q1qr6B1I&mo7J-xw8PAJ0I0)Cyb|E4?<)&aX+uY9WI$9T$J;I#sS zi)aupH$+7_UAR>tulm`2N~j={m|}g+5vsW2`LTYUUM&bIZ%-^>Dl#C34w9iAk{J_| z(OgZ&0o7u8_N5DO?e zwA6fR-wo23pub$VbpBWuzlXS#G)^R$gmGLhhC(@;FyiA*@1mF!DPIab*q>I8KVK2#E%>3$pOlziQWPbj;eZpm>6CjIF{eP&*|7QkJ zjZRZbxAadTz&{M%2maSnz6F)~f4)6`Ueg&*Q{q@4vjKk$H2xth_|{sGH)wF4{l|Or zuR;q)7Ms(QHtRpml|MBtP%LB6K&+thW%l|{M8;=xiD}NK5kwwI-<=RDc`ccHNne-H z#>oirBjEm;J6aP`Xpfj#aSaTZ5xIU{xga<2>93aB{RhAJR7_GJ5eX8Rw&J!^27S>ccPg0T+YsX_OZ;J z?1#~77VpL_5~Yw5rFJUp(izM0*wss5AL%kYlW7x$&0Rh&A@v=Up3$9vT8;PmQ*zZjt^!vSC`p5Lnfs-P|OrR%9@HT%6^^(0*@%ziH2-L{3pH(4cAt+P4<=B~~}lVnd41$B9Cv1f8v!m9Ct-3&yjlOQlV5Amu1c8>CXj*i7=LPK?IdFped$yO@*BuUBQIbqSR) z@0kC2;FKeUKa%+WvF8PHl*5=EZ%mG8hBYsGAJ*@BwQ^&vP*(rc;u1{-KE&fccKB6s zUfMg)zYLzl@7F7Rr8(T$@|R1{{C+)cR_2}8M*q_3zuZhVow={Z^zHRQN26VZvD;z; z9wQ*{#|cg5w$I-?z2#IBdel_OBlw0L38aL)7AUgiPI@eBkFgW>$A7I2HG@ph86?Nc zVI@`JeD-!WcSin1!1q7e`|6;$m+j9Xc(7o>eF*M@yF-BBIzVs@77`?ZV8I7Xa2SFF zclY4#GPpYgmtY|~_uYHnOWtm3x3=mhTeW{o^|!j_+uzfDPWL&V?mp+VL(0EmNdP0# zvUD{DzI}Y8Fp_s5&qI>&3q@doq3@G!I+m7DTMYtP%f47CLfsF(iUQjNVF~Av?cBLo(S)X;?%DU4s4`ufHU3SU=+xH!!ca zexT4li##>jnd>4aCB;(hKtz&ESg$t&OyTSr5M^gLXqEo+Am|5e%`n$PsY}y}j3i#X zp8MlJ$^YaVQ`9RG5~*l~E^Rn3iG(8qmz5b3cojc zeG+_sYj-9D=hYkQpK8Qct)9by3`G3fyl&E%JP+c;Pc`tx1cUnr;NA;q%t`^e&DtmH^2 zBITV~*m45Zo{m#XaTAw4l%E#J{OT?$fB)DLeo^@f?&s}YO?6xeKSSH@rn)^S97Kw# zB+%99=hniF#>qR-m@A!kG_S0(jQ6xqh$9SA>Tgqfy$5u>F+x8;n4zbQ8sJ; z5s8%C!AZFez&e$aE^Mdxj($z4QNhW9mDHxhlnD1lJR)7YBn^y%XNV4POzDp4f zA;~=p4;x@9NRpKVId}REb=*3-YW>no8;@S16(3<;S$9%$!v1jP4gC6K@`5b-fUt_p zJr3gNMn8+IEw5t*u)y5#m6^x4h6}<^?EaaxA6CBkk~+zE;UMQ9w@UD4m^3ip|A z12*=yA^hJ9M_d4->6kAa9XXYG@13o!D|eLgFC3EpY3}^T&L(e<{G3|oeBaq^&{zu%Zu%K8FbIIQ4NCGavhaDbRq!lXs zAo^buJnQFHJmWXJUvlm16dka09IljAshutKmdkt|=N#UCh|$|0{$VkZ@lck?tbWJm zcT+*XVY)+=!sE?6Jh^9;dnARI)YIYjcy$@FZL?Bbv!&YmK)8S+#!8+(b$W<7`+ur>yqjjo@y@G{l+}? zM#CK(0lE}b{dpLEUUmlVcD%j_4@C{!-(Sp5Q@s_~?=kRTZsm?{h4^DjqSlG-Y?+Jl z|L*O<9k?RiP5<3s8C%2kJI;TRq_*ug=wuZxkQwnIii8EpA;b~V89KUITWYJv^oc7& zneCe~bjzS`?dPq6l-_E-rDlKcouq)GZE2;e9Mk_{cN%0Aw(aoSrDqF8p%bcZxePhz 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 M@Bg(D^~dc00HzTmS^xk5 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/logo.png b/packages/app/studio/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6cb5bd984588eaac61b2ec88702a63daa2ed37 GIT binary patch literal 89953 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 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/manuals/browser-support.md b/packages/app/studio/public/manuals/browser-support.md new file mode 100644 index 00000000..91a60269 --- /dev/null +++ b/packages/app/studio/public/manuals/browser-support.md @@ -0,0 +1,17 @@ +# Browser Support Manuals + +openDAW is tested on the latest version of all modern browsers, such as Chrome, Firefox, and Safari. + +However, there are differences in which web APIs are supported by each browser. + +| Feature | Chrome | Firefox | Safari | +|---------------------|--------|------------------------------|--------| +| Select Audio-Output | Yes | No | No | +| Midi Devices | Yes | [Yes](/manuals/firefox-midi) | No | +| File Api | Yes | ⚠️ | ⚠️ | + +## Legend + +### ⚠️ Workaround +This symbol indicates a temporary solution or alternative approach to bypass a limitation, bug, or +missing feature. It is not a permanent fix but allows functionality until an official resolution is available. \ No newline at end of file diff --git a/packages/app/studio/public/manuals/dev-log.md b/packages/app/studio/public/manuals/dev-log.md new file mode 100644 index 00000000..296a1a29 --- /dev/null +++ b/packages/app/studio/public/manuals/dev-log.md @@ -0,0 +1,243 @@ +# Development + +## TODO + +* PianoModePanel + * Show timeline navigation? + * Different note labels for different countries (Global Switch) + * ~~dialog? to disable note tracks~~ + * ~~Control to show and edit signature~~ + * ~~Scroll Y should change engine position (FW, RW)~~ + * ~~Rename to PianoModePanel~~ + * ~~Transpose~~ + * ~~Go back to the timeline view~~ + * ~~Open MidiFall view (or Piano Tutorial Mode?)~~ + * ~~labels on falling notes (~~Hide when note is too short~~ clip)~~ + * ~~control to adjust visible time range~~ + * ~~active piano colors~~ + * ~~different keyboard layouts https://familypiano.com/blog/piano-keys-faq/~~ + * ~~time signature / octave (C, F) grid~~ +* ~~Playfield bug: Samples appear louder when polyphone~~ +* Attach a CurveBox to ValueEventBox (enables having different curve shapes in future) +* Make effect-bypass parameter automatable +* Add SoundFont device +* Polish audio playback -> will have unwanted sounds when start/stop audio segments +* AcceptingType for audio-unit should be a set? +* Admin sample management (rename, edit, delete) +* Do not use an unknown track for busses. This must be handled by the timeline view. +* https://bungee.parabolaresearch.com/ +* Audio/Midi Recording + * Solid state for recording in main-thread (none, running, cancel, abort) + * Listen to all incoming midi-signals and create track, region, notes and automation (revertible process) + * Record audio to memory and create track and region (revertible process) + * Preview / update peaks + * ~~Count in~~ + * ~~Global shuffle~~ + * ~~Midi generator effects should continue to run when transport is stopped~~ + * ~~Time-Manipulation Midi-Effects~~ + * ~~clamp pitch 0-127~~ + * ~~release notes when changing midi effect chain~~ + * ~~release notes when pausing~~ + * ~~Sending notes to broadcaster~~ + * ~~Revive regions/clips~~ + * ~~groove unipolar (percentage)~~ + * ~~Replace event-targets with NoteEventSource~~ + * ~~NoteEvent~~ + * ~~Remove chance, playCount, playCurve (not needed in processing)~~ +* Playfield + * ~~Panics when replacing synth with Playfield and undo~~ + * ~~Remember~~ + * ~~sample in edit mode~~ + * ~~octave index~~ + * ~~cache editor~~ + * Fix envelope (not in prototype) + * Fix loop discontinuations with fades (not in prototype) + * Update start & end while playing (not in prototype) + * ~~Reset Playfield and delete samples~~ + * ~~Automation~~ + * ~~Exclusion group~~ + * ~~Gate-mode selector (Off, On, Loop)~~ + * ~~Monophone / Polyphone switcher~~ +* Stereo Tool + * Stereo Widthing is not really working (not in prototype < no easy fix) + * ~~Interpolate matrix~~ + * ~~swap channels~~ +* PointerLock Api +* Midi Pitch-bend +* List all midi connections and edit (range, remove, etc..) +* Name constraints (min, max) +* Find a modifier key to always select +* Offline Tauri version +* Offline PWA version +* studio header > peak-meter +* peak-meter > hold-value | rms < PeakBroadcaster +* Implement presets for devices and complete device-chain +* Preview midi notes (https://discord.com/channels/1241019312328675399/1337837099302391849) +* Different schedule switch-times for clips +* Double-click the input name in the track-header to rename +* [kurp] Making region bounds in content-editor fully operational +* Timeline navigation in other workspace views (mixer) +* Spotlight +* Flatten ValueRegion +* Flatten AudioRegion +* Absolute time display +* Pre- & Post-gain FX / Gain-stage + +### Optimisation + +* Only produce and stream values in the audio-engine if there is a visible consumer in the user-interface + +### Misc Bugs + +* Setting a pointer to two different targets in one modification breaks undo + +### Panel Management + +* Resizers are only working on the adjacent elements. +* Resizers do not open/close panels while dragging to increase/decrease space +* Resizers on min-size and max-size should remember their size in pixels, not flex (example: Browser). +* No indicator that a panel reached min- or max-size +* Switching screen will rebuild ALL panels (should be reused if the screen contains the same panel-states) + +## Done + +* ~~Learn Midi Device~~ + * ~~Keys~~ + * ~~Control~~ + * ~~Store midi connections and reload when loading project~~ + * ~~Copy on 'Save As'~~ +* ~~DEL to delete track~~ +* ~~Having extra space to drop new content below tracks~~ +* ~~Long labels can blow layouts~~ +* ~~Table of contents for manual~~ +* ~~Reset Parameter Option~~ +* ~~Piano Roll: Velocity represented by Opacity~~ +* ~~Auto-scroll on text-element~~ +* ~~List local projects in dashboard~~ +* ~~Bake colours and remove filter~~ +* ~~Audio Output Device Selector~~ +* ~~Choose region color hue~~ +* ~~[kurp] Creating notes and value-nodes should appear on the second pointer-down not release~~ +* ~~Change song length~~ +* ~~Changing hash in url throws error~~ +* ~~checkboxes do not show automated state~~ +* ~~Note Editor Properties are not editible anymore~~ +* ~~[Polarity] Simple Sampler~~ +* ~~[kurp] arrow keys do not do anything~~ +* ~~Add description, tags and cover to project's metadata~~ +* ~~Add new effect to chain (right to the instrument or last device)~~ +* ~~Move audio-units within bounds~~ +* ~~Drag'n'drop devices in chain~~ +* ~~Add message to error handler to deactivate extensions~~ +* ~~Recovery Mode~~ +* ~~Drag & Drop inside app to create and sort~~ +* ~~[Polarity] Add + button to create a tape and add a sample in one go~~ +* ~~[razcore-rad] Revamp EQ-enable control has no automation menu~~ +* ~~Update Manual with shortcuts (like undo/redo & scissor)~~ +* ~~[razcore-rad] Dropdown triangle (note editor > property selector)~~ +* ~~Value-Clips~~ +* ~~When deleting samples check existing projects, if they will break~~ +* ~~Waiting state not working on clips when starting column~~ +* ~~Follow playback cursor~~ +* ~~List selection~~ +* ~~Multiple samples dragging into the timeline (changed to context-menu)~~ +* ~~Show Playback-Timestamp indicator~~ +* ~~Converting clip to region~~ +* ~~Midi Transposing (https://discord.com/channels/1241019312328675399/1337836390628462614)~~ +* ~~Sample Preview~~ +* ~~Show insert marker when adding sample~~ +* ~~Ask for replacement for deleted or incomplete local samples~~ +* ~~Drag mulitple files~~ +* ~~Change name & bpm for samples~~ +* ~~Drag & Drop Files directly onto the timeline~~ +* ~~Import custom samples~~ +* ~~Parameter-Knob has too many control state indicators~~ +* ~~Show clip-area when new clip is added (e.g. convert to clip)~~ +* ~~Import / Export zip-package~~ +* ~~[Coral] Killing all buffers (on stop) can still reintroduce feedback out of the blue when delay has 100% fb~~ +* ~~[Jetdarc] Missing automation state for channelstrips controls (track & timeline)~~ +* ~~[2L&L] Possible to create a region with negative position~~ +* ~~[Polarity] Seen that an automation on Revamp (freq) were not updating the curve~~ +* ~~[Jetdarc] Apparently you can set the bpm to 9999999~~ +* ~~[raii] Selected notes with higher pitch are not captured with higher priority~~ +* ~~[Polarity] search sample names within the string not just the beginning~~ +* ~~[Polarity] Sample Browser Search~~ +* ~~Implement Clips DSP~~ + * ~~Better visual state for playing clips (hard to distinguish from non-playing clips)~~ + * ~~Drag sample on clip-area~~ + * ~~One-shot playback~~ + * ~~Do not allow dropping clips on mismatching track~~ + * ~~Double stop must stop all playing clips~~ +* ~~[kurp] 0% in gain mapping is not silent~~ +* ~~[kurp] overlapping region when creating in too smaller gaps~~ +* ~~ADD Donation Link!~~ +* ~~Show Update Banner~~ +* ~~Wav-Preview in sample-browser (better than nothing)~~ +* ~~[kurp] Always play from the last *set* position~~ +* ~~swap devices in chain~~ +* ~~_Cannot have panel open in multiple location_ when adding a hash to url~~ +* ~~[Truls] Playing notes from the piano-roll~~ +* ~~[Truls] Restart audio-engine if errored out~~ +* ~~Export must open FileDialog with a new user-interaction (security issue)~~ +* ~~[Truls] When the play head is moved during playback, playing notes should be released~~ +* ~~[Truls] note region preview is a little unpredictable for short notes~~ +* ~~Solution for output device chain automation in timeline~~ +* ~~Option to auto open content editor when the region is already in edit-mode~~ +* ~~[Truls] Channelstrip at the end of the device-chain~~ +* ~~[Truls] ValueRegionEditor does not allow dragging loop-duration~~ +* ~~ValueRegion must hold value when ended~~ +* ~~Channelstrip text overflow fix~~ +* ~~Select new region after flatten~~ +* ~~Indices of AudioUnits can be broken after deletion~~ +* ~~Error handling like Sentry~~ +* ~~Still something wrong with the track indices~~ +* ~~ArpeggioDeviceProcessor & PitchDeviceProcessor UpdateClock~~ +* ~~Kill all buffers and reset all devices on double-stop~~ +* ~~Delete Bus (2 channels without output) > Create new output > ERROR (dub-techno)~~ +* ~~Create a test all pointer targets entry in app-menu for debugging~~ +* ~~Proper solution for ordering instrument and bus tracks~~ +* ~~Allow F12 & Reload with modal dialogs~~ +* ~~Minimized device version (collapse)~~ +* ~~Check audio-unit "bus" behaviour in timeline (creates an empty track)~~ +* ~~The content-editor does not show its scroller (no much content in header)~~ +* ~~Label has "unassigned" in ValueHeader and missing in track header~~ +* ~~Automation track are not being deleted when deleting the device~~ +* ~~DelayDeviceProcessor cross missing~~ +* ~~Show control state on revamp ui~~ +* ~~Introduce mapping in ValueTrackHeader~~ +* ~~Show format value in ValueTrackHeader~~ +* ~~Make the ProjectInfo page nicer too~~ +* ~~Make Revamp parameters automatable~~ +* ~~No modular views available should be nicer~~ +* ~~'Finish' Revamp DSP (BiquadStack order)~~ +* ~~Disable track~~ +* ~~Keyboard Shortcut for Play/Pause at least~~ +* ~~'Finish' Delay DSP > Filter~~ +* ~~'Finish' Vaporisateur DSP > Bandlimited Osc?~~ +* ~~Make this part of the running studio: https://localhost:8080/issues~~ +* ~~Channelstrip Solo~~ +* ~~[BUG] Index on delete audio-unit seems to be wrong (optic glitch)~~ +* ~~Load Midi~~ +* ~~'Finish' sample management (cache)~~ +* ~~Audio region drag-preview in timeline~~ +* ~~Create Tape if sample is dropped below tracks~~ +* ~~Do we need TrackAssignmentBox for anything other than value-automation?~~ +* ~~Audio region drag > clip~~ +* ~~Connect all(?) AudioFileBoxes to RootBox~~ +* ~~Either make Clips working fully or hide them~~ +* ~~Default color region type~~ +* ~~Do not allow dropping regions on different track types~~ +* ~~Pimp dashboard~~ +* ~~Pimp publish page~~ +* ~~Progress dialog~~ +* ~~Implement 'enabled' for effects (bypass)~~ +* ~~Device icon colers~~ +* ~~No cut-indicator when outside region~~ +* ~~Play many audio-tracks~~ +* ~~Fix audio region split~~ +* ~~Create new track for audio-unit (note or audio, depending on type)~~ +* ~~Temp remove tape parameter controls~~ +* ~~Simple dialog layering~~ +* ~~Revamp DSP~~ +* ~~ValueTrackHeader~~ +* ~~Export2wav~~ \ No newline at end of file diff --git a/packages/app/studio/public/manuals/firefox-midi.md b/packages/app/studio/public/manuals/firefox-midi.md new file mode 100644 index 00000000..6d78a56e --- /dev/null +++ b/packages/app/studio/public/manuals/firefox-midi.md @@ -0,0 +1,32 @@ +# Request Midi Access On Firefox Does Not Work + +This is a known issue with Firefox's MIDI implementation. Unlike Chrome, which allows requesting MIDI access even if no +devices are currently connected, Firefox denies access outright if **no MIDI devices are detected** at the time of the +request. + +### Solutions + +1. **Restart Firefox** + - If you connected the MIDI device after starting Firefox, restart the browser and try again. + +2. **Check Firefox Permissions** + - Open `about:config` in a new tab. + - Search for `dom.webmidi.enabled`. + - Ensure it is set to `true`. If not, double-click to enable it. + - Search for `privacy.resistFingerprinting` (if enabled, it can block MIDI access). + - Set `privacy.resistFingerprinting` to `false` if you trust the site. + +3. **Verify Device Detection** + - Check if your OS detects the MIDI device. + - On macOS: Open `Audio MIDI Setup` > `MIDI Studio` and ensure your device is listed. + - On Windows: Check `Device Manager` under "Sound, video and game controllers." + +4. **Force Firefox to Recognize the Device** + - Connect your MIDI device before starting Firefox. + - Restart the browser with the device already connected. + +5. **Use Chrome or Edge** + - If Firefox's handling of MIDI is problematic, you might consider using a Chromium-based browser for MIDI-related + tasks. + +(ChatGPT Feb. 2025) \ No newline at end of file diff --git a/packages/app/studio/public/manuals/index.md b/packages/app/studio/public/manuals/index.md new file mode 100644 index 00000000..109e4cbc --- /dev/null +++ b/packages/app/studio/public/manuals/index.md @@ -0,0 +1,18 @@ +# openDAW Manuals + +Please join our [discord community](https://discord.com/invite/ZRm8du7vn4) for updates and news! + +## Known Issues + +**openDAW is in an early prototype stage and NOT ready for production use!** + +### General + +* Some features in openDAW may be unpolished or not functional yet. +* No backward compatibility guaranteed. New studio versions may invalidate old project files. + +### Audio Engine + +* Not optimised. +* Clicks & Pops can occur, since there are no fadings to avoid discontinuities. +* Fast automation or value changes can potentially crash the dsp, since there is no interpolation. \ No newline at end of file diff --git a/packages/app/studio/public/manuals/keyboard-shortcuts.md b/packages/app/studio/public/manuals/keyboard-shortcuts.md new file mode 100644 index 00000000..c6db0bb3 --- /dev/null +++ b/packages/app/studio/public/manuals/keyboard-shortcuts.md @@ -0,0 +1,29 @@ +# Keyboard Shortcuts + +## Misc + +* SPACE: Toggle Playback +* ⌘Z Undo +* ⌘⇧Z Redo + +## Views + +* ⇧0: Show Dashboard +* ⇧1: Show Classic View +* ⇧2: Show Mixer +* ⇧3: Show Modular Systems +* ⇧4: Show Project Info + +## Panels + +* B: Toggle **B**rowser +* E: Toggle **E**ditor +* D: Toggle **D**evices +* M: Toggle **M**ixer + +## Timeline + +* Hold ⌘ and click to cut a region +* Hold ⌥ and drag to copy a region / clip +* Hold ⌥⇧ and drag to copy a region / clip as mirrored +* Click track header and hit ⌫ to delete track \ No newline at end of file diff --git a/packages/app/studio/public/manuals/permissions.md b/packages/app/studio/public/manuals/permissions.md new file mode 100644 index 00000000..ce873dca --- /dev/null +++ b/packages/app/studio/public/manuals/permissions.md @@ -0,0 +1,3 @@ +# Browser Permissions + +openDAW requires grand access to your microphone. tbc... \ No newline at end of file diff --git a/packages/app/studio/public/manuals/private-file-system.md b/packages/app/studio/public/manuals/private-file-system.md new file mode 100644 index 00000000..853ce770 --- /dev/null +++ b/packages/app/studio/public/manuals/private-file-system.md @@ -0,0 +1,23 @@ +# openDAW File System + +openDAW stores your projects and samples in the +[Origin private file system](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) ( +OPFS). + +## Why Samples? + +openDAW uses the OPFS to store user-imported samples because modern browsers do not retain +information about the file origins of imported local files due to security restrictions. This means that once a user +imports a file, the browser has no way to automatically reload it the next time openDAW starts. To ensure persistent +access to user samples, openDAW copies every imported sample into OPFS, allowing the application to manage and retrieve +these files securely without relying on external file paths. + +## Granting OPFS Storage Permission in Firefox +In Firefox, storing data in OPFS requires explicit user approval due to its privacy settings. Without permission, openDAW may not be able to retain imported samples across sessions. To allow persistent storage for openDAW in Firefox, follow these steps: + +* Open Firefox Settings +* Navigate to Privacy & Security +* Scroll down to Permissions and find Storage Permissions +* Click Exceptions and enter the openDAW studio URL `https://opendaw.studio` +* Select Allow and confirm the changes +* Restart Firefox for the settings to take effect \ No newline at end of file diff --git a/packages/app/studio/public/manuals/tech-stack.md b/packages/app/studio/public/manuals/tech-stack.md new file mode 100644 index 00000000..093801bf --- /dev/null +++ b/packages/app/studio/public/manuals/tech-stack.md @@ -0,0 +1,44 @@ +# Tech-Stack + +## Toolchain + +* [Vite](https://vite.dev) +* [Typescript](https://www.typescriptlang.org) +* [Sass](https://sass-lang.com) + +## Libraries + +openDAW uses minimal external dependencies, avoiding hidden behaviors from bulky UI frameworks. + +Each in-house library has a clear, focused purpose. [github repository](https://github.com/andremichelle/opendaw-lib) + +### Dependency Table + +| Library | Dependencies | +|---------------|-------------------------------------| +| **std** | none | +| **dsp** | std | +| **dom** | std | +| **jsx** | std, dom | +| **runtime** | std | +| **box** | std, dom, runtime | +| **box-forge** | std, dom, box | +| **fusion** | std, dom, box, runtime (all peered) | + +### In-House Runtime + +* std (Core) +* dsp (DSP & Sequencing) +* dom (DOM Integration) +* jsx ([JSX](https://en.wikipedia.org/wiki/JSX_(JavaScript)) Integration) +* runtime (Runtime and Scheduling) + +### In-House Data Management + +* box (Runtime Immutable Data Graph) +* box-forge (Box Code Generator) + +### External + +* [jszip](https://www.npmjs.com/package/jszip) (Pack & Unpack Zip-Files) +* [markdown-it](https://www.npmjs.com/package/markdown-it) (Markdown parser) \ No newline at end of file diff --git a/packages/app/studio/public/templates/BMX_LiquidDrums.od b/packages/app/studio/public/templates/BMX_LiquidDrums.od new file mode 100644 index 0000000000000000000000000000000000000000..3b8be3b204d69dc3b4adbe188f963c69865c233b GIT binary patch literal 132091 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 z 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 NgB$(|C%^m1{{gRuvjqSE literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/BMX_Playfield.od b/packages/app/studio/public/templates/BMX_Playfield.od new file mode 100644 index 0000000000000000000000000000000000000000..bd1f85c238c017a85ad07d21a8eaa86255ab094c GIT binary patch literal 103759 zcmd>n2UrtL)NUw(T?q&_6ua2LE(l5JUBuo|M6rMh*ijG_6%j=NrDzaA1W`d01O;rL z6%l*yUF^NzGrMfEyU9)x;Qs%8p3C>(<_pQ}JExyBXJ*|7*|_p}JawMhrcZE5f!E$V zUc*~(t;-Yg0(o9MAD$o27XF>Vo6Hlz>-ju`pN&&qyCfd`_~`EC+C3WDI$L}2G z^qv~epyIDQUSr9tCKa!|;3@`My@e|`#-ovL^Wp^?W7It22j6?Xk%7_k)`&g!b6lPG z9G&{Yd-`N!8pc`^D2!?kBp9tKg>fp-aW;X`189ikWfD*m$&YUZH(zD$+P=m*e$|HW^PtiIlD(DW-h$Hc^Bd(k|e&G`lH&bCiikwkFXKP%)PeM z2HxZy=katJ!nHn4b_T;8r_k@GR^#sM1G{WIHyIby>^Ar0AO=m`#$FnjzR}TN{QB+J z%=yLsY9PbtetK$CtzX>R?(N{e^55EkLt|&wR)hB|FL+0w(9 z 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 RmK^!I#Aia2PigEZ_y2FB6!!oC literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/BMX_Skyence_buryme_Remix.od b/packages/app/studio/public/templates/BMX_Skyence_buryme_Remix.od new file mode 100644 index 0000000000000000000000000000000000000000..8e3352b0a10ed791c5805ea97346e582b64c5318 GIT binary patch literal 73850 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 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/BuryMe.od b/packages/app/studio/public/templates/BuryMe.od new file mode 100644 index 0000000000000000000000000000000000000000..291fecdec8d94ce38427802e91a4f0a679a676b5 GIT binary patch literal 9989 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 literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/Dub-Techno.od b/packages/app/studio/public/templates/Dub-Techno.od new file mode 100644 index 0000000000000000000000000000000000000000..f1e7b46c52b9fb0dfee792adce9ded2cdfe1abbe GIT binary patch literal 24143 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 JzQiq+|9|rR_Iv;U literal 0 HcmV?d00001 diff --git a/packages/app/studio/public/templates/Release.od b/packages/app/studio/public/templates/Release.od new file mode 100644 index 0000000000000000000000000000000000000000..c00048456d0c665203939a3548d086786d39a124 GIT binary patch literal 217830 zcmd>n2UrtL)Nbg#gD8SxuPBNFf^1bFd3%AGe#SR8TQQ8JE1+JiQqLQ zhPmJwgV9v@teN21czBG2p}N4M9%Be&3}ZTDz7&*^YmPlQ&&r5hA7~NT`N|<2rMdv+ zf>AZ?IenPBR|0&E3}H*pzV^VLUVj4djSW>lmZ5Fp@$`8(|_OlOOqTHd4kkSUg zIdBDx(v9W^##{I{Y91Qycl&vPTa*0q!QS#2^BrjOQ06l#xb&&l!|gWfXGWc4I#5t5 z)ybX*SLcUSf_Zqnzb#xJ_(7)!8i!KeF-w=M)X;;ACQ(~y$AHn6m3qGbQ zKBkgD6|k(~eNxDj2_bXst@;6ftrh+S72*pFLU*wEZgy?M(0G?QU9rahs-LSaTK)N9g`JLr?Hnj1_sc zZ>KaLbBBThMkV<|LixJfta~qDa`+hhfYQ_I5045eJ!QQQm&-JKF7aQc2isP$88|j^ zrMCvg9Spykj6sY!AU@+5(+H7K=JnTad&wg+aqKomn`JZi;osH}h|Dqb*E=TM^mdH; zHNY>|J&mITY7G+^VOk^F?{urG1Biq z+@sIa0uG&8h(jXnakIYDwRSIcw_o|7!ZmzuskKyMQ}nNMqwTRjU_`K{isOZ@s@^=# z5fzuX&BL#AXe@DP%9t_TZ~ObF4s-cF-6+2~1*PtEAyFh*LQL;rB4QLR2giI1mXim& zSxO@7{8yWB4H}MsWz85Wt$bOzZ4(|&f0Oc&f&)e+Cr1KDzi;;i_Sh9Z20z8Xn(g6H zpJIg&B5M2tkBG@sH69x4Qp*{bd&VQXWX8q`G$JOZc9~bs^eNhzlD0T}Zq{T9 z5p_P20AYL*puo9uk)mhJAIiZI#r$5X+azJ{<^`3eiBu1@ue9kQ*;U*eVPaE@o*uQ9JCuixWi8HrwIJ-o`&dHa z$(ZDI-(Epp?L5C1Z!ftvBKPW5%Jis23U6FOY(ze&K=<&$w#)_`GVO($r%_pyEvK?% zSYk=dJMA)@8l=4#�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