lmms
Cross-platform music production software
Loading...
Searching...
No Matches
lmms::MidiClip Class Reference

#include <MidiClip.h>

Inheritance diagram for lmms::MidiClip:
lmms::Clip lmms::Model lmms::JournallingObject lmms::SerializingObject

Public Types

enum class  Type { BeatClip , MelodyClip }

Public Slots

void addSteps ()
void cloneSteps ()
void removeSteps ()
void clear ()
Public Slots inherited from lmms::Clip
void toggleMute ()
 Mutes this Clip.

Signals

void destroyedMidiClip (lmms::MidiClip *)
void dataChanged ()
Signals inherited from lmms::Clip
void lengthChanged ()
void positionChanged ()
void destroyedClip ()
void colorChanged ()
Signals inherited from lmms::Model
void dataChanged ()
void dataUnchanged ()
void propertiesChanged ()

Public Member Functions

 MidiClip (InstrumentTrack *instrumentTrack)
 ~MidiClip () override
void init ()
void updateLength () override
Note * addNote (const Note &_new_note, const bool _quant_pos=true)
NoteVector::const_iterator removeNote (NoteVector::const_iterator it)
NoteVector::const_iterator removeNote (Note *note)
Note * noteAtStep (int _step)
void rearrangeAllNotes ()
void clearNotes ()
const NoteVector & notes () const
Note * addStepNote (int step)
void setStep (int step, bool enabled)
void reverseNotes (const NoteVector &notes)
 Horizontally flip the positions of the given notes.
void splitNotes (const NoteVector &notes, TimePos pos)
void splitNotesAlongLine (const NoteVector notes, TimePos pos1, int key1, TimePos pos2, int key2, bool deleteShortEnds)
Type type () const
MidiClip * previousMidiClip () const
MidiClip * nextMidiClip () const
void exportToXML (QDomDocument &doc, QDomElement &midiClipElement, bool onlySelectedNotes=false)
void saveSettings (QDomDocument &_doc, QDomElement &_parent) override
void loadSettings (const QDomElement &_this) override
QString nodeName () const override
InstrumentTrack * instrumentTrack () const
bool empty ()
gui::ClipView * createView (gui::TrackView *_tv) override
MidiClip * clone () override
 Creates a copy of this clip.
Public Member Functions inherited from lmms::Clip
 Clip (Track *track)
 Creates a new clip for the given track track.
 ~Clip () override
 Destroys the given clip.
Track * getTrack () const
const QString & name () const
void setName (const QString &name)
QString displayName () const override
const TimePos & startPosition () const
TimePos endPosition () const
const TimePos & length () const
bool hasTrackContainer () const
bool isInPattern () const
bool manuallyResizable () const
void setAutoResize (const bool r)
 Set whether a clip has been resized yet by the user or the knife tool.
bool getAutoResize () const
auto color () const -> const std::optional< QColor > &
void setColor (const std::optional< QColor > &color)
virtual void movePosition (const TimePos &pos)
 Move this Clip's position in time.
virtual void changeLength (const TimePos &length)
 Change the length of this Clip.
void selectViewOnCreate (bool select)
bool getSelectViewOnCreate ()
TimePos startTimeOffset () const
virtual void setStartTimeOffset (const TimePos &startTimeOffset)
Public Member Functions inherited from lmms::Model
 Model (Model *parent, QString displayName=QString(), bool defaultConstructed=false)
 ~Model () override=default
bool isDefaultConstructed () const
Model * parentModel () const
virtual void setDisplayName (const QString &displayName)
virtual QString fullDisplayName () const
Public Member Functions inherited from lmms::JournallingObject
 JournallingObject ()
 ~JournallingObject () override
jo_id_t id () const
void saveJournallingState (const bool newState)
void restoreJournallingState ()
void addJournalCheckPoint ()
QDomElement saveState (QDomDocument &_doc, QDomElement &_parent) override
void restoreState (const QDomElement &_this) override
bool isJournalling () const
void setJournalling (const bool _sr)
bool testAndSetJournalling (const bool newState)
bool isJournallingStateStackEmpty () const
Public Member Functions inherited from lmms::SerializingObject
 SerializingObject ()
virtual ~SerializingObject ()
void setHook (SerializingObjectHook *_hook)
SerializingObjectHook * hook ()

Protected Slots

void changeTimeSignature ()

Protected Member Functions

 MidiClip (const MidiClip &other)
void updatePatternTrack ()
Protected Member Functions inherited from lmms::Clip
 Clip (const Clip &other)
 Creates a duplicate clip of the one provided.
Protected Member Functions inherited from lmms::JournallingObject
void changeID (jo_id_t _id)

Private Member Functions

TimePos beatClipLength () const
void setType (Type _new_clip_type)
void checkType ()
void resizeToFirstTrack ()
MidiClip * adjacentMidiClipByOffset (int offset) const

Private Attributes

InstrumentTrack * m_instrumentTrack
Type m_clipType
NoteVector m_notes
int m_steps

Friends

class gui::MidiClipView

Additional Inherited Members

Static Public Member Functions inherited from lmms::Clip
static bool comparePosition (const Clip *a, const Clip *b)
 Returns true if and only if a->startPosition() < b->startPosition().
static void copyStateTo (Clip *src, Clip *dst)
 Copies the state of a clip to another clip.

Member Enumeration Documentation

◆ Type

enum class lmms::MidiClip::Type
strong
Enumerator
BeatClip 
MelodyClip 

Constructor & Destructor Documentation

◆ MidiClip() [1/2]

lmms::MidiClip::MidiClip ( InstrumentTrack * instrumentTrack)

◆ ~MidiClip()

lmms::MidiClip::~MidiClip ( )
override

◆ MidiClip() [2/2]

lmms::MidiClip::MidiClip ( const MidiClip & other)
protected

Member Function Documentation

◆ addNote()

Note * lmms::MidiClip::addNote ( const Note & _new_note,
const bool _quant_pos = true )

◆ addStepNote()

Note * lmms::MidiClip::addStepNote ( int step)

◆ addSteps

void lmms::MidiClip::addSteps ( )
slot

◆ adjacentMidiClipByOffset()

MidiClip * lmms::MidiClip::adjacentMidiClipByOffset ( int offset) const
private

◆ beatClipLength()

TimePos lmms::MidiClip::beatClipLength ( ) const
private

◆ changeTimeSignature

void lmms::MidiClip::changeTimeSignature ( )
protectedslot

◆ checkType()

void lmms::MidiClip::checkType ( )
private

◆ clear

void lmms::MidiClip::clear ( )
slot

◆ clearNotes()

void lmms::MidiClip::clearNotes ( )

◆ clone()

MidiClip * lmms::MidiClip::clone ( )
inlineoverridevirtual

Creates a copy of this clip.

Returns
Pointer to the new clip object

Implements lmms::Clip.

◆ cloneSteps

void lmms::MidiClip::cloneSteps ( )
slot

◆ createView()

gui::ClipView * lmms::MidiClip::createView ( gui::TrackView * _tv)
overridevirtual

Implements lmms::Clip.

◆ dataChanged

void lmms::Model::dataChanged ( )
signal

◆ destroyedMidiClip

void lmms::MidiClip::destroyedMidiClip ( lmms::MidiClip * )
signal

◆ empty()

bool lmms::MidiClip::empty ( )

◆ exportToXML()

void lmms::MidiClip::exportToXML ( QDomDocument & doc,
QDomElement & midiClipElement,
bool onlySelectedNotes = false )

◆ init()

void lmms::MidiClip::init ( )

◆ instrumentTrack()

InstrumentTrack * lmms::MidiClip::instrumentTrack ( ) const
inline

◆ loadSettings()

void lmms::MidiClip::loadSettings ( const QDomElement & _this)
overridevirtual

◆ nextMidiClip()

MidiClip * lmms::MidiClip::nextMidiClip ( ) const

◆ nodeName()

QString lmms::MidiClip::nodeName ( void ) const
inlineoverridevirtual

◆ noteAtStep()

Note * lmms::MidiClip::noteAtStep ( int _step)

◆ notes()

const NoteVector & lmms::MidiClip::notes ( ) const
inline

◆ previousMidiClip()

MidiClip * lmms::MidiClip::previousMidiClip ( ) const

◆ rearrangeAllNotes()

void lmms::MidiClip::rearrangeAllNotes ( )

◆ removeNote() [1/2]

NoteVector::const_iterator lmms::MidiClip::removeNote ( Note * note)

◆ removeNote() [2/2]

NoteVector::const_iterator lmms::MidiClip::removeNote ( NoteVector::const_iterator it)

◆ removeSteps

void lmms::MidiClip::removeSteps ( )
slot

◆ resizeToFirstTrack()

void lmms::MidiClip::resizeToFirstTrack ( )
private

◆ reverseNotes()

void lmms::MidiClip::reverseNotes ( const NoteVector & notes)

Horizontally flip the positions of the given notes.

◆ saveSettings()

void lmms::MidiClip::saveSettings ( QDomDocument & _doc,
QDomElement & _parent )
overridevirtual

◆ setStep()

void lmms::MidiClip::setStep ( int step,
bool enabled )

◆ setType()

void lmms::MidiClip::setType ( Type _new_clip_type)
private

◆ splitNotes()

void lmms::MidiClip::splitNotes ( const NoteVector & notes,
TimePos pos )

◆ splitNotesAlongLine()

void lmms::MidiClip::splitNotesAlongLine ( const NoteVector notes,
TimePos pos1,
int key1,
TimePos pos2,
int key2,
bool deleteShortEnds )

◆ type()

Type lmms::MidiClip::type ( ) const
inline

◆ updateLength()

void lmms::MidiClip::updateLength ( )
overridevirtual

Reimplemented from lmms::Clip.

◆ updatePatternTrack()

void lmms::MidiClip::updatePatternTrack ( )
protected

◆ gui::MidiClipView

friend class gui::MidiClipView
friend

Member Data Documentation

◆ m_clipType

Type lmms::MidiClip::m_clipType
private

◆ m_instrumentTrack

InstrumentTrack* lmms::MidiClip::m_instrumentTrack
private

◆ m_notes

NoteVector lmms::MidiClip::m_notes
private

◆ m_steps

int lmms::MidiClip::m_steps
private

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