36 |
#include "audioio.h" |
#include "audioio.h" |
37 |
#include "gig.h" |
#include "gig.h" |
38 |
#include "rtelmemorypool.h" |
#include "rtelmemorypool.h" |
39 |
|
#include "modulationsystem.h" |
40 |
|
|
41 |
#define PITCHBEND_SEMITONES 12 |
#define PITCHBEND_SEMITONES 12 |
42 |
#define MAX_AUDIO_VOICES 64 |
#define MAX_AUDIO_VOICES 64 |
46 |
|
|
47 |
class AudioThread : public Thread { |
class AudioThread : public Thread { |
48 |
public: |
public: |
49 |
int ActiveVoiceCount; ///< number of currently active voices |
double Volume; ///< overall volume (a value < 1.0 means attenuation, a value > 1.0 means amplification) |
50 |
int ActiveVoiceCountMax; ///< the maximum voice usage since application start |
int ActiveVoiceCount; ///< number of currently active voices |
51 |
|
int ActiveVoiceCountMax; ///< the maximum voice usage since application start |
52 |
|
|
53 |
AudioThread(AudioIO* pAudioIO, DiskThread* pDiskThread, gig::Instrument* pInstrument); |
AudioThread(AudioIO* pAudioIO, DiskThread* pDiskThread, gig::Instrument* pInstrument); |
54 |
~AudioThread(); |
~AudioThread(); |
99 |
void ProcessNoteOn(uint8_t MIDIKey, uint8_t Velocity); |
void ProcessNoteOn(uint8_t MIDIKey, uint8_t Velocity); |
100 |
void ProcessNoteOff(uint8_t MIDIKey, uint8_t Velocity); |
void ProcessNoteOff(uint8_t MIDIKey, uint8_t Velocity); |
101 |
void ProcessControlChange(uint8_t Channel, uint8_t Number, uint8_t Value); |
void ProcessControlChange(uint8_t Channel, uint8_t Number, uint8_t Value); |
102 |
void ReleaseVoice(Voice* pVoice); |
void KillVoice(Voice* pVoice); |
103 |
void CacheInitialSamples(gig::Sample* pSample); |
void CacheInitialSamples(gig::Sample* pSample); |
104 |
}; |
}; |
105 |
|
|