Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
4511705
Add: Add Vst.Client
sevenc-nanashi Sep 1, 2024
03830c0
Add: Add Vst.ServerFinder
sevenc-nanashi Sep 3, 2024
2393013
Change: Vst -> DawIntegration
sevenc-nanashi Sep 3, 2024
b2e554b
Fix: I forgot to add files
sevenc-nanashi Sep 3, 2024
bc41223
change: VstServers -> PluginServers
sevenc-nanashi Sep 3, 2024
0dc6cc2
WIP: Adding Server list
sevenc-nanashi Sep 4, 2024
966fdd6
WIP: Reactive not working?
sevenc-nanashi Sep 8, 2024
37decb3
Add: Add dialog
sevenc-nanashi Sep 14, 2024
7c8f336
Add: Support sendinhg
sevenc-nanashi Sep 15, 2024
172d2c2
Add: Add missing file
sevenc-nanashi Sep 15, 2024
41ce80e
WIP: Creating VST
sevenc-nanashi Sep 15, 2024
82c5b94
Add: At least it works
sevenc-nanashi Sep 18, 2024
e00dbf5
Add: At least it works (But performance is poor)
sevenc-nanashi Sep 20, 2024
9875281
Improve: Resample on mixes update
sevenc-nanashi Sep 21, 2024
b535b96
Fix: Add lock
sevenc-nanashi Sep 21, 2024
63db1ae
Improve: Improve locks
sevenc-nanashi Sep 22, 2024
b2215d2
Improve: Send differences only
sevenc-nanashi Sep 23, 2024
15ddf18
Fix: Fix position
sevenc-nanashi Sep 23, 2024
4911be1
Fix: Fix deadlock
sevenc-nanashi Sep 23, 2024
be2b562
Fix: Fix around locking
sevenc-nanashi Sep 23, 2024
f7ca0f0
Fix: Fix crash on disconnect
sevenc-nanashi Sep 25, 2024
0b62231
Delete: Delete xxhash
sevenc-nanashi Sep 25, 2024
871ec73
Add: Add workflow to build vst3
sevenc-nanashi Sep 25, 2024
3aeaf8f
Fix: Fix reference
sevenc-nanashi Sep 25, 2024
0748d75
Fix: Fix condition
sevenc-nanashi Sep 25, 2024
0d0b309
Fix: Fix num of states
sevenc-nanashi Sep 25, 2024
d913f35
Fix: Add workaround for MacOS
sevenc-nanashi Sep 25, 2024
6f49709
Fix: Fix casing
sevenc-nanashi Sep 25, 2024
a1f1124
Fix: Fix rename
sevenc-nanashi Sep 25, 2024
dd6abbf
Fix: Fix name overlap
sevenc-nanashi Sep 25, 2024
ae5f073
Fix: Fix zlib building on macos or ubuntu
sevenc-nanashi Sep 25, 2024
9cad3d2
Fix: Fix build args
sevenc-nanashi Sep 25, 2024
3df9dc2
Fix: Fix compiler version
sevenc-nanashi Sep 25, 2024
5c3d9c0
Fix: Use gcc 13
sevenc-nanashi Sep 25, 2024
5457c30
Fix: Fix condition
sevenc-nanashi Sep 25, 2024
5dc5da1
Delete: Delete compile_flags.txt
sevenc-nanashi Sep 25, 2024
7e3ebca
Fix: Fix matrix reference
sevenc-nanashi Sep 25, 2024
8986d9f
Fix: Build gcc14
sevenc-nanashi Sep 25, 2024
6c519e4
Fix: Fix package list
sevenc-nanashi Sep 25, 2024
87aaa1d
Fix: Add dependency for building GCC
sevenc-nanashi Sep 25, 2024
87105f7
Improve: Cache gcc
sevenc-nanashi Sep 25, 2024
9694df6
Change: Get gcc from apt
sevenc-nanashi Sep 26, 2024
05004fb
Change: Use gcc
sevenc-nanashi Sep 26, 2024
315e237
Fix: Fix compiler specification
sevenc-nanashi Sep 26, 2024
4029922
Change: Build plugin on mac x64
sevenc-nanashi Sep 26, 2024
dee91ec
Fix: Include thread
sevenc-nanashi Sep 26, 2024
43fe2cd
Fix: Include cfloat
sevenc-nanashi Sep 26, 2024
2416a21
Fix: Fix building arguments
sevenc-nanashi Sep 26, 2024
1770cde
Fix: Fix some compiler differences
sevenc-nanashi Sep 26, 2024
86d1d59
Fix: Add LDFLAGS
sevenc-nanashi Sep 26, 2024
c897709
Add: Add expermintal-library to other options
sevenc-nanashi Sep 26, 2024
d0f0bd5
Add: Add initPortGroup
sevenc-nanashi Sep 26, 2024
33a8277
Change: Change font
sevenc-nanashi Sep 26, 2024
840a530
Merge: upstream/master -> add/vst-integration
sevenc-nanashi Sep 26, 2024
d41be37
Add: Add CLAP ID
sevenc-nanashi Sep 26, 2024
263ece9
Merge branch 'stakira:master' into add/vst-integration
rokujyushi Nov 20, 2024
819ae5f
最新環境とマージ
rokujyushi Apr 20, 2025
48cfc9e
Merge with the latest environment
rokujyushi Jun 17, 2025
edc8bac
例外メッセージのファイルパスを修正
rokujyushi Jun 17, 2025
b3929ed
Update build.yml
rokujyushi Jun 17, 2025
b0a6984
プロジェクトのファイルパスが取得できなかった場合の読み込み対応
rokujyushi Jun 17, 2025
597979b
Merge branch 'add/vst-integration' of https://github.com/rokujyushi/O…
rokujyushi Jun 17, 2025
9e6b395
Latest environment and merge
rokujyushi Oct 13, 2025
46c68b7
サブプロジェクトのコミットを更新
rokujyushi Oct 13, 2025
925d0b6
最新環境とマージ
rokujyushi Jun 5, 2026
fa792a4
Remove and Sort Usings
rokujyushi Jun 5, 2026
60db5ee
Improved the connection process between DawClient and DawManager and …
rokujyushi Jun 5, 2026
e758578
Daw integration: Refactor connection handling and update connection s…
rokujyushi Jun 5, 2026
a03c3c1
Add unit tests for DawClient and Debounce functionality
rokujyushi Jun 5, 2026
507f9a9
Refactor plugin connection handling and UI state management
rokujyushi Jun 5, 2026
4a5564f
Add file browser support and include CHOC dependency in CMake configu…
rokujyushi Jun 5, 2026
77be20b
CMake: Set C++ standard to C++20 and require it for the project
rokujyushi Jun 5, 2026
08927bf
Test: Replace timeouts with constants and change test wait times for …
rokujyushi Jun 5, 2026
6dcf79f
Build: Update CMake configuration for Daw Plugin to support new archi…
rokujyushi Jun 5, 2026
9a9a60d
Fix: Update download URLs for OpenGL and EGL headers and add error ha…
rokujyushi Jun 5, 2026
103f096
Add: Implement build workflow for DAW Plugin with multi-platform support
rokujyushi Jun 6, 2026
9897c81
Fix: Update DPF-Widgets submodule URL to the correct repository
rokujyushi Jun 6, 2026
e32215b
Fix: Set VST3 architecture name for MSVC ARM64 builds
rokujyushi Jun 6, 2026
ad42d36
Fix DAW plugin builds on MSVC and macOS
rokujyushi Jun 6, 2026
530d3ef
Run PR tests for main branch
rokujyushi Jun 6, 2026
0494756
Revert "Run PR tests for main branch"
rokujyushi Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 73 additions & 41 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
indent_style = space
# Code files
[*.{cs,csx,vb,vbx}]
indent_size = 4
indent_size = 4
insert_final_newline = true
charset = utf-8-bom
guidelines = 100
Expand All @@ -18,74 +18,83 @@ guidelines = 100
# Organize usings
dotnet_sort_system_directives_first = true
# this. preferences
dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_event = false:silent
dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_event = false:silent
# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
dotnet_style_predefined_type_for_member_access = true:silent
# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
dotnet_style_readonly_field = true:suggestion
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
dotnet_style_readonly_field = true:suggestion
# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_prefer_inferred_tuple_names = true:suggestion
dotnet_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
###############################
# Naming Conventions #
###############################
# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
# Use PascalCase for constant fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
dotnet_naming_symbols.constant_fields.required_modifiers = const
tab_width = 4
dotnet_code_quality_unused_parameters = all:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
dotnet_style_namespace_match_folder = true:suggestion
###############################
# C# Coding Conventions #
###############################
[*.cs]
# var preferences
csharp_style_var_for_built_in_types = true:silent
csharp_style_var_when_type_is_apparent = true:silent
csharp_style_var_elsewhere = true:silent
csharp_style_var_for_built_in_types = true:silent
csharp_style_var_when_type_is_apparent = true:silent
csharp_style_var_elsewhere = true:silent
# Expression-bodied members
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent
# Pattern matching preferences
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
# Null-checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion
# Modifier preferences
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
# Expression-level preferences
csharp_prefer_braces = true:silent
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
###############################
# C# Formatting Rules #
###############################
Expand All @@ -100,7 +109,7 @@ csharp_new_line_between_query_expression_clauses = false
# Indentation preferences
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left
csharp_indent_labels = flush_left
# Space preferences
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
Expand All @@ -109,13 +118,36 @@ csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_binary_operators = before_and_after
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
# Wrapping preferences
csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_primary_constructors = true:suggestion
csharp_style_prefer_pattern_matching = true:silent
csharp_style_prefer_extended_property_pattern = true:suggestion
csharp_style_prefer_not_pattern = true:suggestion
csharp_prefer_static_local_function = true:suggestion
csharp_prefer_static_anonymous_function = true:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
###############################
# VB Coding Conventions #
###############################
Expand Down
155 changes: 155 additions & 0 deletions .github/workflows/build-daw-plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
name: Build DAW Plugin

on:
workflow_dispatch:
inputs:
version:
description: "Release tag"
default: "0.0.0"
required: true
type: string
release:
description: "Upload to GitHub Release"
default: false
type: boolean
beta:
description: "Pre-release"
default: true
type: boolean
draft:
description: "Draft release"
default: true
type: boolean
workflow_call:
inputs:
version:
description: "Release tag"
required: true
type: string
release:
description: "Upload to GitHub Release"
default: false
type: boolean
beta:
description: "Pre-release"
default: true
type: boolean
draft:
description: "Draft release"
default: true
type: boolean

permissions:
contents: write

env:
release-name: ${{ inputs.version }}${{ inputs.beta && ' Beta' || '' }}

jobs:
build:
runs-on: ${{ matrix.arch.runs-on }}

strategy:
fail-fast: false
matrix:
arch:
- { name: win-x64, os: win, runs-on: windows-latest, cmake-arch: x64 }
- { name: win-arm64, os: win, runs-on: windows-latest, cmake-arch: ARM64 }
- { name: osx-x64, os: osx, runs-on: macos-15-intel, cmake-arch: x86_64 }
- { name: osx-arm64, os: osx, runs-on: macos-15, cmake-arch: arm64 }
- { name: linux-x64, os: linux, runs-on: ubuntu-latest }
- { name: linux-arm64, os: linux, runs-on: ubuntu-24.04-arm }

steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Build (Windows)
if: ${{ matrix.arch.os == 'win' }}
shell: pwsh
run: |
cd DawPlugin

New-Item -ItemType Directory -Force deps/dpf/khronos/GL, deps/dpf/khronos/KHR
curl.exe --fail --location --retry 5 --retry-all-errors `
https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/api/GL/glext.h `
--output deps/dpf/khronos/GL/glext.h
if ($LASTEXITCODE -ne 0) {
throw "Failed to download glext.h."
}
curl.exe --fail --location --retry 5 --retry-all-errors `
https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/KHR/khrplatform.h `
--output deps/dpf/khronos/KHR/khrplatform.h
if ($LASTEXITCODE -ne 0) {
throw "Failed to download khrplatform.h."
}
if (-not (Select-String -Quiet -Path deps/dpf/khronos/GL/glext.h -Pattern "PFNGLACTIVETEXTUREPROC")) {
throw "Downloaded glext.h is invalid."
}

cmake -B build -S . -A ${{ matrix.arch.cmake-arch }} -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release

- name: Build (macOS)
if: ${{ matrix.arch.os == 'osx' }}
run: |
cd DawPlugin
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="$(xcrun --find clang)" \
-DCMAKE_CXX_COMPILER="$(xcrun --find clang++)" \
-DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch.cmake-arch }}
cmake --build build --config Release

- name: Build (Linux)
if: ${{ matrix.arch.os == 'linux' }}
run: |
sudo apt-get update
sudo apt-get install -y libgl1-mesa-dev
cd DawPlugin
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=gcc-14 \
-DCMAKE_CXX_COMPILER=g++-14
cmake --build build --config Release

- name: Package VST3
shell: bash
run: |
cd DawPlugin/build/bin
7z a openutau_daw_plugin-${{ matrix.arch.name }}.vst3.zip openutau_daw_plugin.vst3

- name: Package Audio Unit
if: ${{ matrix.arch.os == 'osx' }}
shell: bash
run: |
cd DawPlugin/build/bin
7z a openutau_daw_plugin-${{ matrix.arch.name }}.au.zip openutau_daw_plugin.component

- uses: actions/upload-artifact@v4
with:
name: openutau_daw_plugin-${{ matrix.arch.name }}
path: |
DawPlugin/build/bin/openutau_daw_plugin-${{ matrix.arch.name }}.vst3.zip
DawPlugin/build/bin/openutau_daw_plugin-${{ matrix.arch.name }}.au.zip
if-no-files-found: error

release:
if: ${{ inputs.release }}
needs: build
runs-on: ubuntu-latest

steps:
- uses: actions/download-artifact@v4
with:
pattern: openutau_daw_plugin-*
path: release
merge-multiple: true

- name: Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ inputs.version }}
name: ${{ env.release-name }}
prerelease: ${{ inputs.beta }}
draft: ${{ inputs.draft }}
files: release/*
22 changes: 19 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
name: Build OpenUtau

on:
workflow_dispatch:
inputs:
Expand All @@ -19,6 +21,9 @@ on:
default: true
description: "Draft"

permissions:
contents: write

env:
release-name: ${{ inputs.version }}${{ inputs.beta && ' Beta' || '' }}

Expand All @@ -35,12 +40,14 @@ jobs:
- { name: win-arm64, rid: win-arm64, arch: arm64, os: win, runs-on: windows-latest }
- { name: osx-x64, rid: osx-x64, arch: x64, os: osx, runs-on: macos-15-intel }
- { name: osx-arm64, rid: osx-arm64, arch: arm64, os: osx, runs-on: macos-15-intel }
- { name: linux-x64, rid: linux-x64, arch: x64, os: linux, runs-on: ubuntu-latest, linuxarch: x86_64}
- { name: linux-arm64, rid: linux-arm64, arch: arm64, os: linux, runs-on: ubuntu-latest, linuxarch: aarch64}
- { name: linux-x64, rid: linux-x64, arch: x64, os: linux, runs-on: ubuntu-latest, linuxarch: x86_64 }
- { name: linux-arm64, rid: linux-arm64, arch: arm64, os: linux, runs-on: ubuntu-latest, linuxarch: aarch64 }

steps:
# Setup
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-dotnet@v4
with:
dotnet-version: |
Expand All @@ -61,7 +68,7 @@ jobs:
- name: Test
run: dotnet test OpenUtau.Test

# Build
# Build: Main
- name: Restore
run: dotnet restore OpenUtau -r ${{ matrix.arch.rid }}

Expand Down Expand Up @@ -212,3 +219,12 @@ jobs:
## macOS says "This app is damaged"
Open a terminal and run `xattr -rc /Applications/OpenUtau.app`. Try opening OpenUtau again.
if: ${{ inputs.release }}

daw-plugin:
needs: build
uses: ./.github/workflows/build-daw-plugin.yml
with:
version: ${{ inputs.version }}
release: ${{ inputs.release }}
beta: ${{ inputs.beta }}
draft: ${{ inputs.draft }}
Loading
Loading