Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
modulator_macro_processor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2021-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __AUDIO_MODULATOR_MACRO_PROCESSOR_H__
11#define __AUDIO_MODULATOR_MACRO_PROCESSOR_H__
12
13#include "dsp/port.h"
14#include "utils/yaml.h"
15
16typedef struct Track Track;
17
24#define MODULATOR_MACRO_PROCESSOR_SCHEMA_VERSION 1
25
26#define modulator_macro_processor_is_in_active_project(self) \
27 (self->track && track_is_in_active_project (self->track))
28
38{
39 int schema_version;
40
47 char * name;
48
51
59
62
65
67
68static inline const char *
69modulator_macro_processor_get_name (ModulatorMacroProcessor * self)
70{
71 return self->name;
72}
73
74COLD void
75modulator_macro_processor_init_loaded (
77 Track * track);
78
79void
80modulator_macro_processor_set_name (
82 const char * name);
83
84Track *
85modulator_macro_processor_get_track (ModulatorMacroProcessor * self);
86
90void
93 const EngineProcessTimeInfo * const time_nfo);
94
96modulator_macro_processor_new (Track * track, int idx);
97
98void
99modulator_macro_processor_free (ModulatorMacroProcessor * self);
100
105#endif
Ports that transfer audio/midi/other signals to one another.
void modulator_macro_processor_process(ModulatorMacroProcessor *self, const EngineProcessTimeInfo *const time_nfo)
Process.
Common struct to pass around during processing to avoid repeating the data in function arguments.
Definition types.h:142
Modulator macro button processor.
char * name
Name to be shown in the modulators tab.
Port * cv_out
CV output after macro is applied.
Port * macro
Control port controlling the amount.
Track * track
Pointer to owner track, if any.
Port * cv_in
CV input port for connecting CV signals to.
Must ONLY be created via port_new()
Definition port.h:136
Track to be inserted into the Project's Tracklist.
Definition track.h:177
YAML utils.