Deluge Firmware
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
AudioOutput Class Referencefinal

#include <AudioOutput.h>

Inheritance diagram for AudioOutput:
Inheritance graph
Collaboration diagram for AudioOutput:
Collaboration graph

Public Member Functions

 AudioOutput ()
 
virtual ~AudioOutput ()
 
void cloneFrom (ModControllableAudio *other)
 
void renderOutput (ModelStack *modelStack, StereoSample *startPos, StereoSample *endPos, int numSamples, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive)
 
void renderGlobalEffectableForClip (ModelStackWithTimelineCounter *modelStack, StereoSample *globalEffectableBuffer, int32_t *bufferToTransferTo, int numSamples, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive, int32_t pitchAdjust, int32_t amplitudeAtStart, int32_t amplitudeAtEnd)
 
void resetEnvelope ()
 
ModControllabletoModControllable ()
 
uint8_t * getModKnobMode ()
 
void cutAllSound ()
 
void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManagerForTimeline **paramManagerWithMostReverb, Kit **kitWithMostReverb, int32_t *highestReverbAmountFound)
 
int readFromFile (Song *song, Clip *clip, int32_t readAutomationUpToPos)
 
bool writeDataToFile (Clip *clipForSavingOutputOnly, Song *song)
 
void deleteBackedUpParamManagers (Song *song)
 
bool setActiveClip (ModelStackWithTimelineCounter *modelStack, int maySendMIDIPGMs=PGM_CHANGE_SEND_ONCE)
 
bool isSkippingRendering ()
 
OutputtoOutput ()
 
void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound)
 
void offerReceivedCCToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack)
 
bool offerReceivedPitchBendToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack)
 
char const * getXMLTag ()
 
- Public Member Functions inherited from Output
 Output (int newType)
 
virtual ~Output ()
 
virtual void renderOutput (ModelStack *modelStack, StereoSample *startPos, StereoSample *endPos, int numSamples, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive)=0
 
virtual void setupWithoutActiveClip (ModelStack *modelStack)
 
virtual bool setActiveClip (ModelStackWithTimelineCounter *modelStack, int maySendMIDIPGMs=PGM_CHANGE_SEND_ONCE)
 
void pickAnActiveClipForArrangementPos (ModelStack *modelStack, int arrangementPos, int maySendMIDIPGMs)
 
void pickAnActiveClipIfPossible (ModelStack *modelStack, bool searchSessionClipsIfNeeded=true, int maySendMIDIPGMs=PGM_CHANGE_SEND_ONCE, bool setupWithoutActiveClipIfNeeded=true)
 
void detachActiveClip (Song *currentSong)
 
virtual ModControllabletoModControllable ()
 
virtual bool isSkippingRendering ()
 
bool clipHasInstance (Clip *clip)
 
void clipLengthChanged (Clip *clip, int32_t oldLength)
 
virtual void cutAllSound ()
 
virtual void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound)
 
virtual bool offerReceivedPitchBendToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack)
 
virtual void offerReceivedCCToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack)
 
virtual int32_t doTickForwardForArp (ModelStack *modelStack, int32_t currentPos)
 
void endAnyArrangementRecording (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
 
virtual bool wantsToBeginArrangementRecording ()
 
virtual int readFromFile (Song *song, Clip *clip, int32_t readAutomationUpToPos)
 
virtual bool readTagFromFile (char const *tagName)
 
void writeToFile (Clip *clipForSavingOutputOnly, Song *song)
 
virtual bool writeDataToFile (Clip *clipForSavingOutputOnly, Song *song)
 
virtual int loadAllAudioFiles (bool mayActuallyReadFiles)
 
virtual void loadCrucialAudioFilesOnly ()
 
virtual void resyncLFOs ()
 
virtual void sendMIDIPGM ()
 
virtual void deleteBackedUpParamManagers (Song *song)
 
virtual void prepareForHibernationOrDeletion ()
 
virtual char const * getXMLTag ()=0
 
virtual ParamManagergetParamManager (Song *song)
 
virtual char const * getNameXMLTag ()
 
virtual void offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, bool on, int channel, int note, int velocity, bool shouldRecordNotes, bool *doingMidiThru)
 
virtual void offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru)
 
virtual void offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru)
 
virtual void offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, int channel, int value, int noteCode, bool *doingMidiThru)
 
virtual void stopAnyAuditioning (ModelStack *modelStack)
 
virtual void offerBendRangeUpdate (ModelStack *modelStack, MIDIDevice *device, int channelOrZone, int whichBendRange, int bendSemitones)
 
int possiblyBeginArrangementRecording (Song *song, int newPos)
 
void endArrangementPlayback (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
 
- Public Member Functions inherited from GlobalEffectableForClip
 GlobalEffectableForClip ()
 
int32_t getSidechainVolumeAmountAsPatchCableDepth (ParamManager *paramManager)
 
bool modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack) final
 
virtual OutputtoOutput ()=0
 
void getThingWithMostReverb (Clip *activeClip, Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound)
 
void saturate (int32_t *data, uint32_t *workingValue)
 
- Public Member Functions inherited from GlobalEffectable
 GlobalEffectable ()
 
void cloneFrom (ModControllableAudio *other)
 
void modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager)
 
bool modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack)
 
ModelStackWithAutoParamgetParamFromModEncoder (int whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true)
 
void setupFilterSetConfig (FilterSetConfig *filterSetConfig, int32_t *postFXVolume, ParamManager *paramManager)
 
void processFilters (StereoSample *buffer, int numSamples, FilterSetConfig *filterSetConfig)
 
void compensateVolumeForResonance (ParamManagerForTimeline *paramManager)
 
void processFXForGlobalEffectable (StereoSample *inputBuffer, int numSamples, int32_t *postFXVolume, ParamManager *paramManager, DelayWorkingState *delayWorkingState, int analogDelaySaturationAmount)
 
void writeAttributesToFile (bool writeToFile)
 
void writeTagsToFile (ParamManager *paramManager, bool writeToFile)
 
int readTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos, Song *song)
 
char const * paramToString (uint8_t param)
 
int stringToParam (char const *string)
 
void setupDelayWorkingState (DelayWorkingState *delayWorkingState, ParamManager *paramManager, bool shouldLimitDelayFeedback=false)
 
- Public Member Functions inherited from ModControllableAudio
 ModControllableAudio ()
 
virtual ~ModControllableAudio ()
 
virtual void cloneFrom (ModControllableAudio *other)
 
void processStutter (StereoSample *buffer, int numSamples, ParamManager *paramManager)
 
void processReverbSendAndVolume (StereoSample *buffer, int numSamples, int32_t *reverbBuffer, int32_t postFXVolume, int32_t postReverbVolume, int32_t reverbSendAmount, int32_t pan=0, bool doAmplitudeIncrement=false, int32_t amplitudeIncrement=0)
 
void writeAttributesToFile ()
 
void writeTagsToFile ()
 
int readTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos, Song *song)
 
void processSRRAndBitcrushing (StereoSample *buffer, int numSamples, int32_t *postFXVolume, ParamManager *paramManager)
 
void wontBeRenderedForAWhile ()
 
void endStutter (ParamManagerForTimeline *paramManager)
 
virtual bool setModFXType (int newType)
 
bool offerReceivedCCToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack, int noteRowIndex=-1)
 
bool offerReceivedPitchBendToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack, int noteRowIndex=-1)
 
virtual bool learnKnob (MIDIDevice *fromDevice, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song)
 
bool unlearnKnobs (ParamDescriptor paramDescriptor, Song *song)
 
virtual void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song)
 
virtual char const * paramToString (uint8_t param)
 
virtual int stringToParam (char const *string)
 
bool isBitcrushingEnabled (ParamManager *paramManager)
 
bool isSRREnabled (ParamManager *paramManager)
 
bool hasBassAdjusted (ParamManager *paramManager)
 
bool hasTrebleAdjusted (ParamManager *paramManager)
 
ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob *knob, ModelStackWithThreeMainThings *modelStack)
 
int buttonAction (int x, int y, bool on, ModelStackWithThreeMainThings *modelStack)
 
ModelStackWithAutoParamgetParamFromModEncoder (int whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation)
 
- Public Member Functions inherited from ModControllable
 ModControllable ()
 
virtual bool modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack)
 
virtual void modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager)
 
virtual ModelStackWithAutoParamgetParamFromModEncoder (int whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true)
 
virtual ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob *knob, ModelStackWithThreeMainThings *modelStack)
 
virtual uint8_t * getModKnobMode ()
 
virtual bool isKit ()
 
virtual int getKnobPosForNonExistentParam (int whichModEncoder, ModelStackWithAutoParam *modelStack)
 
virtual int modEncoderActionForNonExistentParam (int offset, int whichModEncoder, ModelStackWithAutoParam *modelStack)
 
virtual bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)
 
virtual void polyphonicExpressionEventOnChannelOrNote (int newValue, int whichExpressionDimension, int channelOrNoteNumber, int whichCharacteristic)
 
virtual void monophonicExpressionEvent (int newValue, int whichExpressionDimension)
 

Public Attributes

Envelope envelope
 
int32_t amplitudeLastTime
 
int32_t overrideAmplitudeEnvelopeReleaseRate
 
int8_t inputChannel
 
bool echoing
 
- Public Attributes inherited from Output
ClipInstanceVector clipInstances
 
ClipactiveClip
 
String name
 
Outputnext
 
const uint8_t type
 
bool mutedInArrangementMode
 
bool soloingInArrangementMode
 
bool inValidState
 
bool wasCreatedForAutoOverdub
 
bool armedForRecording
 
uint8_t modKnobMode
 
bool alreadyGotItsNewClip
 
bool isGettingSoloingClip
 
bool nextClipFoundShouldGetArmed
 
bool recordingInArrangement
 
- Public Attributes inherited from GlobalEffectableForClip
int32_t postReverbVolumeLastTime
 
uint32_t lastSaturationTanHWorkingValue [2]
 
- Public Attributes inherited from GlobalEffectable
FilterSet filterSets [2]
 
uint8_t currentModFXParam
 
uint8_t currentFilterType
 
- Public Attributes inherited from ModControllableAudio
StereoSample phaserMemory
 
StereoSample allpassMemory [PHASER_NUM_ALLPASS_FILTERS]
 
int32_t bassFreq
 
int32_t trebleFreq
 
int32_t withoutTrebleL
 
int32_t bassOnlyL
 
int32_t withoutTrebleR
 
int32_t bassOnlyR
 
Delay delay
 
bool sampleRateReductionOnLastTime
 
uint8_t clippingAmount
 
uint8_t lpfMode
 
uint8_t modFXType
 
StereoSamplemodFXBuffer
 
uint16_t modFXBufferWriteIndex
 
LFO modFXLFO
 
Stutterer stutterer
 
uint32_t lowSampleRatePos
 
uint32_t highSampleRatePos
 
StereoSample lastSample
 
StereoSample grabbedSample
 
StereoSample lastGrabbedSample
 
Compressor compressor
 
MidiKnobArray midiKnobArray
 

Protected Member Functions

ClipcreateNewClipForArrangementRecording (ModelStack *modelStack)
 
bool wantsToBeginArrangementRecording ()
 
bool willRenderAsOneChannelOnlyWhichWillNeedCopying ()
 
virtual ClipcreateNewClipForArrangementRecording (ModelStack *modelStack)=0
 
- Protected Member Functions inherited from GlobalEffectableForClip
int getParameterFromKnob (int whichModEncoder) final
 
void renderOutput (ModelStackWithTimelineCounter *modelStack, ParamManager *paramManagerForClip, StereoSample *outputBuffer, int numSamples, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive, int outputType, int analogDelaySaturationAmount)
 
virtual void renderGlobalEffectableForClip (ModelStackWithTimelineCounter *modelStack, StereoSample *globalEffectableBuffer, int32_t *bufferToTransferTo, int numSamples, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive, int32_t pitchAdjust, int32_t amplitudeAtStart, int32_t amplitudeAtEnd)=0
 
virtual bool willRenderAsOneChannelOnlyWhichWillNeedCopying ()
 
- Protected Member Functions inherited from GlobalEffectable
virtual int getParameterFromKnob (int whichModEncoder)
 
int getActiveModFXType (ParamManager *paramManager)
 
- Protected Member Functions inherited from ModControllableAudio
void processFX (StereoSample *buffer, int numSamples, int modFXType, int32_t modFXRate, int32_t modFXDepth, DelayWorkingState *delayWorkingState, int32_t *postFXVolume, ParamManager *paramManager, int analogDelaySaturationAmount)
 
int32_t getStutterRate (ParamManager *paramManager)
 
void beginStutter (ParamManagerForTimeline *paramManager)
 
void switchDelayPingPong ()
 
void switchDelayAnalog ()
 
void switchLPFMode ()
 
void clearModFXMemory ()
 

Additional Inherited Members

- Static Public Member Functions inherited from GlobalEffectable
static void initParams (ParamManager *paramManager)
 
static void initParamsForAudioClip (ParamManagerForTimeline *paramManager)
 
static void writeParamAttributesToFile (ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=NULL)
 
static void writeParamTagsToFile (ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=NULL)
 
static void readParamsFromFile (ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
 
static bool readParamTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
 
- Static Public Member Functions inherited from ModControllableAudio
static void writeParamAttributesToFile (ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=NULL)
 
static void writeParamTagsToFile (ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=NULL)
 
static bool readParamTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
 
static void initParams (ParamManager *paramManager)
 

Constructor & Destructor Documentation

◆ AudioOutput()

AudioOutput::AudioOutput ( )

◆ ~AudioOutput()

AudioOutput::~AudioOutput ( )
virtual

Member Function Documentation

◆ cloneFrom()

void AudioOutput::cloneFrom ( ModControllableAudio other)
virtual

Reimplemented from ModControllableAudio.

◆ createNewClipForArrangementRecording()

Clip * AudioOutput::createNewClipForArrangementRecording ( ModelStack modelStack)
protectedvirtual

Implements Output.

◆ cutAllSound()

void AudioOutput::cutAllSound ( )
virtual

Reimplemented from Output.

◆ deleteBackedUpParamManagers()

void AudioOutput::deleteBackedUpParamManagers ( Song song)
virtual

Reimplemented from Output.

◆ getModKnobMode()

uint8_t * AudioOutput::getModKnobMode ( )
inlinevirtual

Reimplemented from ModControllable.

◆ getThingWithMostReverb() [1/2]

void AudioOutput::getThingWithMostReverb ( Sound **  soundWithMostReverb,
ParamManager **  paramManagerWithMostReverb,
GlobalEffectableForClip **  globalEffectableWithMostReverb,
int32_t *  highestReverbAmountFound 
)
virtual

Reimplemented from Output.

◆ getThingWithMostReverb() [2/2]

void AudioOutput::getThingWithMostReverb ( Sound **  soundWithMostReverb,
ParamManagerForTimeline **  paramManagerWithMostReverb,
Kit **  kitWithMostReverb,
int32_t *  highestReverbAmountFound 
)

◆ getXMLTag()

char const * AudioOutput::getXMLTag ( )
inlinevirtual

Implements Output.

◆ isSkippingRendering()

bool AudioOutput::isSkippingRendering ( )
virtual

Reimplemented from Output.

◆ offerReceivedCCToLearnedParams()

void AudioOutput::offerReceivedCCToLearnedParams ( MIDIDevice fromDevice,
uint8_t  channel,
uint8_t  ccNumber,
uint8_t  value,
ModelStackWithTimelineCounter modelStack 
)
inlinevirtual

Reimplemented from Output.

◆ offerReceivedPitchBendToLearnedParams()

bool AudioOutput::offerReceivedPitchBendToLearnedParams ( MIDIDevice fromDevice,
uint8_t  channel,
uint8_t  data1,
uint8_t  data2,
ModelStackWithTimelineCounter modelStack 
)
inlinevirtual

Reimplemented from Output.

◆ readFromFile()

int AudioOutput::readFromFile ( Song song,
Clip clip,
int32_t  readAutomationUpToPos 
)
virtual

Reimplemented from Output.

◆ renderGlobalEffectableForClip()

void AudioOutput::renderGlobalEffectableForClip ( ModelStackWithTimelineCounter modelStack,
StereoSample globalEffectableBuffer,
int32_t *  bufferToTransferTo,
int  numSamples,
int32_t *  reverbBuffer,
int32_t  reverbAmountAdjust,
int32_t  sideChainHitPending,
bool  shouldLimitDelayFeedback,
bool  isClipActive,
int32_t  pitchAdjust,
int32_t  amplitudeAtStart,
int32_t  amplitudeAtEnd 
)
virtual

◆ renderOutput()

void AudioOutput::renderOutput ( ModelStack modelStack,
StereoSample startPos,
StereoSample endPos,
int  numSamples,
int32_t *  reverbBuffer,
int32_t  reverbAmountAdjust,
int32_t  sideChainHitPending,
bool  shouldLimitDelayFeedback,
bool  isClipActive 
)
virtual

Implements Output.

◆ resetEnvelope()

void AudioOutput::resetEnvelope ( )

◆ setActiveClip()

bool AudioOutput::setActiveClip ( ModelStackWithTimelineCounter modelStack,
int  maySendMIDIPGMs = PGM_CHANGE_SEND_ONCE 
)
virtual

Reimplemented from Output.

◆ toModControllable()

ModControllable * AudioOutput::toModControllable ( )
inlinevirtual

Reimplemented from Output.

◆ toOutput()

Output * AudioOutput::toOutput ( )
inlinevirtual

◆ wantsToBeginArrangementRecording()

bool AudioOutput::wantsToBeginArrangementRecording ( )
protectedvirtual

Reimplemented from Output.

◆ willRenderAsOneChannelOnlyWhichWillNeedCopying()

bool AudioOutput::willRenderAsOneChannelOnlyWhichWillNeedCopying ( )
protectedvirtual

Reimplemented from GlobalEffectableForClip.

◆ writeDataToFile()

bool AudioOutput::writeDataToFile ( Clip clipForSavingOutputOnly,
Song song 
)
virtual

Reimplemented from Output.

Member Data Documentation

◆ amplitudeLastTime

int32_t AudioOutput::amplitudeLastTime

◆ echoing

bool AudioOutput::echoing

◆ envelope

Envelope AudioOutput::envelope

◆ inputChannel

int8_t AudioOutput::inputChannel

◆ overrideAmplitudeEnvelopeReleaseRate

int32_t AudioOutput::overrideAmplitudeEnvelopeReleaseRate

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