Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::StepSequencer Class Reference

#include <step_sequencer.h>

Inheritance diagram for ARDOUR::StepSequencer:
[legend]

Classes

struct  NoteOffBlob
 
struct  Request
 

Public Member Functions

 StepSequencer (TempoMap &, size_t nseqs, size_t nsteps, Temporal::Beats const &step_size, Temporal::Beats const &bar_size, int notenum)
 
 ~StepSequencer ()
 
size_t step_capacity () const
 
size_t nsteps () const
 
size_t nsequences () const
 
int last_step () const
 
StepSequencesequence (size_t n) const
 
Temporal::Beats duration () const
 
Temporal::Beats step_size () const
 
void set_step_size (Temporal::Beats const &)
 
void set_start_step (size_t)
 
void set_end_step (size_t)
 
size_t start_step () const
 
size_t end_step () const
 
void sync ()
 
void reset ()
 
bool run (MidiBuffer &buf, samplepos_t, samplepos_t, double, pframes_t, bool)
 
TempoMap & tempo_map () const
 
XMLNodeget_state () const
 
int set_state (XMLNode const &, int)
 
void queue_note_off (Temporal::Beats const &, uint8_t note, uint8_t velocity, uint8_t channel)
 
std::shared_ptr< Sourcewrite_to_source (Session &s, std::string p=std::string()) const
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 

Private Types

typedef std::vector< StepSequence * > StepSequences
 
typedef boost::intrusive::list< NoteOffBlobNoteOffList
 

Private Member Functions

bool check_requests ()
 
Temporal::Beats reschedule (samplepos_t)
 
void check_note_offs (ARDOUR::MidiBuffer &, samplepos_t start_sample, samplepos_t last_sample)
 
void clear_note_offs ()
 
bool fill_midi_source (std::shared_ptr< SMFSource > src) const
 

Private Attributes

Glib::Threads::Mutex _sequence_lock
 
TempoMap & _tempo_map
 
StepSequences _sequences
 
Temporal::Beats _last_startup
 
size_t _last_step
 
Temporal::Beats _step_size
 
size_t _start_step
 
size_t _end_step
 
samplepos_t last_start
 
samplepos_t last_end
 
bool _running
 
size_t _step_capacity
 
ARDOUR::MidiNoteTracker outbound_tracker
 
PBD::RingBuffer< Request * > requests
 
NoteOffList note_offs
 

Additional Inherited Members

- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Detailed Description

Definition at line 228 of file step_sequencer.h.

Member Typedef Documentation

◆ NoteOffList

typedef boost::intrusive::list<NoteOffBlob> ARDOUR::StepSequencer::NoteOffList
private

Definition at line 343 of file step_sequencer.h.

◆ StepSequences

typedef std::vector<StepSequence*> ARDOUR::StepSequencer::StepSequences
private

Definition at line 271 of file step_sequencer.h.

Constructor & Destructor Documentation

◆ StepSequencer()

ARDOUR::StepSequencer::StepSequencer ( TempoMap &  ,
size_t  nseqs,
size_t  nsteps,
Temporal::Beats const &  step_size,
Temporal::Beats const &  bar_size,
int  notenum 
)

◆ ~StepSequencer()

ARDOUR::StepSequencer::~StepSequencer ( )

Member Function Documentation

◆ check_note_offs()

void ARDOUR::StepSequencer::check_note_offs ( ARDOUR::MidiBuffer ,
samplepos_t  start_sample,
samplepos_t  last_sample 
)
private

◆ check_requests()

bool ARDOUR::StepSequencer::check_requests ( )
private

◆ clear_note_offs()

void ARDOUR::StepSequencer::clear_note_offs ( )
private

◆ duration()

Temporal::Beats ARDOUR::StepSequencer::duration ( ) const

◆ end_step()

size_t ARDOUR::StepSequencer::end_step ( ) const
inline

Definition at line 251 of file step_sequencer.h.

◆ fill_midi_source()

bool ARDOUR::StepSequencer::fill_midi_source ( std::shared_ptr< SMFSource src) const
private

◆ get_state()

XMLNode& ARDOUR::StepSequencer::get_state ( ) const
virtual

Implements PBD::Stateful.

◆ last_step()

int ARDOUR::StepSequencer::last_step ( ) const

◆ nsequences()

size_t ARDOUR::StepSequencer::nsequences ( ) const
inline

Definition at line 236 of file step_sequencer.h.

◆ nsteps()

size_t ARDOUR::StepSequencer::nsteps ( ) const
inline

Definition at line 235 of file step_sequencer.h.

◆ queue_note_off()

void ARDOUR::StepSequencer::queue_note_off ( Temporal::Beats const &  ,
uint8_t  note,
uint8_t  velocity,
uint8_t  channel 
)

◆ reschedule()

Temporal::Beats ARDOUR::StepSequencer::reschedule ( samplepos_t  )
private

◆ reset()

void ARDOUR::StepSequencer::reset ( )

◆ run()

bool ARDOUR::StepSequencer::run ( MidiBuffer buf,
samplepos_t  ,
samplepos_t  ,
double  ,
pframes_t  ,
bool   
)

◆ sequence()

StepSequence& ARDOUR::StepSequencer::sequence ( size_t  n) const

◆ set_end_step()

void ARDOUR::StepSequencer::set_end_step ( size_t  )

◆ set_start_step()

void ARDOUR::StepSequencer::set_start_step ( size_t  )

◆ set_state()

int ARDOUR::StepSequencer::set_state ( XMLNode const &  ,
int   
)
virtual

Implements PBD::Stateful.

◆ set_step_size()

void ARDOUR::StepSequencer::set_step_size ( Temporal::Beats const &  )

◆ start_step()

size_t ARDOUR::StepSequencer::start_step ( ) const
inline

Definition at line 250 of file step_sequencer.h.

◆ step_capacity()

size_t ARDOUR::StepSequencer::step_capacity ( ) const
inline

Definition at line 234 of file step_sequencer.h.

◆ step_size()

Temporal::Beats ARDOUR::StepSequencer::step_size ( ) const
inline

Definition at line 244 of file step_sequencer.h.

◆ sync()

void ARDOUR::StepSequencer::sync ( )

◆ tempo_map()

TempoMap& ARDOUR::StepSequencer::tempo_map ( ) const
inline

Definition at line 258 of file step_sequencer.h.

◆ write_to_source()

std::shared_ptr<Source> ARDOUR::StepSequencer::write_to_source ( Session s,
std::string  p = std::string() 
) const

Member Data Documentation

◆ _end_step

size_t ARDOUR::StepSequencer::_end_step
private

Definition at line 278 of file step_sequencer.h.

◆ _last_startup

Temporal::Beats ARDOUR::StepSequencer::_last_startup
private

Definition at line 274 of file step_sequencer.h.

◆ _last_step

size_t ARDOUR::StepSequencer::_last_step
private

Definition at line 275 of file step_sequencer.h.

◆ _running

bool ARDOUR::StepSequencer::_running
private

Definition at line 281 of file step_sequencer.h.

◆ _sequence_lock

Glib::Threads::Mutex ARDOUR::StepSequencer::_sequence_lock
mutableprivate

Definition at line 268 of file step_sequencer.h.

◆ _sequences

StepSequences ARDOUR::StepSequencer::_sequences
private

Definition at line 272 of file step_sequencer.h.

◆ _start_step

size_t ARDOUR::StepSequencer::_start_step
private

Definition at line 277 of file step_sequencer.h.

◆ _step_capacity

size_t ARDOUR::StepSequencer::_step_capacity
private

Definition at line 282 of file step_sequencer.h.

◆ _step_size

Temporal::Beats ARDOUR::StepSequencer::_step_size
private

Definition at line 276 of file step_sequencer.h.

◆ _tempo_map

TempoMap& ARDOUR::StepSequencer::_tempo_map
private

Definition at line 269 of file step_sequencer.h.

◆ last_end

samplepos_t ARDOUR::StepSequencer::last_end
private

Definition at line 280 of file step_sequencer.h.

◆ last_start

samplepos_t ARDOUR::StepSequencer::last_start
private

Definition at line 279 of file step_sequencer.h.

◆ note_offs

NoteOffList ARDOUR::StepSequencer::note_offs
private

Definition at line 345 of file step_sequencer.h.

◆ outbound_tracker

ARDOUR::MidiNoteTracker ARDOUR::StepSequencer::outbound_tracker
private

Definition at line 284 of file step_sequencer.h.

◆ requests

PBD::RingBuffer<Request*> ARDOUR::StepSequencer::requests
private

Definition at line 316 of file step_sequencer.h.


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