Reorganize top-level directories with clearer naming convention

app -> app-desktop-macos, presets -> app-presets, server -> remote-server,
daw-config-reaper -> osc-config-daw, plugin-reaper-realearn -> plugin-reaper-relearn.
Updated run.py and presets.py path references accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Paul Lipscomb
2026-07-15 17:51:05 -04:00
parent e58f06d9fa
commit 7ecc718f5d
2256 changed files with 11 additions and 5 deletions
@@ -0,0 +1,9 @@
...@includes/declarations.d2
direction: down
...@includes/absolute-control-start.d2
fire_mode_result -> control_absolute_incremental_buttons.is_zero_or_out_of_range: pass
control_absolute_incremental_buttons: @includes/control-absolute-incremental-buttons.d2
@@ -0,0 +1,7 @@
...@includes/declarations.d2
direction: down
...@includes/absolute-control-start.d2
fire_mode_result -> todo: pass
@@ -0,0 +1,24 @@
...@includes/declarations.d2
direction: down
...@includes/absolute-control-start.d2
fire_mode_result -> pre_process_absolute_value.is_in_source_interval: pass
pre_process_absolute_value: @includes/pre-process-absolute-value.d2
pre_process_absolute_value.source_min_max -> prepare_absolute_value_no_performance_mode.control_transformation
prepare_absolute_value_no_performance_mode: @includes/prepare-absolute-value-no-performance-mode.d2
prepare_absolute_value_no_performance_mode.round_target_value-> hit_target_considering_max_jump.does_target_provide_value
prepare_absolute_value_no_performance_mode.value_sequence -> hit_target_considering_max_jump.does_target_provide_value
hit_target_considering_max_jump: @includes/hit-target-considering-max-jump.d2
hit_target_considering_max_jump.does_target_provide_value -> target: No (e.g. virtual target)
hit_target_considering_max_jump.which_takeover_mode -> hit_if_changed.is_target_retriggerable: Normal
hit_target_considering_max_jump.takover_mode_result -> hit_if_changed.is_target_retriggerable: pass
# Common end
...@includes/hit-if-changed-end.d2
@@ -0,0 +1,7 @@
...@includes/declarations.d2
direction: down
...@includes/absolute-control-start.d2
fire_mode_result -> todo: pass
@@ -0,0 +1,11 @@
...@includes/declarations.d2
direction: down
...@includes/absolute-control-start.d2
fire_mode_result -> control_absolute_toggle_buttons.is_control_value_zero: pass
control_absolute_toggle_buttons: @includes/control-absolute-toggle-buttons.d2
control_absolute_toggle_buttons.choose_zero_or_target_max -> target
control_absolute_toggle_buttons.choose_target_min_or_max -> target
@@ -0,0 +1,9 @@
...@includes/declarations.d2
direction: down
direction: down
...@includes/relative-control-start.d2
encoder_filter_result -> todo: pass
@@ -0,0 +1,11 @@
...@includes/declarations.d2
direction: down
...@includes/relative-control-start.d2
encoder_filter_result -> control_relative_normal.is_value_seq_defined: pass
...@includes/relative-control-end.d2
...@includes/hit-if-changed-end.d2
@@ -0,0 +1,15 @@
discard1.class: discard
apply_button_filter_and_fire_mode: {
label: Apply button filter and fire mode
}
source -> apply_button_filter_and_fire_mode: Absolute control value
apply_button_filter_and_fire_mode -> fire_mode_result
fire_mode_result: {
label: Result?
class: decision
}
fire_mode_result -> discard1: ignore {left}
@@ -0,0 +1,16 @@
class: container
discard.class: discard
choose_value_sequence_item_relative {
label: Choose value in sequence relatively, considering wrap
}
choose_value_sequence_item_relative -> equals_target_value
equals_target_value {
label: Same as current target value?
class: decision
}
equals_target_value -> discard: yes
@@ -0,0 +1,22 @@
discard1.class: discard
class: container
is_zero_or_out_of_range: {
label: Is value zero or out of source min/max range?
class: decision
}
is_zero_or_out_of_range -> discard1: yes
is_zero_or_out_of_range -> is_make_absolute: no
is_make_absolute: {
label: Is make-absolute enabled?
class: decision
}
is_make_absolute -> todo: yes
is_make_absolute -> is_value_seq_defined: no
is_value_seq_defined: {
label: Do we have a value sequence?
class: decision
}
is_value_seq_defined -> todo2: yes
is_value_seq_defined -> todo3: no
@@ -0,0 +1,19 @@
class: container
is_control_value_zero: {
label: "Is control value zero?"
class: decision
}
is_control_value_zero -> discard: yes
is_control_value_zero -> is_target_min_max_equal: no
is_target_min_max_equal: {
label: "Is target min/max equal?"
}
is_target_min_max_equal -> choose_zero_or_target_max: yes
is_target_min_max_equal -> choose_target_min_or_max: no
choose_zero_or_target_max: {
label: "Choose zero or target max"
}
choose_target_min_or_max: {
label: "Choose target min or max"
}
@@ -0,0 +1,60 @@
class: container
discard1.class: discard
discard2.class: discard
is_value_seq_defined: {
label: Do we have a value sequence?
class: decision
}
is_value_seq_defined -> prepare_increment3.apply_speed: yes
prepare_increment3: @prepare-increment.d2
prepare_increment3.apply_reverse -> choose_value_sequence_item_relative.choose_value_sequence_item_relative
choose_value_sequence_item_relative: @choose-value-sequence-item-relative.d2
is_value_seq_defined -> which_target_control_type: no
which_target_control_type: {
label: What control type does the target have?
class: decision
}
which_target_control_type -> does_target_provide_value: Absolute continuous
which_target_control_type -> prepare_increment.apply_speed: Absolute discrete
which_target_control_type -> prepare_increment2: Relative or virtual
prepare_increment2: @prepare-increment.d2
prepare_increment: @prepare-increment.d2
does_target_provide_value: {
label: Does target provide current value?
class: decision
}
does_target_provide_value -> is_target_retriggerable: no
is_target_retriggerable: {
label: Is target retriggerable?
class: decision
}
is_target_retriggerable -> discard1: no
is_target_retriggerable -> process_negative_speed: yes
does_target_provide_value -> apply_reverse: yes
apply_reverse: {
label: Reverse if desired
}
apply_reverse -> apply_step_size_min_max
apply_step_size_min_max: {
label: Apply step size min/max
}
process_negative_speed: {
label: Process negative speed
}
process_negative_speed -> process_negative_speed_result
process_negative_speed_result: {
label: Result?
class: decision
}
process_negative_speed_result -> discard2: ignore
@@ -0,0 +1,39 @@
classes: {
start: {
style.fill: "#BDD0D8"
}
end: {
style.fill: "#EEE0C9"
}
decision: {
shape: diamond
width: 100
}
discard: {
shape: image
label: ""
icon: https://icons.terrastruct.com/essentials%2F037-stop.svg
# icon: ./discard.svg
width: 50
height: 50
}
container: {
label: ""
style.fill: "#F1F0E8"
}
portal: {
icon: https://icons.terrastruct.com/essentials%2F036-play%20button.svg
width: 50
height: 50
}
}
source: {
label: Source
class: start
}
target: {
label: Target
class: end
}
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M7.616 20q-.672 0-1.144-.472T6 18.385V6H5V5h4v-.77h6V5h4v1h-1v12.385q0 .69-.462 1.153T16.384 20zM17 6H7v12.385q0 .269.173.442t.443.173h8.769q.23 0 .423-.192t.192-.424zM9.808 17h1V8h-1zm3.384 0h1V8h-1zM7 6v13z"/></svg>

After

Width:  |  Height:  |  Size: 329 B

@@ -0,0 +1,3 @@
hit_if_changed: @hit-if-changed.d2
hit_if_changed.is_target_retriggerable -> target: yes
hit_if_changed.does_target_have_desired_value -> target: no
@@ -0,0 +1,14 @@
class: container
discard.class: discard
is_target_retriggerable -> does_target_have_desired_value: no
does_target_have_desired_value -> discard: yes
is_target_retriggerable: {
label: Is target retriggerable?
class: decision
}
does_target_have_desired_value: {
label: Does target already have the desired value?
class: decision
}
@@ -0,0 +1,23 @@
class: container
discard1.class: discard
does_target_provide_value -> which_takeover_mode: Yes (real target)
which_takeover_mode -> takeover_mode: else
takeover_mode -> takover_mode_result
takover_mode_result -> discard1: ignore
takeover_mode: {
label: Apply special takeover mode
}
does_target_provide_value: {
label: Does the target provide a current value?
class: decision
}
which_takeover_mode: {
label: What's the takeover mode?
class: decision
}
takover_mode_result: {
label: Result?
class: decision
}
@@ -0,0 +1,4 @@
portal_normal_relative_control: {
label: Continue with relative control
class: portal
}
@@ -0,0 +1,23 @@
class: container
discard1.class: discard
is_in_source_interval: {
label: Is source value within Source Min/Max range?
class: decision
}
out_of_range: {
label: Apply out-of-range behavior
}
is_in_source_interval -> out_of_range: Out of range
is_in_source_interval -> source_min_max: Within range
out_of_range -> out_of_range_result
out_of_range_result -> discard1: ignore
out_of_range_result -> source_min_max: pass
source_min_max: {
label: Normalize value to source min/max
}
out_of_range_result: {
label: Result?
class: decision
}
@@ -0,0 +1,36 @@
class: container
control_transformation: {
label: Apply EEL control transformation
}
reverse: {
label: Reverse value if desired
}
target_min_max: {
label: Denormalize value to target min/max
}
round_target_value: {
label: Round value if desired
}
value_sequence: {
label: Pick value from sequence
}
control_transformation -> control_transformation_result
control_transformation_result -> reverse: absolute
control_transformation_result -> portal_normal_relative_control: relative
...@portal-normal-relative-control.d2
reverse -> is_value_seq_defined
is_value_seq_defined -> value_sequence: yes
is_value_seq_defined -> target_min_max: no
target_min_max -> round_target_value
control_transformation_result: {
label: Result?
class: decision
}
is_value_seq_defined: {
label: Do we have a value sequence?
class: decision
}
@@ -0,0 +1,9 @@
class: container
apply_speed: {
label: Apply speed
}
apply_speed -> apply_reverse
apply_reverse: {
label: Reverse if desired
}
@@ -0,0 +1,14 @@
...@portal-normal-relative-control.d2
portal_normal_relative_control -> control_relative_normal
control_relative_normal: @control-relative-normal.d2
control_relative_normal.prepare_increment.apply_reverse -> apply_increment
control_relative_normal.prepare_increment2.apply_reverse -> target
control_relative_normal.apply_step_size_min_max -> apply_increment
control_relative_normal.process_negative_speed_result -> target: Hit with 100%
control_relative_normal.choose_value_sequence_item_relative.equals_target_value -> target: no
apply_increment {
label: Apply increment respecting wrap and target min/max
}
apply_increment -> hit_if_changed.is_target_retriggerable
@@ -0,0 +1,16 @@
discard.class: discard
source -> apply_encoder_filter: Relative control Value
apply_encoder_filter {
label: Apply encoder filter
}
apply_encoder_filter -> encoder_filter_result
encoder_filter_result {
label: Result?
class: decision
}
encoder_filter_result -> discard: ignore
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 115 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 82 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 195 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 82 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 103 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 80 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB