45#define PARAM_LPF_OFF (-1)
52#define NUM_MOD_SOURCE_SELECTION_BUTTONS 2
144 void render(
ModelStackWithThreeMainThings* modelStack,
StereoSample *outputBuffer,
int numSamples, int32_t* reverbBuffer, int32_t sideChainHitPending, int32_t reverbAmountAdjust = 134217728,
bool shouldLimitDelayFeedback =
false, int32_t pitchAdjust = 16777216);
181 void noteOn(
ModelStackWithThreeMainThings* modelStack,
ArpeggiatorBase* arpeggiator,
int noteCode, int16_t
const* mpeValues, uint32_t sampleSyncLength = 0, int32_t ticksLate = 0, uint32_t samplesLate = 0,
int velocity = 64,
int fromMIDIChannel = 16);
185 void noteOnPostArpeggiator(
ModelStackWithSoundFlags* modelStack,
int newNoteCodeBeforeArpeggiation,
int newNoteCodeAfterArpeggiation,
int velocity, int16_t
const* mpeValues, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate,
int fromMIDIChannel = 16);
234 return paramManager->getPatchedParamSet()->getValue(p);
248 inline void saturate(int32_t* data, uint32_t* workingValue) {
260 uint32_t getGlobalLFOPhaseIncrement();
263 void calculateEffectiveVolume();
264 void ensureKnobReferencesCorrectVolume(
Knob* knob);
268 void writeSourceToFile(
int s,
char const* tagName);
276 void setupDefaultExpressionPatching(
ParamManager* paramManager);
Definition: Arpeggiator.h:73
Definition: Arpeggiator.h:28
Definition: GlobalEffectableForClip.h:33
Definition: InstrumentClip.h:54
Definition: MIDIDevice.h:74
Definition: ModControllableAudio.h:46
uint8_t clippingAmount
Definition: ModControllableAudio.h:97
Definition: ModelStack.h:277
Definition: ModelStack.h:236
Definition: ModelStack.h:295
Definition: ModelStack.h:243
Definition: ModelStack.h:305
Definition: ParamDescriptor.h:23
Definition: ParamManager.h:166
Definition: ParamManager.h:50
Definition: phaseincrementfinetuner.h:25
int32_t postReverbVolumeLastTime
Definition: sound.h:129
int16_t transpose
Definition: sound.h:92
bool isSourceActiveEverDisregardingMissingSample(int s, ParamManager *paramManager)
Definition: sound.cpp:1549
int16_t getMaxOscTranspose(InstrumentClip *clip)
Definition: sound.cpp:3317
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZeroWithMinimalDetails(ParamManager *paramManager)
Definition: sound.cpp:2218
void reassessRenderSkippingStatus(ModelStackWithSoundFlags *modelStack, bool shouldJustCutModFX=false)
Definition: sound.cpp:1604
bool isSourceActiveCurrently(int s, ParamManagerForTimeline *paramManager)
Definition: sound.cpp:1544
void doneReadingFromFile()
Definition: sound.cpp:2285
void setNumUnison(int newNum, ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:2405
void recalculateAllVoicePhaseIncrements(ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:2392
virtual void setSkippingRendering(bool newSkipping)
Definition: sound.cpp:1960
void compensateVolumeForResonance(ModelStackWithThreeMainThings *modelStack)
Definition: sound.cpp:2564
bool isSourceActiveEver(int s, ParamManager *paramManager)
Definition: sound.cpp:1553
void noteOn(ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator, int noteCode, int16_t const *mpeValues, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0, int velocity=64, int fromMIDIChannel=16)
Definition: sound.cpp:1198
uint8_t lfoLocalWaveType
Definition: sound.h:83
bool allowNoteTails(ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)
Definition: sound.cpp:1406
void noteOnPostArpeggiator(ModelStackWithSoundFlags *modelStack, int newNoteCodeBeforeArpeggiation, int newNoteCodeAfterArpeggiation, int velocity, int16_t const *mpeValues, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate, int fromMIDIChannel=16)
Definition: sound.cpp:1230
uint8_t lfoGlobalSyncLevel
Definition: sound.h:84
void unassignAllVoices()
Definition: sound.cpp:2019
void setupAsDefaultSynth(ParamManager *paramManager)
Definition: sound.cpp:237
uint8_t voicePriority
Definition: sound.h:115
char const * paramToString(uint8_t param) final
Definition: sound.cpp:3688
void detachSourcesFromAudioFiles()
Definition: sound.cpp:3606
void deleteMultiRange(int s, int r)
Definition: sound.cpp:3614
bool hasAnyVoices()
Definition: sound.cpp:2299
void allNotesOff(ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator)
Definition: sound.cpp:1341
virtual ArpeggiatorSettings * getArpSettings(InstrumentClip *clip=NULL)=0
bool allowsVeryLateNoteStart(InstrumentClip *clip, ParamManagerForTimeline *paramManager)
Definition: sound.cpp:1505
ModKnob modKnobs[NUM_MOD_BUTTONS][NUM_PHYSICAL_MOD_KNOBS]
Definition: sound.h:86
int32_t hasCutOrLoopModeSamples(ParamManagerForTimeline *paramManager, int note, bool *anyLooping=NULL)
Definition: sound.cpp:1457
int32_t globalSourceValues[FIRST_LOCAL_SOURCE]
Definition: sound.h:77
int32_t paramFinalValues[NUM_PARAMS - FIRST_GLOBAL_PARAM]
Definition: sound.h:76
int8_t getKnobPos(uint8_t p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter)
int32_t getKnobPosBig(int p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter)
LFO globalLFO
Definition: sound.h:81
uint32_t startSkippingRenderingAtTime
Definition: sound.h:136
int stringToParam(char const *string) final
Definition: sound.cpp:3832
uint32_t timeStartedSkippingRenderingModFX
Definition: sound.h:133
void possiblySetupDefaultExpressionPatching(ParamManager *paramManager)
Definition: sound.cpp:275
uint8_t maySourcePatchToParam(uint8_t s, uint8_t p, ParamManager *paramManager)
Definition: sound.cpp:1089
void ensureParamPresetValueWithoutKnobIsZero(ModelStackWithAutoParam *modelStack)
Definition: sound.cpp:2242
Sound()
Definition: sound.cpp:74
static void readParamsFromFile(ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
Definition: sound.cpp:2496
static bool readParamTagFromFile(char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
Definition: sound.cpp:2950
ModelStackWithAutoParam * getParamFromModEncoder(int whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true) final
Definition: sound.cpp:3403
void ensureParamPresetValueWithoutKnobIsZeroWithMinimalDetails(ParamManager *paramManager, int p)
Definition: sound.cpp:2262
uint8_t lfoGlobalWaveType
Definition: sound.h:82
uint32_t numSamplesSkippedRenderingForGlobalLFO
Definition: sound.h:132
virtual void setupPatchingForAllParamManagers(Song *song)
Definition: sound.h:219
int readFromFile(ModelStackWithModControllable *modelStack, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings)
Definition: sound.cpp:2509
uint32_t oscRetriggerPhase[NUM_SOURCES]
Definition: sound.h:126
int8_t unisonDetune
Definition: sound.h:97
static void initParams(ParamManager *paramManager)
Definition: sound.cpp:159
bool skippingRendering
Definition: sound.h:117
PhaseIncrementFineTuner modulatorTransposers[numModulators]
Definition: sound.h:102
bool setModFXType(int newType) final
Definition: sound.cpp:325
void setUnisonDetune(int newAmount, ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:2473
void wontBeRenderedForAWhile()
Definition: sound.cpp:3590
int numVoicesAssigned
Definition: sound.h:257
bool envelopeHasSustainEver(int e, ParamManagerForTimeline *paramManager)
Definition: sound.cpp:3385
void recalculatePatchingToParam(uint8_t p, ParamManagerForTimeline *paramManager)
Definition: sound.cpp:367
bool modEncoderButtonAction(uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack) final
Definition: sound.cpp:3451
int lastNoteCode
Definition: sound.h:111
int loadAllAudioFiles(bool mayActuallyReadFiles)
Definition: sound.cpp:3363
void confirmNumVoices(char const *error)
Definition: sound.cpp:2041
bool oscillatorSync
Definition: sound.h:113
uint32_t modulatorRetriggerPhase[numModulators]
Definition: sound.h:127
void voiceUnassigned(ModelStackWithVoice *modelStack)
Definition: sound.cpp:2304
virtual ArpeggiatorBase * getArp()=0
uint32_t timeStartedSkippingRenderingLFO
Definition: sound.h:134
uint8_t polyphonic
Definition: sound.h:90
ModelStackWithAutoParam * getParamFromMIDIKnob(MIDIKnob *knob, ModelStackWithThreeMainThings *modelStack) final
Definition: sound.cpp:3847
void notifyValueChangeViaLPF(int p, bool shouldDoParamLPF, ModelStackWithThreeMainThings const *modelStack, int32_t oldValue, int32_t newValue, bool fromAutomation)
Definition: sound.cpp:1676
void modButtonAction(uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager) final
Definition: sound.cpp:3396
void render(ModelStackWithThreeMainThings *modelStack, StereoSample *outputBuffer, int numSamples, int32_t *reverbBuffer, int32_t sideChainHitPending, int32_t reverbAmountAdjust=134217728, bool shouldLimitDelayFeedback=false, int32_t pitchAdjust=16777216)
Definition: sound.cpp:1754
bool modulator1ToModulator0
Definition: sound.h:107
bool anyNoteIsOn()
Definition: sound.cpp:2478
void setSynthMode(uint8_t value, Song *song)
Definition: sound.cpp:2338
int8_t modulatorCents[numModulators]
Definition: sound.h:100
void patchedParamPresetValueChanged(uint8_t p, ModelStackWithSoundFlags *modelStack, int32_t oldValue, int32_t newValue)
Definition: sound.cpp:348
uint8_t getSynthMode()
Definition: sound.h:190
bool isNoiseActiveEver(ParamManagerForTimeline *paramManager)
Definition: sound.cpp:1559
int16_t getMinOscTranspose()
Definition: sound.cpp:3342
void setLFOGlobalWave(uint8_t newWave)
Definition: sound.cpp:2120
Patcher patcher
Definition: sound.h:70
void setLFOGlobalSyncLevel(uint8_t newLevel)
Definition: sound.cpp:2115
void setModulatorTranspose(int m, int value, ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:2374
bool renderingOscillatorSyncCurrently(ParamManagerForTimeline *paramManager)
Definition: sound.cpp:1566
bool learnKnob(MIDIDevice *fromDevice, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song) final
Definition: sound.cpp:2166
uint8_t synthMode
Definition: sound.h:106
bool envelopeHasSustainCurrently(int e, ParamManagerForTimeline *paramManager)
Definition: sound.cpp:3375
virtual bool isDrum()
Definition: sound.h:194
void setupAsSample(ParamManagerForTimeline *paramManager)
Definition: sound.cpp:205
bool hasFilters()
Definition: sound.cpp:2490
bool renderingOscillatorSyncEver(ParamManager *paramManager)
Definition: sound.cpp:1572
Source sources[NUM_SOURCES]
Definition: sound.h:74
void setupAsBlankSynth(ParamManager *paramManager)
Definition: sound.cpp:304
int32_t hasAnyTimeStretchSyncing(ParamManagerForTimeline *paramManager, bool getSampleLength=false, int note=0)
Definition: sound.cpp:1436
void writeToFile(bool savingSong, ParamManager *paramManager, ArpeggiatorSettings *arpSettings)
Definition: sound.cpp:3225
int32_t getSmoothedPatchedParamValue(int p, ParamManager *paramManager)
Definition: sound.h:229
virtual bool readTagFromFile(char const *tagName)=0
uint32_t sourcesChanged
Definition: sound.h:79
void prepareForHibernation()
Definition: sound.cpp:3584
int32_t monophonicExpressionValues[NUM_EXPRESSION_DIMENSIONS]
Definition: sound.h:121
uint8_t whichExpressionSourcesChangedAtSynthLevel
Definition: sound.h:119
ParamLPF paramLPF
Definition: sound.h:72
uint8_t numUnison
Definition: sound.h:95
void setModulatorCents(int m, int value, ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:2379
void noteOffPostArpeggiator(ModelStackWithSoundFlags *modelStack, int noteCode=-32768)
Definition: sound.cpp:1355
void fastReleaseAllVoices(ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:3566
static void writeParamsToFile(ParamManager *paramManager, bool writeAutomation)
Definition: sound.cpp:3147
void getThingWithMostReverb(Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound, ParamManagerForTimeline *paramManager)
Definition: sound.cpp:1657
bool hasCutModeSamples(ParamManagerForTimeline *paramManager)
Definition: sound.cpp:1487
int16_t modulatorTranspose[numModulators]
Definition: sound.h:99
static int createParamManagerForLoading(ParamManagerForTimeline *paramManager)
Definition: sound.cpp:2552
void resyncGlobalLFO()
Definition: sound.cpp:2126
PhaseIncrementFineTuner unisonDetuners[maxNumUnison]
Definition: sound.h:104
void saturate(int32_t *data, uint32_t *workingValue)
Definition: sound.h:248
uint32_t timeStartedSkippingRenderingArp
Definition: sound.h:135
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero(Song *song) final
Definition: sound.cpp:2191
int32_t volumeNeutralValueForUnison
Definition: sound.h:109
int32_t sideChainSendLevel
Definition: sound.h:88
void sampleZoneChanged(int markerType, int s, ModelStackWithSoundFlags *modelStack)
Definition: sound.cpp:1581
Definition: AudioSample.h:25
Definition: TimelineCounter.h:29
#define NUM_PARAMS
Definition: definitions.h:434
#define NUM_EXPRESSION_DIMENSIONS
Definition: definitions.h:919
#define numModulators
Definition: definitions.h:319
#define NUM_SOURCES
Definition: definitions.h:608
#define FIRST_GLOBAL_PARAM
Definition: definitions.h:430
#define NUM_PHYSICAL_MOD_KNOBS
Definition: definitions.h:553
#define NUM_MOD_BUTTONS
Definition: definitions.h:173
#define maxNumUnison
Definition: definitions.h:321
#define FIRST_LOCAL_SOURCE
Definition: definitions.h:360
int32_t getTanHAntialiased(int32_t input, uint32_t *lastWorkingValue, unsigned int saturationAmount)
Definition: functions.h:379
Definition: PatchCableSet.h:28
int p
Definition: sound.h:48
int32_t currentValue
Definition: sound.h:49