Zrythm v2.0.0-alpha.1
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::controllers::RecordingMaterializer Class Reference

Converts raw recording packets into arrangement clips. More...

#include <src/controllers/recording_materializer.h>

Inheritance diagram for zrythm::controllers::RecordingMaterializer:
Collaboration diagram for zrythm::controllers::RecordingMaterializer:

Data Structures

struct  CreatedClip
 Returned by clip creator callbacks on success. More...
struct  ArrangerObjectCreators
 Injected callbacks for creating arranger objects. More...

Public Types

using RecordingMode = recording::RecordingMode
using ClipCreationResult = std::optional<CreatedClip>
using RecordingModeProvider = std::function<RecordingMode ()>
 Called to query the current recording mode (Takes, TakesMuted, etc.).

Public Member Functions

 RecordingMaterializer (RecordingCoordinator &recording_coordinator, undo::UndoStack &undo_stack, ArrangerObjectCreators creators, RecordingModeProvider recording_mode_provider, QObject *parent=nullptr)

Detailed Description

Converts raw recording packets into arrangement clips.

Subscribes to RecordingCoordinator::audioDataReady and midiDataReady to create or expand clips for each track. For audio, the first packet for a given continuous range creates a new AudioClip via the ClipCreator callback; subsequent packets append frames to the clip's clip. For MIDI, note-on/off pairs become MidiNote objects and CC/pitchbend/etc. become MidiControlEvent objects inside a MidiClip.

All clip creations within a single recording take (transport rolling to transport stopped) are wrapped in a single undo macro so the entire take can be undone in one step. The macro is finalized when RecordingCoordinator::recordingSessionEnded fires.

Operates entirely on the non-RT (main) thread. The UndoStack is held via QPointer to guard against unexpected destruction ordering.

Definition at line 41 of file recording_materializer.h.

Member Typedef Documentation

◆ ClipCreationResult

using zrythm::controllers::RecordingMaterializer::ClipCreationResult = std::optional<CreatedClip>

Definition at line 54 of file recording_materializer.h.

◆ RecordingMode

using zrythm::controllers::RecordingMaterializer::RecordingMode = recording::RecordingMode

Definition at line 46 of file recording_materializer.h.

◆ RecordingModeProvider

Called to query the current recording mode (Takes, TakesMuted, etc.).

Definition at line 57 of file recording_materializer.h.


The documentation for this class was generated from the following file: