Bei der Audioverarbeitung hat objektorientierte Programmierung große Vorteile. Dazu zählen:
- Mehrmalige Instanzierung der Sub-Blöcke in anderen Blöcken
- Mehr Speicherverwaltungsmöglichkeiten
- Übersichtlichere und verständlichere Programmstruktur
Besonders die Möglichkeit der mehrmaligen Instanzierung der Sub-Blöcke in anderen Blöcken ist ein entscheidendes Argument für die Wahl einer objektorientierten Sprache. Aus dem Grund wurde z.B. das Projekt Flex 500 mit C++ programmiert. Dabei ist jeder Effektblock als eine Klasse realisiert (,die ggf. andere Klassen instanzieren kann).
Die Grundelemente einer Klasse sehen folgendermaßen aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
class c_fxtemplate{ public: //Methods void init(void); void start(void); void stop(void); void reset(void); float process(float x); void set_parameter_x(float* x); void set_parameter_y(float* y); void set_parameter_z(float* z); //Variables bool status; //Active/Inactive status of the module private: //Methods void reset_buffer(void); //And additional methods ... //Parameters //Here come the parameters }; |
Standardinhalt einer Klasse beinhaltet folgende Methoden bzw. Attributen:
- init() : Hier werden der Block, Subblöcke und Initialparameter initialisiert.
- start(): Diese Methode wird ausgeführt, wenn ein Block gestartet wird.
- stop(): Diese Methode wird ausgeführt, wenn ein Block gestoppt wird. (z.B. reset() triggern)
- set_parameter_xyz(): Mit diesen Methoden, werden die Parameter, die vom Controller mitgeteilt werden verarbeitet und die Klassenparameter aktualisiert.
- status: Das ist der Flag, ob der Block aktiv oder inaktiv ist.
Schreibe einen Kommentar