Zrythm v2.0.0-alpha.1+31.4967fd053471
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::structure::project::Project Class Referencefinal

Core functionality of a Zrythm project. More...

#include <src/structure/project/project.h>

Inheritance diagram for zrythm::structure::project::Project:
Collaboration diagram for zrythm::structure::project::Project:

Public Types

using TrackUuid = structure::tracks::TrackUuid
using PluginPtrVariant = plugins::PluginPtrVariant
using ProjectDirectoryPathProvider
using AudioInputSelectionProvider
 Callback to look up audio input selection for a track.
using MidiInputSelectionProvider

Public Member Functions

 Project (utils::AppSettings &app_settings, ProjectDirectoryPathProvider project_directory_path_provider, dsp::IHardwareAudioInterface &hw_interface, dsp::IHardwareMidiInterface &midi_interface, std::shared_ptr< juce::AudioPluginFormatManager > plugin_format_manager, plugins::PluginHostWindowFactory plugin_host_window_provider, dsp::Metronome &metronome, dsp::Fader &monitor_fader, QObject *parent=nullptr)
structure::tracks::Tracklisttracklist () const
structure::scenes::ClipLauncherclipLauncher () const
structure::scenes::ClipPlaybackServiceclipPlaybackService () const
dsp::TransportgetTransport () const
dsp::AudioEngineengine () const
dsp::TempoMapWrappergetTempoMap () const
structure::arrangement::TempoObjectManagertempoObjectManager () const
dsp::Fadermonitor_fader () const
dsp::Metronomemetronome () const
auto * arrangerObjectFactory () const
dsp::PortObservationManagerportObservationManager () const
void add_default_tracks ()
 Adds the default undeletable tracks to the project.
structure::tracks::FinalTrackDependencies get_final_track_dependencies ()
utils::IObjectRegistryget_registry ()
const utils::IObjectRegistryget_registry () const
const auto & tempo_map () const
void set_audio_input_selection_provider (AudioInputSelectionProvider provider)
const auto & audio_input_selection_provider () const
void set_midi_input_selection_provider (MidiInputSelectionProvider provider)
const auto & midi_input_selection_provider () const
void install_recording_callback (structure::tracks::TrackRecordingCallback callback)
 Installs the recording callback used by all tracks.

Data Fields

utils::QObjectUniquePtr< dsp::PortConnectionsManagerport_connections_manager_
 Must be free'd after engine.
utils::QObjectUniquePtr< dsp::Transporttransport_
 Timeline metadata like BPM, time signature, etc.
utils::QObjectUniquePtr< dsp::AudioEngineaudio_engine_
 The audio backend.
std::unique_ptr< dsp::AudioPoolpool_
 Audio file pool.
utils::QObjectUniquePtr< structure::tracks::Tracklisttracklist_
 Manager for region link groups.
std::vector< structure::tracks::Track * > tracks_rt_
 Realtime cache of tracks.
utils::QObjectUniquePtr< plugins::PluginFactoryplugin_factory_
std::unique_ptr< structure::tracks::TrackFactorytrack_factory_

Properties

QML_ELEMENT zrythm::structure::tracks::Tracklisttracklist
zrythm::structure::scenes::ClipLauncherclipLauncher
zrythm::structure::scenes::ClipPlaybackServiceclipPlaybackService
zrythm::dsp::AudioEngineengine
zrythm::dsp::Transporttransport
zrythm::dsp::TempoMapWrappertempoMap
zrythm::dsp::PortObservationManagerportObservationManager
zrythm::structure::arrangement::TempoObjectManagertempoObjectManager

Friends

void init_from (Project &obj, const Project &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const Project &project)
void from_json (const nlohmann::json &j, Project &project)

Detailed Description

Core functionality of a Zrythm project.

Definition at line 54 of file project.h.

Member Typedef Documentation

◆ AudioInputSelectionProvider

Initial value:

Callback to look up audio input selection for a track.

Set by ProjectSession after construction. Returns nullptr if no selection exists for the given track UUID.

Definition at line 80 of file project.h.

◆ MidiInputSelectionProvider

using zrythm::structure::project::Project::MidiInputSelectionProvider
Initial value:
std::function<dsp::MidiInputSelection *(
MIDI hardware input selection for a track.

Definition at line 83 of file project.h.

◆ PluginPtrVariant

using zrythm::structure::project::Project::PluginPtrVariant = plugins::PluginPtrVariant

Definition at line 70 of file project.h.

◆ ProjectDirectoryPathProvider

using zrythm::structure::project::Project::ProjectDirectoryPathProvider
Initial value:
std::function<std::filesystem::path (bool for_backup)>

Definition at line 71 of file project.h.

◆ TrackUuid

using zrythm::structure::project::Project::TrackUuid = structure::tracks::TrackUuid

Definition at line 69 of file project.h.

Member Function Documentation

◆ add_default_tracks()

void zrythm::structure::project::Project::add_default_tracks ( )

Adds the default undeletable tracks to the project.

To be called when creating new projects.

◆ arrangerObjectFactory()

auto * zrythm::structure::project::Project::arrangerObjectFactory ( ) const
inline

Definition at line 119 of file project.h.

◆ audio_input_selection_provider()

const auto & zrythm::structure::project::Project::audio_input_selection_provider ( ) const
inline

Definition at line 153 of file project.h.

◆ get_registry() [1/2]

utils::IObjectRegistry & zrythm::structure::project::Project::get_registry ( )
inline

Definition at line 140 of file project.h.

◆ get_registry() [2/2]

const utils::IObjectRegistry & zrythm::structure::project::Project::get_registry ( ) const
inline

Definition at line 141 of file project.h.

◆ install_recording_callback()

void zrythm::structure::project::Project::install_recording_callback ( structure::tracks::TrackRecordingCallback callback)

Installs the recording callback used by all tracks.

Must be called exactly once by ProjectSession after construction, before any tracks are created.

◆ midi_input_selection_provider()

const auto & zrythm::structure::project::Project::midi_input_selection_provider ( ) const
inline

Definition at line 163 of file project.h.

◆ set_audio_input_selection_provider()

void zrythm::structure::project::Project::set_audio_input_selection_provider ( AudioInputSelectionProvider provider)
inline

Definition at line 148 of file project.h.

◆ set_midi_input_selection_provider()

void zrythm::structure::project::Project::set_midi_input_selection_provider ( MidiInputSelectionProvider provider)
inline

Definition at line 158 of file project.h.

◆ tempo_map()

const auto & zrythm::structure::project::Project::tempo_map ( ) const
inline

Definition at line 146 of file project.h.

Field Documentation

◆ audio_engine_

utils::QObjectUniquePtr<dsp::AudioEngine> zrythm::structure::project::Project::audio_engine_

The audio backend.

Definition at line 223 of file project.h.

◆ plugin_factory_

utils::QObjectUniquePtr<plugins::PluginFactory> zrythm::structure::project::Project::plugin_factory_

Definition at line 255 of file project.h.

◆ pool_

std::unique_ptr<dsp::AudioPool> zrythm::structure::project::Project::pool_

Audio file pool.

Definition at line 226 of file project.h.

◆ port_connections_manager_

utils::QObjectUniquePtr<dsp::PortConnectionsManager> zrythm::structure::project::Project::port_connections_manager_

Must be free'd after engine.

Definition at line 212 of file project.h.

◆ track_factory_

std::unique_ptr<structure::tracks::TrackFactory> zrythm::structure::project::Project::track_factory_

Definition at line 256 of file project.h.

◆ tracklist_

utils::QObjectUniquePtr<structure::tracks::Tracklist> zrythm::structure::project::Project::tracklist_

Manager for region link groups.

Tracklist.

Must be free'd before engine and port connection manager.

Definition at line 236 of file project.h.

◆ tracks_rt_

std::vector<structure::tracks::Track *> zrythm::structure::project::Project::tracks_rt_

Realtime cache of tracks.

Thread-safe because tracks are only added/removed while the graph is paused (engine not running).

Definition at line 244 of file project.h.

◆ transport_

utils::QObjectUniquePtr<dsp::Transport> zrythm::structure::project::Project::transport_

Timeline metadata like BPM, time signature, etc.

Definition at line 218 of file project.h.

Property Documentation

◆ clipLauncher

zrythm::structure::scenes::ClipLauncher * zrythm::structure::project::Project::clipLauncher
read

Definition at line 59 of file project.h.

◆ clipPlaybackService

zrythm::structure::scenes::ClipPlaybackService * zrythm::structure::project::Project::clipPlaybackService
read

Definition at line 60 of file project.h.

◆ engine

zrythm::dsp::AudioEngine * zrythm::structure::project::Project::engine
read

Definition at line 61 of file project.h.

◆ portObservationManager

zrythm::dsp::PortObservationManager * zrythm::structure::project::Project::portObservationManager
read

Definition at line 64 of file project.h.

◆ tempoMap

zrythm::dsp::TempoMapWrapper * zrythm::structure::project::Project::tempoMap
read

Definition at line 63 of file project.h.

◆ tempoObjectManager

zrythm::structure::arrangement::TempoObjectManager * zrythm::structure::project::Project::tempoObjectManager
read

Definition at line 65 of file project.h.

◆ tracklist

QML_ELEMENT zrythm::structure::tracks::Tracklist * zrythm::structure::project::Project::tracklist
read

Definition at line 58 of file project.h.

◆ transport

zrythm::dsp::Transport * zrythm::structure::project::Project::transport
read

Definition at line 62 of file project.h.


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