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;
179 bool isKeyMapped(
int key)
const;
183 int firstKey()
const;
191 int baseNote()
const;
195 float baseFreq()
const;
213 static void removeMidiPortNode(
DataFile& dataFile );
245 void setPreviewMode(
const bool );
252 void replaceInstrument(
DataFile dataFile);
256 void autoAssignMidiDevice(
bool assign);
271 return "instrumenttrack";
275 QString getSavedInstrumentName(
const QDomElement & thisElement)
const;
279 void updateBaseNote();
281 void updatePitchRange();
282 void updateMixerChannel();
286 void processCCEvent(
int controller);
Job between PlayHandle and MixerChannel.
Definition AudioBusHandle.h:55
Definition AutomatableModel.h:502
Definition AutomatableModel.h:468
Definition InstrumentFunctions.h:177
Definition InstrumentFunctions.h:51
Definition Instrument.h:54
Definition InstrumentSoundShaping.h:46
bool isPreviewMode() const
Definition InstrumentTrack.h:247
MidiPort * midiPort()
Definition InstrumentTrack.h:151
std::unique_ptr< FloatModel > m_midiCCModel[MidiControllerCount]
Definition InstrumentTrack.h:331
friend class NotePlayHandle
Definition InstrumentTrack.h:335
IntModel * baseNoteModel()
Definition InstrumentTrack.h:161
BoolModel m_useMasterPitchModel
Definition InstrumentTrack.h:319
void processInEvent(const MidiEvent &event, const TimePos &time=TimePos(), f_cnt_t offset=0) override
Definition InstrumentTrack.cpp:308
NotePlayHandleList m_processHandles
Definition InstrumentTrack.h:309
IntModel * firstKeyModel()
Definition InstrumentTrack.h:166
bool isArpeggioEnabled() const
Definition InstrumentTrack.h:207
FloatModel m_panningModel
Definition InstrumentTrack.h:312
void midiNoteOff(const lmms::Note &)
FloatModel * panningModel()
Definition InstrumentTrack.h:225
InstrumentTrack(TrackContainer *tc)
Definition InstrumentTrack.cpp:49
IntModel m_pitchRangeModel
Definition InstrumentTrack.h:317
bool isSustainPedalPressed() const
Definition InstrumentTrack.h:80
FloatModel m_pitchModel
Definition InstrumentTrack.h:316
IntModel m_baseNoteModel
The "A4" or "440 Hz" key (default 69).
Definition InstrumentTrack.h:302
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:294
void processAudioBuffer(SampleFrame *_buf, const f_cnt_t _frames, NotePlayHandle *_n)
Definition InstrumentTrack.cpp:213
bool m_previewMode
Definition InstrumentTrack.h:300
Piano m_piano
Definition InstrumentTrack.h:326
void processOutEvent(const MidiEvent &event, const TimePos &time=TimePos(), f_cnt_t offset=0) override
Definition InstrumentTrack.cpp:453
Microtuner * microtuner()
Definition InstrumentTrack.h:202
QString nodeName() const override
Definition InstrumentTrack.h:269
IntModel m_mixerChannelModel
Definition InstrumentTrack.h:318
NotePlayHandle * m_notes[NumKeys]
Definition InstrumentTrack.h:290
FloatModel * volumeModel()
Definition InstrumentTrack.h:220
MidiPort m_midiPort
Definition InstrumentTrack.h:288
int m_runningMidiNotes[NumKeys]
Definition InstrumentTrack.h:293
void midiNoteOn(const lmms::Note &)
bool m_silentBuffersProcessed
Definition InstrumentTrack.h:298
static InstrumentTrack * s_autoAssignedTrack
Definition InstrumentTrack.h:307
std::unique_ptr< BoolModel > m_midiCCEnable
Definition InstrumentTrack.h:330
FloatModel m_volumeModel
Definition InstrumentTrack.h:311
IntModel * pitchRangeModel()
Definition InstrumentTrack.h:230
Instrument * m_instrument
Definition InstrumentTrack.h:321
NotePlayHandleList m_sustainedNotes
Definition InstrumentTrack.h:291
IntModel m_firstKeyModel
First key the instrument reacts to.
Definition InstrumentTrack.h:303
BoolModel * useMasterPitchModel()
Definition InstrumentTrack.h:240
bool m_hasAutoMidiDev
Definition InstrumentTrack.h:306
FloatModel * pitchModel()
Definition InstrumentTrack.h:215
mapPropertyFromModel(int, getVolume, setVolume, m_volumeModel)
InstrumentFunctionArpeggio m_arpeggio
Definition InstrumentTrack.h:323
InstrumentFunctionNoteStacking m_noteStacking
Definition InstrumentTrack.h:324
AudioBusHandle m_audioBusHandle
Definition InstrumentTrack.h:314
InstrumentSoundShaping m_soundShaping
Definition InstrumentTrack.h:322
const IntModel * baseNoteModel() const
Definition InstrumentTrack.h:156
IntModel m_lastKeyModel
Last key the instrument reacts to.
Definition InstrumentTrack.h:304
Piano * pianoModel()
Definition InstrumentTrack.h:197
IntModel * mixerChannelModel()
Definition InstrumentTrack.h:235
int midiPitch() const
Definition InstrumentTrack.h:113
AudioBusHandle * audioBusHandle()
Definition InstrumentTrack.h:146
bool m_sustainPedalPressed
Definition InstrumentTrack.h:296
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:259
void silenceAllNotes(bool removeIPH=false)
Definition InstrumentTrack.cpp:514
IntModel * lastKeyModel()
Definition InstrumentTrack.h:171
Microtuner m_microtuner
Definition InstrumentTrack.h:328
MidiEvent applyMasterKey(const MidiEvent &event)
Definition InstrumentTrack.cpp:271
Definition AutomatableModel.h:486
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:49
Definition InstrumentTrackView.h:46
Definition InstrumentTrackWindow.h:63
Definition InstrumentTuningView.h:48
Definition MidiCCRackView.h:45
Definition TrackContainerView.h:71
Definition TrackView.h:60
Definition AudioPortAudio.cpp:209
Definition RemotePluginBase.cpp:34
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