Zrythm v2.0.0-alpha.1
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
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::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 53 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 78 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 81 of file project.h.

◆ PluginPtrVariant

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

Definition at line 68 of file project.h.

◆ ProjectDirectoryPathProvider

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

Definition at line 69 of file project.h.

◆ TrackUuid

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

Definition at line 67 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 117 of file project.h.

◆ audio_input_selection_provider()

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

Definition at line 149 of file project.h.

◆ get_registry() [1/2]

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

Definition at line 136 of file project.h.

◆ get_registry() [2/2]

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

Definition at line 137 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 159 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 144 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 154 of file project.h.

◆ tempo_map()

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

Definition at line 142 of file project.h.

Field Documentation

◆ audio_engine_

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

The audio backend.

Definition at line 219 of file project.h.

◆ plugin_factory_

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

Definition at line 251 of file project.h.

◆ pool_

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

Audio file pool.

Definition at line 222 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 208 of file project.h.

◆ track_factory_

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

Definition at line 252 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 232 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 240 of file project.h.

◆ transport_

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

Timeline metadata like BPM, time signature, etc.

Definition at line 214 of file project.h.

Property Documentation

◆ clipLauncher

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

Definition at line 58 of file project.h.

◆ clipPlaybackService

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

Definition at line 59 of file project.h.

◆ engine

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

Definition at line 60 of file project.h.

◆ tempoMap

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

Definition at line 62 of file project.h.

◆ tempoObjectManager

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

Definition at line 63 of file project.h.

◆ tracklist

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

Definition at line 57 of file project.h.

◆ transport

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

Definition at line 61 of file project.h.


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