24 #include <boost/intrusive/list.hpp>
25 #include <boost/rational.hpp>
27 #include <glibmm/threads.h>
47 class MidiNoteTracker;
307 void *
operator new (size_t) {
311 void operator delete (
void* ptr,
size_t ) {
330 void *
operator new (size_t) {
334 void operator delete (
void* ptr,
size_t ) {
void shift_right(size_t n=1)
XMLNode & get_state() const
Step & step(size_t n) const
void schedule(Temporal::Beats const &)
void shift_left(size_t n=1)
StepSequencer & _sequencer
Glib::Threads::Mutex _step_lock
bool run(MidiBuffer &buf, bool running, samplepos_t, samplepos_t, MidiNoteTracker &)
void reschedule(Temporal::Beats const &, Temporal::Beats const &)
void set_mode(MusicalMode m)
void dump(MusicTimeEvents &, Temporal::Beats const &) const
Temporal::Beats wrap(Temporal::Beats const &) const
StepSequence(StepSequencer &myseq, size_t index, size_t nsteps, Temporal::Beats const &step_size, Temporal::Beats const &bar_size, int notenum)
int set_state(XMLNode const &, int)
std::vector< Step * > Steps
StepSequencer & sequencer() const
void startup(Temporal::Beats const &start, Temporal::Beats const &offset)
void check_note_offs(ARDOUR::MidiBuffer &, samplepos_t start_sample, samplepos_t last_sample)
ARDOUR::MidiNoteTracker outbound_tracker
boost::intrusive::list< NoteOffBlob > NoteOffList
void set_end_step(size_t)
Temporal::Beats _step_size
std::shared_ptr< Source > write_to_source(Session &s, std::string p=std::string()) const
int set_state(XMLNode const &, int)
void set_start_step(size_t)
size_t step_capacity() const
size_t nsequences() const
PBD::RingBuffer< Request * > requests
TempoMap & tempo_map() const
XMLNode & get_state() const
bool fill_midi_source(std::shared_ptr< SMFSource > src) const
Temporal::Beats reschedule(samplepos_t)
size_t start_step() const
void queue_note_off(Temporal::Beats const &, uint8_t note, uint8_t velocity, uint8_t channel)
std::vector< StepSequence * > StepSequences
bool run(MidiBuffer &buf, samplepos_t, samplepos_t, double, pframes_t, bool)
StepSequencer(TempoMap &, size_t nseqs, size_t nsteps, Temporal::Beats const &step_size, Temporal::Beats const &bar_size, int notenum)
StepSequence & sequence(size_t n) const
Glib::Threads::Mutex _sequence_lock
Temporal::Beats duration() const
Temporal::Beats _last_startup
Temporal::Beats step_size() const
void set_step_size(Temporal::Beats const &)
void adjust_velocity(int amt)
ParameterValue _parameters[_parameters_per_step]
boost::rational< int > DurationRatio
Temporal::Beats _scheduled_beat
bool run(MidiBuffer &buf, bool running, samplepos_t, samplepos_t, MidiNoteTracker &)
void adjust_octave(int amt)
void dump_parameter(MusicTimeEvents &, size_t n, Temporal::Beats const &) const
void reschedule(Temporal::Beats const &, Temporal::Beats const &)
Temporal::Beats _nominal_beat
int parameter_value(size_t n=0) const
void adjust_duration(DurationRatio const &amt)
static const int _parameters_per_step
void adjust_pitch(int amt)
void adjust_offset(double fraction)
void dump(MusicTimeEvents &, Temporal::Beats const &) const
void set_note(double note, double velocity=0.5, int n=0)
XMLNode & get_state() const
void set_velocity(double, size_t n=0)
DurationRatio duration() const
void set_chord(size_t note_cnt, double *notes)
Temporal::Beats offset(size_t n=0) const
Note _notes[_notes_per_step]
void set_duration(DurationRatio const &)
static const int _notes_per_step
void set_parameter(int number, double value, int n=0)
void dump_note(MusicTimeEvents &, size_t n, Temporal::Beats const &) const
int set_state(XMLNode const &, int)
int parameter(size_t n=0) const
void check_parameter(size_t n, MidiBuffer &buf, bool, samplepos_t, samplepos_t)
double velocity(size_t n=0) const
Step(StepSequence &, size_t n, Temporal::Beats const &beat, int notenum)
double note(size_t n=0) const
void set_repeat(size_t r)
void set_beat(Temporal::Beats const &beat)
StepSequencer & sequencer() const
void set_offset(Temporal::Beats const &, size_t n=0)
void set_octave_shift(int)
void check_note(size_t n, MidiBuffer &buf, bool, samplepos_t, samplepos_t, MidiNoteTracker &)
Temporal::Beats beat() const
virtual void release(void *)
virtual void release(void *)
PBD::PropertyDescriptor< bool > running
PBD::PropertyDescriptor< timepos_t > start
std::vector< MusicTimeEvent * > MusicTimeEvents
Evoral::Event< Temporal::Beats > MusicTimeEvent
std::pair< Temporal::Beats, samplepos_t > BeatPosition
std::vector< BeatPosition > BeatPositions
Temporal::samplepos_t samplepos_t
bool operator<(NoteOffBlob const &other) const
NoteOffBlob(Temporal::Beats const &w, uint8_t n, uint8_t v, uint8_t c)
static PBD::MultiAllocSingleReleasePool pool
Temporal::Beats step_size
Note(double n, double v, Temporal::Beats const &o)