Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
audio_function.h
1// SPDX-FileCopyrightText: © 2020-2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "structure/arrangement/arranger_object.h"
7
8namespace zrythm::structure::arrangement
9{
10
11enum class AudioFunctionType
12{
13 Invert,
14 NormalizePeak,
15 NormalizeRMS,
16 NormalizeLUFS,
17 LinearFadeIn,
18 LinearFadeOut,
19 NudgeLeft,
20 NudgeRight,
21 Reverse,
22 PitchShift,
23 CopyLtoR,
24
26 ExternalProgram,
27
29 Script,
30
32 CustomPlugin,
33
34 /* reserved */
35 Invalid,
36};
37
39{
40public:
44 double amount_ = 0;
45};
46
48audio_function_get_action_target_for_type (AudioFunctionType type);
49
56audio_function_get_detailed_action_for_type (
57 AudioFunctionType type,
58 const utils::Utf8String &base_action);
59
60#define audio_function_get_detailed_action_for_type_default(type) \
61 audio_function_get_detailed_action_for_type (type, "app.editor-function")
62
64audio_function_get_icon_name_for_type (AudioFunctionType type);
65
77void
78audio_function_apply (
79 ArrangerObject::Uuid region_id,
80 std::pair<units::precise_tick_t, units::precise_tick_t> selected_range,
81 AudioFunctionType type,
83 std::optional<utils::Utf8String> uri);
84}
double amount_
Amount related to the current function (e.g.
Lightweight UTF-8 string wrapper with safe conversions.
Definition utf8_string.h:37