26#ifndef LMMS_INSTRUMENT_TRACK_H
27#define LMMS_INSTRUMENT_TRACK_H
92 QString instrumentName()
const;
106 void setName(
const QString & _new_name )
override;
110 int masterKey(
int _midi_key )
const;
126 const f_cnt_t _frame_base,
int _clip_num = -1 )
override;
135 void saveTrackSpecificSettings(QDomDocument& doc, QDomElement&
parent,
bool presetMode)
override;
136 void loadTrackSpecificSettings(
const QDomElement & _this )
override;
142 Instrument * loadInstrument(
const QString & _instrument_name,
144 bool keyFromDnd =
false);
176 bool keyRangeImport()
const;
177 bool isKeyMapped(
int key)
const;
178 int firstKey()
const;
180 int baseNote()
const;
181 float baseFreq()
const;
199 static void removeMidiPortNode(
DataFile& dataFile );
231 void setPreviewMode(
const bool );
238 void replaceInstrument(
DataFile dataFile);
240 void autoAssignMidiDevice(
bool );
255 return "instrumenttrack";
259 QString getSavedInstrumentName(
const QDomElement & thisElement)
const;
263 void updateBaseNote();
265 void updatePitchRange();
266 void updateMixerChannel();
Controller controller
Definition main.C:5
Job between PlayHandle and MixerChannel.
Definition AudioBusHandle.h:55
Definition AutomatableModel.h:497
Definition AutomatableModel.h:463
Definition InstrumentFunctions.h:177
Definition InstrumentFunctions.h:51
Definition Instrument.h:52
Definition InstrumentSoundShaping.h:46
bool isPreviewMode() const
Definition InstrumentTrack.h:233
MidiPort * midiPort()
Definition InstrumentTrack.h:151
std::unique_ptr< FloatModel > m_midiCCModel[MidiControllerCount]
Definition InstrumentTrack.h:315
friend class NotePlayHandle
Definition InstrumentTrack.h:319
IntModel * baseNoteModel()
Definition InstrumentTrack.h:161
BoolModel m_useMasterPitchModel
Definition InstrumentTrack.h:303
void processInEvent(const MidiEvent &event, const TimePos &time=TimePos(), f_cnt_t offset=0) override
Definition InstrumentTrack.cpp:319
NotePlayHandleList m_processHandles
Definition InstrumentTrack.h:293
IntModel * firstKeyModel()
Definition InstrumentTrack.h:166
bool isArpeggioEnabled() const
Definition InstrumentTrack.h:193
FloatModel m_panningModel
Definition InstrumentTrack.h:296
void midiNoteOff(const lmms::Note &)
FloatModel * panningModel()
Definition InstrumentTrack.h:211
InstrumentTrack(TrackContainer *tc)
Definition InstrumentTrack.cpp:49
IntModel m_pitchRangeModel
Definition InstrumentTrack.h:301
bool isSustainPedalPressed() const
Definition InstrumentTrack.h:80
FloatModel m_pitchModel
Definition InstrumentTrack.h:300
IntModel m_baseNoteModel
The "A4" or "440 Hz" key (default 69).
Definition InstrumentTrack.h:286
Instrument * instrument()
Definition InstrumentTrack.h:98
const Instrument * instrument() const
Definition InstrumentTrack.h:93
int midiPitchRange() const
Returns current range for pitch bend in semitones.
Definition InstrumentTrack.h:119
QMutex m_midiNotesMutex
Definition InstrumentTrack.h:278
void processAudioBuffer(SampleFrame *_buf, const f_cnt_t _frames, NotePlayHandle *_n)
Definition InstrumentTrack.cpp:224
bool m_previewMode
Definition InstrumentTrack.h:284
Piano m_piano
Definition InstrumentTrack.h:310
void processOutEvent(const MidiEvent &event, const TimePos &time=TimePos(), f_cnt_t offset=0) override
Definition InstrumentTrack.cpp:464
Microtuner * microtuner()
Definition InstrumentTrack.h:188
QString nodeName() const override
Definition InstrumentTrack.h:253
IntModel m_mixerChannelModel
Definition InstrumentTrack.h:302
NotePlayHandle * m_notes[NumKeys]
Definition InstrumentTrack.h:274
FloatModel * volumeModel()
Definition InstrumentTrack.h:206
MidiPort m_midiPort
Definition InstrumentTrack.h:272
int m_runningMidiNotes[NumKeys]
Definition InstrumentTrack.h:277
void midiNoteOn(const lmms::Note &)
bool m_silentBuffersProcessed
Definition InstrumentTrack.h:282
static InstrumentTrack * s_autoAssignedTrack
Definition InstrumentTrack.h:291
std::unique_ptr< BoolModel > m_midiCCEnable
Definition InstrumentTrack.h:314
FloatModel m_volumeModel
Definition InstrumentTrack.h:295
IntModel * pitchRangeModel()
Definition InstrumentTrack.h:216
Instrument * m_instrument
Definition InstrumentTrack.h:305
NotePlayHandleList m_sustainedNotes
Definition InstrumentTrack.h:275
IntModel m_firstKeyModel
First key the instrument reacts to.
Definition InstrumentTrack.h:287
BoolModel * useMasterPitchModel()
Definition InstrumentTrack.h:226
bool m_hasAutoMidiDev
Definition InstrumentTrack.h:290
FloatModel * pitchModel()
Definition InstrumentTrack.h:201
mapPropertyFromModel(int, getVolume, setVolume, m_volumeModel)
InstrumentFunctionArpeggio m_arpeggio
Definition InstrumentTrack.h:307
InstrumentFunctionNoteStacking m_noteStacking
Definition InstrumentTrack.h:308
AudioBusHandle m_audioBusHandle
Definition InstrumentTrack.h:298
InstrumentSoundShaping m_soundShaping
Definition InstrumentTrack.h:306
const IntModel * baseNoteModel() const
Definition InstrumentTrack.h:156
IntModel m_lastKeyModel
Last key the instrument reacts to.
Definition InstrumentTrack.h:288
Piano * pianoModel()
Definition InstrumentTrack.h:183
IntModel * mixerChannelModel()
Definition InstrumentTrack.h:221
int midiPitch() const
Definition InstrumentTrack.h:113
AudioBusHandle * audioBusHandle()
Definition InstrumentTrack.h:146
bool m_sustainPedalPressed
Definition InstrumentTrack.h:280
FloatModel * midiCCModel(int index) const
Returns a non-owning pointer to the model for the knob at the given index in the track's MIDI CC rack...
Definition InstrumentTrack.h:243
void silenceAllNotes(bool removeIPH=false)
Definition InstrumentTrack.cpp:525
IntModel * lastKeyModel()
Definition InstrumentTrack.h:171
Microtuner m_microtuner
Definition InstrumentTrack.h:312
MidiEvent applyMasterKey(const MidiEvent &event)
Definition InstrumentTrack.cpp:282
Definition AutomatableModel.h:481
void setJournalling(const bool _sr)
Definition JournallingObject.h:73
Definition Microtuner.h:36
Definition MidiEvent.h:37
MidiEventProcessor()=default
Definition NotePlayHandle.h:48
Definition SampleFrame.h:41
Definition TrackContainer.h:49
Track(Type type, TrackContainer *tc)
Create a new (empty) track object.
Definition Track.cpp:59
Definition InstrumentTrackView.h:46
Definition InstrumentTrackWindow.h:63
Definition InstrumentTuningView.h:48
Definition MidiCCRackView.h:45
Definition TrackContainerView.h:71
Definition TrackView.h:60
static uintptr_t parent
Definition pugl.h:1644
Definition AudioPortAudio.cpp:209
Definition AudioAlsa.cpp:35
const int MidiControllerCount
Definition Midi.h:128
const int MidiMaxPitchBend
Definition Midi.h:139
QList< NotePlayHandle * > NotePlayHandleList
Definition NotePlayHandle.h:44
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43
const int NumKeys
Number of physical keys, limited to MIDI range (valid for both MIDI 1.0 and 2.0).
Definition Note.h:90
ZCONST char * key
Definition crypt.c:587