├── linux
├── .gitignore
└── runner
│ ├── main.cc
│ ├── my_application.h
│ └── CMakeLists.txt
├── assets
├── icons
│ ├── note_editor
│ │ ├── note_color.svg
│ │ ├── portamento.svg
│ │ └── slide.svg
│ ├── arranger
│ │ ├── clip
│ │ │ ├── audio.svg
│ │ │ ├── automations.svg
│ │ │ ├── note.svg
│ │ │ └── hybrid.svg
│ │ └── focus.svg
│ ├── off.svg
│ ├── icon
│ │ ├── record.svg
│ │ ├── stop.svg
│ │ ├── arranger_timeline.svg
│ │ ├── io_routing.svg
│ │ ├── midi.svg
│ │ ├── track_group_menu.svg
│ │ ├── clip_launcher.svg
│ │ ├── large_track_height.svg
│ │ ├── show_automation_editor.svg
│ │ ├── show_mixer.svg
│ │ ├── show_fx_track.svg
│ │ ├── automation_lanes.svg
│ │ ├── show_detail_editor.svg
│ │ ├── play.svg
│ │ ├── arrow_down.svg
│ │ ├── arrow_up.svg
│ │ ├── modulators.svg
│ │ ├── arrow_right.svg
│ │ ├── loop.svg
│ │ ├── shuffle.svg
│ │ ├── sound_on.svg
│ │ ├── cursor_pointer.svg
│ │ ├── sound_off.svg
│ │ ├── show_deactivated_tracks.svg
│ │ ├── add.svg
│ │ ├── expanded_device.svg
│ │ ├── show_device_panel.svg
│ │ ├── folder.svg
│ │ └── random.svg
│ ├── main_toolbar
│ │ ├── record.svg
│ │ ├── stop.svg
│ │ ├── play_small.svg
│ │ ├── punch_in.svg
│ │ ├── punch_out.svg
│ │ ├── play.svg
│ │ └── typing_keyboard_to_piano_keyboard.svg
│ ├── misc
│ │ ├── dropdown_arrow___angle.svg
│ │ ├── dropdown_arrow___angle_big.svg
│ │ ├── hamburgner.svg
│ │ └── dropdown_arrow___down.svg
│ ├── small
│ │ ├── dropdown_arrow.svg
│ │ ├── dropdown_arrow_right.svg
│ │ ├── minimize.svg
│ │ ├── maximize.svg
│ │ ├── check.svg
│ │ ├── restore_down.svg
│ │ └── add.svg
│ ├── placeholder_16px.svg
│ ├── on.svg
│ ├── instrument_and_effect_rack
│ │ ├── triangle.svg
│ │ ├── pulse.svg
│ │ ├── sine.svg
│ │ └── arpeggio_off.svg
│ ├── tools
│ │ └── cut.svg
│ ├── 12px_9.svg
│ ├── plus.svg
│ ├── wave.svg
│ ├── automation_editor
│ │ ├── midi_keyboard.svg
│ │ ├── target_links.svg
│ │ ├── slide_succeeding_points.svg
│ │ └── midi_keyboard_smaller.svg
│ ├── mixer
│ │ ├── stereo_properties.svg
│ │ └── track_inspector.svg
│ ├── channel_rack
│ │ ├── loop_editor.svg
│ │ └── interactive_step_sequencer.svg
│ ├── options
│ │ ├── blend_recording.svg
│ │ └── metronome.svg
│ ├── bottom_bar
│ │ └── instruments_effects_panel.svg
│ └── mute.svg
├── anthem-icon.afdesign
├── fonts
│ └── RobotoMono.ttf
└── icons_old
│ ├── main_toolbar
│ ├── record.svg
│ ├── stop.svg
│ ├── play.svg
│ ├── repeat.svg
│ ├── multilink_to_controllers.svg
│ ├── punch_in.svg
│ └── punch_out.svg
│ ├── scrollbar
│ ├── clip_size.svg
│ ├── add.svg
│ ├── scrollbar_v.svg
│ ├── scrollbar_h.svg
│ ├── arrow_down.svg
│ ├── arrow_left.svg
│ ├── arrow_up.svg
│ └── arrow_right.svg
│ ├── instrument_and_effect_rack
│ ├── triangle.svg
│ ├── pulse.svg
│ ├── sine.svg
│ ├── arpeggio_down.svg
│ ├── arpeggio_up.svg
│ ├── arpeggio_off.svg
│ ├── arpeggio_up_down.svg
│ ├── arpeggio_random.svg
│ └── arpeggio_sticky.svg
│ ├── note_editor
│ ├── portamento.svg
│ ├── slide.svg
│ ├── control.svg
│ └── note_color.svg
│ ├── mixer
│ ├── latency.svg
│ ├── input.svg
│ ├── output.svg
│ ├── arm_disk_recording.svg
│ ├── stereo_properties.svg
│ ├── track_inspector.svg
│ └── xsend_to.svg
│ ├── edit
│ ├── redo.svg
│ ├── undo.svg
│ └── save.svg
│ ├── misc
│ ├── hamburgner.svg
│ ├── dropdown_arrow___angle.svg
│ ├── dropdown_arrow___down.svg
│ └── dropdown_arrow___angle_big.svg
│ ├── arranger
│ ├── focus.svg
│ └── clip
│ │ └── audio.svg
│ ├── options
│ ├── blend_recording.svg
│ ├── wait_for_input_to_start_recording.svg
│ └── metronome.svg
│ ├── off.svg
│ ├── small
│ ├── dropdown_arrow.svg
│ ├── dropdown_arrow___right.svg
│ ├── minimize.svg
│ ├── maximize.svg
│ └── add.svg
│ ├── main
│ ├── separator.svg
│ └── anthem.svg
│ ├── placeholder_16px.svg
│ ├── on.svg
│ ├── topbar
│ └── learn.svg
│ ├── controller_rack
│ ├── saw_wave.svg
│ ├── square_wave.svg
│ ├── trinagle_wave.svg
│ ├── moog_saw_wave.svg
│ ├── exponential_wave.svg
│ ├── sine_wave.svg
│ └── user_defined_shape.svg
│ ├── folder.svg
│ ├── automation_editor
│ ├── slide_succeeding_points.svg
│ ├── midi_keyboard.svg
│ └── midi_keyboard_smaller.svg
│ ├── device_panel
│ ├── lfo.svg
│ └── misc.svg
│ ├── tools
│ └── cut.svg
│ ├── audio.svg
│ ├── 12px_16.svg
│ ├── misc.svg
│ ├── wave.svg
│ ├── 12px_1.svg
│ ├── plus.svg
│ ├── channel_rack
│ └── interactive_step_sequencer.svg
│ ├── 12px_7.svg
│ ├── file_locate.svg
│ ├── placeholder_15px.svg
│ └── bottom_bar
│ └── instruments_effects_panel.svg
├── lib
├── widgets
│ └── basic
│ │ ├── dialog
│ │ └── dialog_overlay.dart
│ │ ├── scroll
│ │ └── scroll_controller_scrollbar.dart
│ │ └── tree_view
│ │ └── tree_item_indent.dart
├── web_init_stub.dart
├── helpers
│ ├── id.dart
│ ├── constants.dart
│ ├── window_utils_none.dart
│ ├── window_utils_desktop.dart
│ ├── window_utils.dart
│ ├── window_utils_web.dart
│ └── measure_text.dart
├── engine_api
│ └── engine_connector.dart
└── model
│ └── store.dart
├── macos
├── Runner
│ ├── Configs
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ ├── Warnings.xcconfig
│ │ └── AppInfo.xcconfig
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_512.png
│ │ │ ├── app_icon_64.png
│ │ │ └── app_icon_1024.png
│ ├── Release.entitlements
│ ├── AppDelegate.swift
│ ├── MainFlutterWindow.swift
│ ├── DebugProfile.entitlements
│ └── Info.plist
├── .gitignore
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ └── Flutter-Release.xcconfig
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── RunnerTests
│ └── RunnerTests.swift
├── windows
├── runner
│ ├── resources
│ │ └── app_icon.ico
│ ├── resource.h
│ ├── runner.exe.manifest
│ ├── utils.h
│ └── flutter_window.h
└── .gitignore
├── codegen
├── analysis_options.yaml
├── pubspec.yaml
├── lib
│ ├── include.dart
│ └── generators
│ │ └── util
│ │ └── enum_info.dart
└── build.yaml
├── web_dev_config.yaml
├── analysis_options.yaml
├── .gitmodules
├── engine
├── include
│ └── CMakeLists.txt
└── src
│ ├── modules
│ ├── command_handlers
│ │ ├── sequencer_command_handler.h
│ │ ├── visualization_command_handler.h
│ │ ├── processing_graph_command_handler.h
│ │ └── model_sync_command_handler.h
│ ├── util
│ │ └── id_generator.cpp
│ └── processing_graph
│ │ └── compiler
│ │ ├── anthem_graph_compilation_result.cpp
│ │ └── actions
│ │ ├── anthem_graph_compiler_action.h
│ │ └── process_node_action.cpp
│ └── console_logger.h
├── web
├── _headers
├── icons
│ └── logo.svg
└── manifest.json
├── scripts
└── misc
│ └── normalize_icon_names.ps1
├── bin
└── util
│ └── misc.dart
├── .vscode
├── c_cpp_properties.json
└── launch.json
└── test
└── widget_test.dart
/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/assets/icons/note_editor/note_color.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/widgets/basic/dialog/dialog_overlay.dart:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/anthem-icon.afdesign:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/assets/anthem-icon.afdesign
--------------------------------------------------------------------------------
/assets/fonts/RobotoMono.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/assets/fonts/RobotoMono.ttf
--------------------------------------------------------------------------------
/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/dgph
7 | **/xcuserdata/
8 |
--------------------------------------------------------------------------------
/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/codegen/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | linter:
4 | rules:
5 | prefer_single_quotes: true
6 |
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anthem-audio/anthem/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/record.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/clip_size.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/stop.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/linux/runner/main.cc:
--------------------------------------------------------------------------------
1 | #include "my_application.h"
2 |
3 | int main(int argc, char** argv) {
4 | g_autoptr(MyApplication) app = my_application_new();
5 | return g_application_run(G_APPLICATION(app), argc, argv);
6 | }
7 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/triangle.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/pulse.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/web_dev_config.yaml:
--------------------------------------------------------------------------------
1 | server:
2 | headers:
3 | - name: Cross-Origin-Opener-Policy
4 | value: same-origin
5 | - name: Cross-Origin-Embedder-Policy
6 | value: require-corp
7 | - name: Cross-Origin-Resource-Policy
8 | value: same-origin
9 |
--------------------------------------------------------------------------------
/assets/icons_old/note_editor/portamento.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | analyzer:
4 | language:
5 | strict-inference: true
6 | strict-raw-types: true
7 |
8 | linter:
9 | rules:
10 | prefer_single_quotes: true
11 | unnecessary_statements: true
12 |
--------------------------------------------------------------------------------
/assets/icons/arranger/clip/audio.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/sine.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/add.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/scrollbar_v.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icons_old/note_editor/slide.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/scrollbar_h.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/latency.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/icons_old/edit/redo.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icons_old/edit/undo.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/icons_old/misc/hamburgner.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/macos/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-write
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 |
3 | # Visual Studio user-specific files.
4 | *.suo
5 | *.user
6 | *.userosscache
7 | *.sln.docstates
8 |
9 | # Visual Studio build-related files.
10 | x64/
11 | x86/
12 |
13 | # Visual Studio cache files
14 | # files ending in .cache can be ignored
15 | *.[Cc]ache
16 | # but keep track of directories ending in .cache
17 | !*.[Cc]ache/
18 |
--------------------------------------------------------------------------------
/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @main
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 |
10 | override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
11 | return true
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "engine/include/JUCE"]
2 | path = engine/include/JUCE
3 | url = https://github.com/anthem-audio/juce-with-wasm-subset.git
4 | [submodule "engine/include/reflect-cpp"]
5 | path = engine/include/reflect-cpp
6 | url = https://github.com/getml/reflect-cpp.git
7 | [submodule "engine/include/brickworks"]
8 | path = engine/include/brickworks
9 | url = https://github.com/Orastron/brickworks.git
10 |
--------------------------------------------------------------------------------
/engine/include/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # reflect-cpp
2 |
3 | add_subdirectory(reflect-cpp)
4 | target_compile_options(reflectcpp PRIVATE)
5 |
6 | # Brickworks
7 |
8 | add_library(brickworks_headers INTERFACE)
9 |
10 | target_include_directories(brickworks_headers
11 | SYSTEM
12 | INTERFACE
13 | ${CMAKE_CURRENT_SOURCE_DIR}/brickworks/include
14 | )
15 |
16 | add_library(brickworks::brickworks ALIAS brickworks_headers)
17 |
--------------------------------------------------------------------------------
/web/_headers:
--------------------------------------------------------------------------------
1 | # This is a _headers file for CloudFlare Pages. This applies response headers
2 | # that are needed to run the the audio engine, as well as to prevent Flutter
3 | # from falling back to the slower non-WASM build on browsers that support the
4 | # faster one.
5 |
6 | /*
7 | Cross-Origin-Opener-Policy: same-origin
8 | Cross-Origin-Embedder-Policy: require-corp
9 | Cross-Origin-Resource-Policy: same-Origin
10 |
--------------------------------------------------------------------------------
/assets/icons_old/arranger/focus.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/assets/icons_old/note_editor/control.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/linux/runner/my_application.h:
--------------------------------------------------------------------------------
1 | #ifndef FLUTTER_MY_APPLICATION_H_
2 | #define FLUTTER_MY_APPLICATION_H_
3 |
4 | #include
5 |
6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
7 | GtkApplication)
8 |
9 | /**
10 | * my_application_new:
11 | *
12 | * Creates a new Flutter-based application.
13 | *
14 | * Returns: a new #MyApplication.
15 | */
16 | MyApplication* my_application_new();
17 |
18 | #endif // FLUTTER_MY_APPLICATION_H_
19 |
--------------------------------------------------------------------------------
/macos/Runner/DebugProfile.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.cs.allow-jit
8 |
9 | com.apple.security.network.server
10 |
11 | com.apple.security.files.user-selected.read-write
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/windows/runner/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by Runner.rc
4 | //
5 | #define IDI_APP_ICON 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/arrow_down.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/arrow_left.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/arrow_up.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/web/icons/logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/web/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Anthem",
3 | "short_name": "Anthem",
4 | "start_url": ".",
5 | "display": "standalone",
6 | "background_color": "#3D3D3D",
7 | "theme_color": "#25C29D",
8 | "description": "An open-source digital audio workstation",
9 | "orientation": "landscape-primary",
10 | "prefer_related_applications": false,
11 | "icons": [
12 | {
13 | "src": "icons/logo.svg",
14 | "sizes": "192x192 512x512",
15 | "type": "image/svg"
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/assets/icons_old/scrollbar/arrow_right.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/options/blend_recording.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/play.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Warnings.xcconfig:
--------------------------------------------------------------------------------
1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2 | GCC_WARN_UNDECLARED_SELECTOR = YES
3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6 | CLANG_WARN_PRAGMA_PACK = YES
7 | CLANG_WARN_STRICT_PROTOTYPES = YES
8 | CLANG_WARN_COMMA = YES
9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES
10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12 | GCC_WARN_SHADOW = YES
13 | CLANG_WARN_UNREACHABLE_CODE = YES
14 |
--------------------------------------------------------------------------------
/windows/runner/runner.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PerMonitorV2
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/assets/icons_old/options/wait_for_input_to_start_recording.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | // Application-level settings for the Runner target.
2 | //
3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4 | // future. If not, the values below would default to using the project name when this becomes a
5 | // 'flutter create' template.
6 |
7 | // The application's name. By default this is also the title of the Flutter window.
8 | PRODUCT_NAME = Anthem
9 |
10 | // The application's bundle identifier
11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.anthem
12 |
13 | // The copyright displayed in application information
14 | PRODUCT_COPYRIGHT = Copyright (C) 2021 - 2025 Anthem authors. Code licensed under the GNU General Public License version 3.
15 |
--------------------------------------------------------------------------------
/scripts/misc/normalize_icon_names.ps1:
--------------------------------------------------------------------------------
1 | $WorkingDirectory = Convert-Path .
2 |
3 | if (-not(Test-Path ($WorkingDirectory + "\pubspec.yaml"))) {
4 | Write-Error "This script must be run from the project root."
5 | Exit
6 | }
7 |
8 | Get-ChildItem -Path .\assets\icons -Recurse |
9 | % {
10 | if ($_.Name -cne $_.Name.ToLower().Replace("-", "_").Replace(" ", "_") ) {
11 | # https://til.secretgeek.net/powershell/Rename_to_lower_case.html
12 | $NewName = $_.Name.ToLower().Replace("-", "_").Replace(" ", "_")
13 |
14 | $TempItem = Rename-Item -Path $_.FullName -NewName "x$NewName" -PassThru
15 |
16 | Rename-Item -Path $TempItem.FullName -NewName $NewName
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/assets/icons/arranger/clip/automations.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/edit/save.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/codegen/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: anthem_codegen
2 | description: Code generation for Anthem
3 | publish_to: 'none'
4 | version: 0.0.1
5 |
6 | environment:
7 | sdk: ">=3.10.0 <4.0.0"
8 |
9 | dependencies:
10 | analyzer: ^8.2.0
11 | build: ^4.0.1
12 | source_gen: ^4.0.1
13 | flutter_test:
14 | sdk: flutter
15 | mobx: ^2.5.0
16 | collection: ^1.19.1
17 | dev_dependencies:
18 | build_runner: ^2.6.0
19 | flutter_lints: ^6.0.0
20 |
21 | # We don't use this, but the parent Anthem pubspec does, and it has prevented
22 | # us from upgrading packages in the past. This allows us to run `flutter pub
23 | # upgrade --major-versions` here without getting package versions that are
24 | # incompatible with the parent.
25 | mobx_codegen: ^2.7.2
26 |
--------------------------------------------------------------------------------
/windows/runner/utils.h:
--------------------------------------------------------------------------------
1 | #ifndef RUNNER_UTILS_H_
2 | #define RUNNER_UTILS_H_
3 |
4 | #include
5 | #include
6 |
7 | // Creates a console for the process, and redirects stdout and stderr to
8 | // it for both the runner and the Flutter library.
9 | void CreateAndAttachConsole();
10 |
11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string
12 | // encoded in UTF-8. Returns an empty std::string on failure.
13 | std::string Utf8FromUtf16(const wchar_t* utf16_string);
14 |
15 | // Gets the command line arguments passed in as a std::vector,
16 | // encoded in UTF-8. Returns an empty std::vector on failure.
17 | std::vector GetCommandLineArguments();
18 |
19 | #endif // RUNNER_UTILS_H_
20 |
--------------------------------------------------------------------------------
/lib/web_init_stub.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | void webInit() {}
21 |
--------------------------------------------------------------------------------
/lib/widgets/basic/scroll/scroll_controller_scrollbar.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2021 - 2022 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/input.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/output.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/assets/icons_old/options/metronome.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/repeat.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/lib/helpers/id.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2022 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'package:nanoid/nanoid.dart';
21 |
22 | typedef Id = String;
23 |
24 | Id getId() {
25 | return nanoid(14);
26 | }
27 |
--------------------------------------------------------------------------------
/lib/widgets/basic/tree_view/tree_item_indent.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2021 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | class TreeItemIndent {
21 | final double indent;
22 |
23 | TreeItemIndent({required this.indent});
24 | }
25 |
--------------------------------------------------------------------------------
/codegen/lib/include.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | export 'include/annotations.dart';
21 | export 'include/collections.dart';
22 | export 'include/model_base_mixin.dart';
23 | export 'include/model_filter_builder.dart';
24 |
--------------------------------------------------------------------------------
/engine/src/modules/command_handlers/sequencer_command_handler.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #pragma once
21 |
22 | #include "messages/messages.h"
23 |
24 | std::optional handleSequencerCommand(Request& request);
25 |
--------------------------------------------------------------------------------
/lib/helpers/constants.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2022 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'package:flutter/animation.dart';
21 |
22 | const defaultAnimationDuration = Duration(milliseconds: 250);
23 | const defaultAnimationCurve = Curves.easeOutExpo;
24 |
--------------------------------------------------------------------------------
/assets/icons/off.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/lib/engine_api/engine_connector.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | export 'engine_connector_none.dart'
21 | if (dart.library.io) 'engine_connector_desktop.dart'
22 | if (dart.library.js_interop) 'engine_connector_web.dart';
23 |
--------------------------------------------------------------------------------
/assets/icons/arranger/clip/note.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/icon/record.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/record.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/misc/dropdown_arrow___angle.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/small/dropdown_arrow.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/off.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/stop.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/misc/dropdown_arrow___angle_big.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/small/dropdown_arrow_right.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/misc/dropdown_arrow___angle.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/misc/dropdown_arrow___down.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/small/dropdown_arrow.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/stop.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/placeholder_16px.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/small/minimize.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/small/maximize.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/arm_disk_recording.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/small/dropdown_arrow___right.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/engine/src/modules/command_handlers/visualization_command_handler.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include "messages/messages.h"
24 |
25 | std::optional handleVisualizationCommand(Request& request);
26 |
--------------------------------------------------------------------------------
/assets/icons_old/main/separator.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/placeholder_16px.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/small/minimize.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/engine/src/modules/util/id_generator.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #include "id_generator.h"
21 |
22 | std::atomic counter(0);
23 |
24 | uint64_t GlobalIDGenerator::generateID() {
25 | return counter.fetch_add(1, std::memory_order_relaxed);
26 | }
27 |
--------------------------------------------------------------------------------
/assets/icons_old/small/maximize.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/lib/helpers/window_utils_none.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'dart:ui';
21 |
22 | Future getWindowPosition() async {
23 | throw UnimplementedError();
24 | }
25 |
26 | Future getWindowSize() async {
27 | throw UnimplementedError();
28 | }
29 |
--------------------------------------------------------------------------------
/assets/icons/on.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons_old/misc/dropdown_arrow___angle_big.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/lib/model/store.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2021 - 2023 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'package:anthem/model/app.dart';
21 |
22 | class AnthemStore {
23 | static AppModel? _instance;
24 | static AppModel get instance {
25 | _instance ??= AppModel();
26 | return _instance!;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/assets/icons/instrument_and_effect_rack/triangle.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/play_small.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/small/check.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/on.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/engine/src/modules/command_handlers/processing_graph_command_handler.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2024 - 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #pragma once
21 |
22 | #include "modules/core/anthem.h"
23 |
24 | #include "messages/messages.h"
25 |
26 | std::optional handleProcessingGraphCommand(Request& request);
27 |
--------------------------------------------------------------------------------
/assets/icons/icon/arranger_timeline.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/instrument_and_effect_rack/pulse.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/arpeggio_down.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/arpeggio_up.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/main/anthem.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/topbar/learn.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/icon/io_routing.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/tools/cut.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/saw_wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/folder.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/automation_editor/slide_succeeding_points.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/12px_9.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/midi.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/plus.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/square_wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/trinagle_wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/device_panel/lfo.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/tools/cut.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/bin/util/misc.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'dart:io';
21 |
22 | Uri getPackageRootPath() {
23 | final scriptPath = Platform.script;
24 | return Uri.directory(
25 | (Platform.isWindows ? '' : '/') +
26 | scriptPath.pathSegments.takeWhile((s) => s != '.dart_tool').join('/'),
27 | );
28 | }
29 |
--------------------------------------------------------------------------------
/engine/src/modules/processing_graph/compiler/anthem_graph_compilation_result.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #include "anthem_graph_compilation_result.h"
21 |
22 | void AnthemGraphCompilationResult::cleanup() {
23 | for (auto& processContext : processContexts) {
24 | processContext->cleanup();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/assets/icons/icon/track_group_menu.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/multilink_to_controllers.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/arranger/clip/hybrid.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/assets/icons_old/audio.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/.vscode/c_cpp_properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations": [
3 | {
4 | "name": "Win32",
5 | "includePath": [
6 | "${workspaceFolder}/engine/src",
7 | "${workspaceFolder}/engine/src/modules",
8 | "${workspaceFolder}/engine/src/generated",
9 | "${workspaceFolder}/engine/src/generated/lib/engine_api",
10 |
11 | "${workspaceFolder}/engine/include/JUCE",
12 | "${workspaceFolder}/engine/include",
13 | "${workspaceFolder}/engine/include/reflect-cpp",
14 |
15 | "${default}"
16 | ],
17 | "defines": [
18 | "_DEBUG",
19 | "UNICODE",
20 | "_UNICODE"
21 | ],
22 | "windowsSdkVersion": "10.0.22000.0",
23 | "compilerPath": "cl.exe",
24 | "cStandard": "c17",
25 | "cppStandard": "c++17",
26 | "intelliSenseMode": "windows-msvc-x64"
27 | }
28 | ],
29 | "version": 4
30 | }
--------------------------------------------------------------------------------
/assets/icons/automation_editor/midi_keyboard.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/mixer/stereo_properties.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons_old/12px_16.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/punch_in.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/main_toolbar/punch_out.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/misc.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/engine/src/console_logger.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | class ConsoleLogger : public juce::Logger {
26 | public:
27 | void logMessage (const juce::String& message) override {
28 | std::cout << message << std::endl;
29 | }
30 | };
31 |
--------------------------------------------------------------------------------
/engine/src/modules/command_handlers/model_sync_command_handler.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2023 - 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #pragma once
21 |
22 | #include "plugin_window.h"
23 | #include "modules/core/anthem.h"
24 | #include
25 |
26 | #include "messages/messages.h"
27 |
28 | std::optional handleModelSyncCommand(Request& request);
29 |
--------------------------------------------------------------------------------
/assets/icons_old/arranger/clip/audio.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/clip_launcher.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/stereo_properties.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/icon/large_track_height.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/show_automation_editor.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/moog_saw_wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/device_panel/misc.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/12px_1.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/plus.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/automation_editor/target_links.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/show_mixer.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/instrument_and_effect_rack/sine.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/note_editor/note_color.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/lib/helpers/window_utils_desktop.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'dart:ui';
21 |
22 | import 'package:window_manager/window_manager.dart';
23 |
24 | Future getWindowPosition() async {
25 | return await windowManager.getPosition();
26 | }
27 |
28 | Future getWindowSize() async {
29 | return await windowManager.getSize();
30 | }
31 |
--------------------------------------------------------------------------------
/assets/icons/channel_rack/loop_editor.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/icon/show_fx_track.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/instrument_and_effect_rack/arpeggio_off.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/icon/automation_lanes.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/punch_in.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/windows/runner/flutter_window.h:
--------------------------------------------------------------------------------
1 | #ifndef RUNNER_FLUTTER_WINDOW_H_
2 | #define RUNNER_FLUTTER_WINDOW_H_
3 |
4 | #include
5 | #include
6 |
7 | #include
8 |
9 | #include "win32_window.h"
10 |
11 | // A window that does nothing but host a Flutter view.
12 | class FlutterWindow : public Win32Window {
13 | public:
14 | // Creates a new FlutterWindow hosting a Flutter view running |project|.
15 | explicit FlutterWindow(const flutter::DartProject& project);
16 | virtual ~FlutterWindow();
17 |
18 | protected:
19 | // Win32Window:
20 | bool OnCreate() override;
21 | void OnDestroy() override;
22 | LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam,
23 | LPARAM const lparam) noexcept override;
24 |
25 | private:
26 | // The project to run.
27 | flutter::DartProject project_;
28 |
29 | // The Flutter instance hosted by this window.
30 | std::unique_ptr flutter_controller_;
31 | };
32 |
33 | #endif // RUNNER_FLUTTER_WINDOW_H_
34 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/punch_out.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/mixer/track_inspector.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/arpeggio_off.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/linux/runner/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.13)
2 | project(runner LANGUAGES CXX)
3 |
4 | # Define the application target. To change its name, change BINARY_NAME in the
5 | # top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
6 | # work.
7 | #
8 | # Any new source files that you add to the application should be added here.
9 | add_executable(${BINARY_NAME}
10 | "main.cc"
11 | "my_application.cc"
12 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
13 | )
14 |
15 | # Apply the standard set of build settings. This can be removed for applications
16 | # that need different build settings.
17 | apply_standard_settings(${BINARY_NAME})
18 |
19 | # Add preprocessor definitions for the application ID.
20 | add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
21 |
22 | # Add dependency libraries. Add any application-specific dependencies here.
23 | target_link_libraries(${BINARY_NAME} PRIVATE flutter)
24 | target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
25 |
26 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
27 |
--------------------------------------------------------------------------------
/assets/icons/icon/show_detail_editor.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/options/blend_recording.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/exponential_wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/arpeggio_up_down.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/track_inspector.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "anthem",
9 | "request": "launch",
10 | "type": "dart"
11 | },
12 | {
13 | "name": "anthem (profile mode)",
14 | "request": "launch",
15 | "type": "dart",
16 | "flutterMode": "profile"
17 | },
18 | {
19 | "name": "anthem (release mode)",
20 | "request": "launch",
21 | "type": "dart",
22 | "flutterMode": "release"
23 | },
24 | {
25 | "name": "(Windows) Launch Engine",
26 | "type": "cppvsdbg",
27 | "request": "launch",
28 | "program": "${workspaceFolder}/engine/build/AnthemEngine_artefacts/Debug/AnthemEngine.exe",
29 | "args": ["-4WDaIANDw0v9d"],
30 | "stopAtEntry": false,
31 | "cwd": "${fileDirname}",
32 | "environment": [],
33 | "console": "externalTerminal"
34 | }
35 | ]
36 | }
--------------------------------------------------------------------------------
/assets/icons/icon/play.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/play.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/lib/helpers/window_utils.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | // This file implements platform-agnostic window utilities. For desktop, it uses
21 | // window_manager, and for web it stubs in reasonable values using package:web.
22 |
23 | export 'window_utils_none.dart'
24 | if (dart.library.io) 'window_utils_desktop.dart'
25 | if (dart.library.js_interop) 'window_utils_web.dart';
26 |
--------------------------------------------------------------------------------
/lib/helpers/window_utils_web.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2025 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'dart:ui';
21 |
22 | import 'package:web/web.dart';
23 |
24 | Future getWindowPosition() async {
25 | return Offset.zero;
26 | }
27 |
28 | Future getWindowSize() async {
29 | final bodySize = document.body?.getBoundingClientRect();
30 | return Size(bodySize?.width ?? 0, bodySize?.height ?? 0);
31 | }
32 |
--------------------------------------------------------------------------------
/assets/icons/icon/arrow_down.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/arrow_up.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/modulators.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/misc/hamburgner.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/sine_wave.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/arrow_right.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/note_editor/portamento.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/loop.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/misc/dropdown_arrow___down.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/arpeggio_random.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/channel_rack/interactive_step_sequencer.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/codegen/lib/generators/util/enum_info.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'package:analyzer/dart/element/element.dart';
21 |
22 | /// This class contains info about a given enum.
23 | class EnumInfo {
24 | final String name;
25 | final List values;
26 |
27 | EnumInfo(EnumElement element)
28 | : name = element.name!,
29 | values = element.fields.map((field) => field.name!).toList();
30 | }
31 |
--------------------------------------------------------------------------------
/codegen/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | builders:
4 | anthem_codegen:anthemDartModelGeneratorBuilder:
5 | generate_for:
6 | - test/*
7 | - test/**/*
8 |
9 | builders:
10 | anthemDartModelGeneratorBuilder:
11 | target: ':anthem_model_generator'
12 | import: 'package:anthem_codegen/codegen.dart'
13 | builder_factories: ['anthemDartModelGeneratorBuilder']
14 | build_extensions: {'.dart': ['.anthem_model_generator.g.part']}
15 | auto_apply: dependents
16 | build_to: source
17 | applies_builders: ['source_gen:combining_builder']
18 | cppModelBuilder:
19 | import: 'package:anthem_codegen/codegen.dart'
20 | builder_factories: ['cppModelBuilder']
21 | build_extensions: {
22 | ".dart": [".h", ".cpp"],
23 | }
24 | build_to: source
25 | auto_apply: dependents
26 | debugEnginePathGeneratorBuilder:
27 | import: 'package:anthem_codegen/codegen.dart'
28 | builder_factories: ['debugEnginePathGeneratorBuilder']
29 | build_extensions: {
30 | ".dart": [".debug_engine_path.g.dart"],
31 | }
32 | build_to: source
33 | auto_apply: dependents
34 |
--------------------------------------------------------------------------------
/assets/icons/icon/shuffle.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/icon/sound_on.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons/small/restore_down.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/engine/src/modules/processing_graph/compiler/actions/anthem_graph_compiler_action.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class AnthemGraphCompilerAction {
25 | private:
26 | JUCE_LEAK_DETECTOR(AnthemGraphCompilerAction)
27 | public:
28 | virtual void execute(int numSamples) = 0;
29 | virtual void debugPrint() = 0;
30 | virtual ~AnthemGraphCompilerAction() = default;
31 | };
32 |
--------------------------------------------------------------------------------
/assets/icons/automation_editor/slide_succeeding_points.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/cursor_pointer.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/options/metronome.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/12px_7.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons/automation_editor/midi_keyboard_smaller.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
26 |
--------------------------------------------------------------------------------
/assets/icons/icon/sound_off.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/assets/icons_old/automation_editor/midi_keyboard.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
26 |
--------------------------------------------------------------------------------
/assets/icons_old/automation_editor/midi_keyboard_smaller.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
26 |
--------------------------------------------------------------------------------
/engine/src/modules/processing_graph/compiler/actions/process_node_action.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | #include "process_node_action.h"
21 |
22 | #include
23 |
24 | void ProcessNodeAction::execute(int numSamples) {
25 | this->processor->process(*this->context, numSamples);
26 | }
27 |
28 | void ProcessNodeAction::debugPrint() {
29 | std::cout << "ProcessNodeAction for node with ID: " << this->context->getGraphNode()->id() << std::endl;
30 | }
31 |
--------------------------------------------------------------------------------
/assets/icons/note_editor/slide.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/show_deactivated_tracks.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/main_toolbar/typing_keyboard_to_piano_keyboard.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/macos/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(FLUTTER_BUILD_NAME)
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSHumanReadableCopyright
26 | $(PRODUCT_COPYRIGHT)
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/assets/icons/small/add.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/arranger/focus.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
27 |
--------------------------------------------------------------------------------
/assets/icons/icon/add.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/expanded_device.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/file_locate.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
26 |
--------------------------------------------------------------------------------
/assets/icons/bottom_bar/instruments_effects_panel.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons/icon/show_device_panel.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/small/add.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/placeholder_15px.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons_old/bottom_bar/instruments_effects_panel.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons/channel_rack/interactive_step_sequencer.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility in the flutter_test package. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | // import 'package:flutter/material.dart';
9 | // import 'package:flutter_test/flutter_test.dart';
10 |
11 | // import 'package:anthem/main.dart';
12 |
13 | void main() {
14 | // testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // // Build our app and trigger a frame.
16 | // await tester.pumpWidget(const MyApp());
17 |
18 | // // Verify that our counter starts at 0.
19 | // expect(find.text('0'), findsOneWidget);
20 | // expect(find.text('1'), findsNothing);
21 |
22 | // // Tap the '+' icon and trigger a frame.
23 | // await tester.tap(find.byIcon(Icons.add));
24 | // await tester.pump();
25 |
26 | // // Verify that our counter has incremented.
27 | // expect(find.text('0'), findsNothing);
28 | // expect(find.text('1'), findsOneWidget);
29 | // });
30 | }
31 |
--------------------------------------------------------------------------------
/assets/icons_old/instrument_and_effect_rack/arpeggio_sticky.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
26 |
--------------------------------------------------------------------------------
/assets/icons/icon/folder.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/icon/random.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
28 |
--------------------------------------------------------------------------------
/lib/helpers/measure_text.dart:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (C) 2021, 2024 Joshua Wade
3 |
4 | This file is part of Anthem.
5 |
6 | Anthem is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | Anthem is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with Anthem. If not, see .
18 | */
19 |
20 | import 'package:flutter/widgets.dart';
21 |
22 | Size measureText({
23 | required String text,
24 | required TextStyle textStyle,
25 | required BuildContext context,
26 | }) {
27 | final textPainter = TextPainter(
28 | text: TextSpan(text: text, style: textStyle),
29 | maxLines: 1,
30 | textScaler: MediaQuery.of(context).textScaler,
31 | textDirection: TextDirection.ltr,
32 | )..layout();
33 |
34 | return textPainter.size;
35 | }
36 |
--------------------------------------------------------------------------------
/assets/icons_old/mixer/xsend_to.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/assets/icons_old/controller_rack/user_defined_shape.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/assets/icons/mute.svg:
--------------------------------------------------------------------------------
1 |
19 |
20 |
24 |
--------------------------------------------------------------------------------