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 );
252 return "instrumenttrack";
256 QString getSavedInstrumentName(
const QDomElement & thisElement)
const;
260 void updateBaseNote();
262 void updatePitchRange();
263 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:312
friend class NotePlayHandle
Definition InstrumentTrack.h:316
IntModel * baseNoteModel()
Definition InstrumentTrack.h:161
BoolModel m_useMasterPitchModel
Definition InstrumentTrack.h:300
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:290
IntModel * firstKeyModel()
Definition InstrumentTrack.h:166
bool isArpeggioEnabled() const
Definition InstrumentTrack.h:193
FloatModel m_panningModel
Definition InstrumentTrack.h:293
void midiNoteOff(const lmms::Note &)
FloatModel * panningModel()
Definition InstrumentTrack.h:211
InstrumentTrack(TrackContainer *tc)
Definition InstrumentTrack.cpp:49
IntModel m_pitchRangeModel
Definition InstrumentTrack.h:298
bool isSustainPedalPressed() const
Definition InstrumentTrack.h:80
FloatModel m_pitchModel
Definition InstrumentTrack.h:297
IntModel m_baseNoteModel
The "A4" or "440 Hz" key (default 69).
Definition InstrumentTrack.h:283
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:275
void processAudioBuffer(SampleFrame *_buf, const f_cnt_t _frames, NotePlayHandle *_n)
Definition InstrumentTrack.cpp:224
bool m_previewMode
Definition InstrumentTrack.h:281
Piano m_piano
Definition InstrumentTrack.h:307
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:250
IntModel m_mixerChannelModel
Definition InstrumentTrack.h:299
NotePlayHandle * m_notes[NumKeys]
Definition InstrumentTrack.h:271
FloatModel * volumeModel()
Definition InstrumentTrack.h:206
MidiPort m_midiPort
Definition InstrumentTrack.h:269
int m_runningMidiNotes[NumKeys]
Definition InstrumentTrack.h:274
void midiNoteOn(const lmms::Note &)
bool m_silentBuffersProcessed
Definition InstrumentTrack.h:279
static InstrumentTrack * s_autoAssignedTrack
Definition InstrumentTrack.h:288
std::unique_ptr< BoolModel > m_midiCCEnable
Definition InstrumentTrack.h:311
FloatModel m_volumeModel
Definition InstrumentTrack.h:292
IntModel * pitchRangeModel()
Definition InstrumentTrack.h:216
Instrument * m_instrument
Definition InstrumentTrack.h:302
NotePlayHandleList m_sustainedNotes
Definition InstrumentTrack.h:272
IntModel m_firstKeyModel
First key the instrument reacts to.
Definition InstrumentTrack.h:284
BoolModel * useMasterPitchModel()
Definition InstrumentTrack.h:226
bool m_hasAutoMidiDev
Definition InstrumentTrack.h:287
FloatModel * pitchModel()
Definition InstrumentTrack.h:201
mapPropertyFromModel(int, getVolume, setVolume, m_volumeModel)
InstrumentFunctionArpeggio m_arpeggio
Definition InstrumentTrack.h:304
InstrumentFunctionNoteStacking m_noteStacking
Definition InstrumentTrack.h:305
AudioBusHandle m_audioBusHandle
Definition InstrumentTrack.h:295
InstrumentSoundShaping m_soundShaping
Definition InstrumentTrack.h:303
const IntModel * baseNoteModel() const
Definition InstrumentTrack.h:156
IntModel m_lastKeyModel
Last key the instrument reacts to.
Definition InstrumentTrack.h:285
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:277
void silenceAllNotes(bool removeIPH=false)
Definition InstrumentTrack.cpp:525
IntModel * lastKeyModel()
Definition InstrumentTrack.h:171
Microtuner m_microtuner
Definition InstrumentTrack.h:309
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:223
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