Navigation
API > API/Plugins > API/Plugins/HarmonixDsp
Make Fusion Sampler derive directly from virtual instrument.
| Name | FFusionSampler |
| Type | class |
| Header File | /Engine/Plugins/Runtime/Harmonix/Source/HarmonixDsp/Public/HarmonixDsp/FusionSampler/FusionSampler.h |
| Include Path | #include "HarmonixDsp/FusionSampler/FusionSampler.h" |
Syntax
class FFusionSampler : public FVirtualInstrument
Inheritance Hierarchy
- FMusicalAudioBus → FVirtualInstrument → FFusionSampler
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FFusionSampler
(
float InSampleRate, |
HarmonixDsp/FusionSampler/FusionSampler.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FFusionSampler() |
HarmonixDsp/FusionSampler/FusionSampler.h |
Structs
| Name | Remarks |
|---|---|
| FMIDINoteStatus | |
| FPendingNoteAction |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| kMaxLayersPerNote | const int32 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kMaxSubstreams | const int32 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kNoteIgnore | const int8 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kNoteOff | const int8 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kNumLfos | int32 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kNumModulators | int32 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kScratchBufferBytes | const int32 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kScratchBufferChannels | const int32 | HarmonixDsp/FusionSampler/FusionSampler.h | |
| kScratchBufferFrames | const int32 | "scratch pad" used during process to get each voice's output audio | HarmonixDsp/FusionSampler/FusionSampler.h |
| kScratchBufferSamples | const int32 | HarmonixDsp/FusionSampler/FusionSampler.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ActiveVoices | TDoubleLinkedList< FFusionVoice * > | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| AdsrAssignableSettings | FAdsrSettings | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| AdsrVolumeSettings | FAdsrSettings | Modulators. | HarmonixDsp/FusionSampler/FusionSampler.h | |
| bUsePitchShifters | const bool | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| CurrentQuarterNote | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| ExpressionGain | float | The CC 11 expression value [0,1] | HarmonixDsp/FusionSampler/FusionSampler.h | |
| ExpressionGainRamper | TLinearRamper< float > | Expression [0,1] mapped to linear gain (a la the MIDI recommendations) | HarmonixDsp/FusionSampler/FusionSampler.h | |
| ExtraPitchBend | float | Extra pitch bend in semitones | HarmonixDsp/FusionSampler/FusionSampler.h | |
| FilterSettings | FBiquadFilterSettings | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| FineTuneCents | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| FusionPatchData | FFusionPatchData * | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| GainTable | const FGainTable * | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| IsPortamentoActive | bool | True if the portmanto pitch should be considered (false before any note ons for example) | HarmonixDsp/FusionSampler/FusionSampler.h | |
| IsPortamentoEnabled | bool | PORTAMENTO. | HarmonixDsp/FusionSampler/FusionSampler.h | |
| LastStartLayerSelect | int8 | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| LastStopLayerSelect | int8 | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| LastVelocity | int8 | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| Lfos | Harmonix::Dsp::Modulators::FLfo | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| LfoSettings | FLfoSettings | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| MaintainPitchWhenSpeedChanges | bool | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| MaxNumVoices | uint32 | Soft limit, may be over max if some voices are in release stage | HarmonixDsp/FusionSampler/FusionSampler.h | |
| MaxPitchBendCents | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| MidiChannelGainRamper | TLinearRamper< float > | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| MidiChannelMuted | bool | Channel's mute setting... persists independently of the patch | HarmonixDsp/FusionSampler/FusionSampler.h | |
| MidiChannelMuteGainRamper | TLinearRamper< float > | Ramper to smooth muting | HarmonixDsp/FusionSampler/FusionSampler.h | |
| MidiChannelVolume | float | Channel's mix setting... persists independently of the patch | HarmonixDsp/FusionSampler/FusionSampler.h | |
| MinPitchBendCents | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| NoteStatus | FMIDINoteStatus | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| PanSettings | FPannerDetails | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| PendingNoteActions | TArray< FPendingNoteAction > | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| PitchBendFactor | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| PitchBendRamper | TLinearRamper< float > | On range [-1, 1] | HarmonixDsp/FusionSampler/FusionSampler.h | |
| PortamentoMode | EPortamentoMode | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| PortamentoPitchRamper | TLinearRamper< float > | Midi note number (fractional) that represents the actual pitch of sounding notes | HarmonixDsp/FusionSampler/FusionSampler.h | |
| PortamentoTimeMs | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| RampCallRateHz | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| RandomizerSettings | FModulatorSettings | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| sNoteActionCritSec | FCriticalSection | If we get note-ons or note-offs on the main thread, or if we get multiple requests for the same note number, then this data helps us track and filter these requests | HarmonixDsp/FusionSampler/FusionSampler.h | |
| sNoteStatusCritSec | FCriticalSection | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| Speed | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| StartPointMs | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| SubstreamGain | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| TicksPerQuarterNote | int32 | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| TimeStretchEnvelopeOverride | int16 | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| TrimGain | float | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| TrimVolume | float | The patch's trim setting... read-only outside of patch editor. | HarmonixDsp/FusionSampler/FusionSampler.h | |
| VelocityModulatorSettings | FModulatorSettings | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| VoicePool | FSharedFusionVoicePoolPtr | HarmonixDsp/FusionSampler/FusionSampler.h | ||
| VoiceWorkBuffer | float | +4 because we can't count on 'alignas' because we allocate an array of these classes. That type of allocation ignores the alignas attribute :-( | HarmonixDsp/FusionSampler/FusionSampler.h | |
| VoiceWorkBufferChannels | float * | HarmonixDsp/FusionSampler/FusionSampler.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TSet< int32 > GetActiveKeyzones() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
const FGainTable * GetGainTable() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual int32 GetNumVoicesInUse
(
FFusionVoice** vArray |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
float GetQuarterNote() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
float GetSubstreamGain
(
int32 Index |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
float GetSubtsreamGain
(
int32 Index |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
int32 GetTicksPerQuarterNote() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void ResetPatchRelatedState() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void SetGainTable
(
const FGainTable* GainTable |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void SetTicksPerQuarterNote
(
int32 InTicksPerQuarterNote |
HarmonixDsp/FusionSampler/FusionSampler.h |
Overridden from FVirtualInstrument
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AllNotesOff() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void AllNotesOffWithFrameOffset
(
int32 InNumFrames |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void GetController
(
Harmonix::Midi::Constants::EControllerID InController, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual int32 GetMaxNumVoices () |
Get the max number of note-ons this baby can handle before auto-release. | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual float GetMidiChannelGain
(
int8 InMidiChannel |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual bool GetMidiChannelMute
(
int8 InMidiChannel |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual float GetMidiChannelVolume
(
int8 InMidiChannel |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual int32 GetNumVoicesInUse () |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual float GetPitchBend
(
int8 InMidiChannel |
Pitch bend value, on range [-1.0, 1.0] | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual float GetRawPitchMultiplier() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual int32 GetRawTransposition() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual float GetSpeed
(
bool* MaintainPitchOut |
Gets the current speed. | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void KillAllVoices() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual bool NoteIsOn
(
int8 InMidiNoteNumber, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void NoteOff
(
FMidiVoiceId InVoiceId, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void NoteOffWithFrameOffset
(
FMidiVoiceId InVoiceId, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void NoteOn
(
FMidiVoiceId InVoiceId, |
These are overrides from VirtualInstrument that deal with MIDI message handling... | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void NoteOnWithFrameOffset
(
FMidiVoiceId InVoiceId, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void SetExtraPitchBend
(
float Semitones, |
Code-driven pitch bend, in semitones | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void SetMidiChannelGain
(
float InGain, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void SetMidiChannelMute
(
bool InMute, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void SetMidiChannelVolume
(
float InVolume, |
Mix Volume (dB) and associated linear gain (0,1]. | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void SetPitchBend
(
float InValue, |
Pitch bend value, on range [-1.0, 1.0] | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void SetQuarterNote
(
float QuarterNote |
Update the effect with the current beat/tempo | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void SetRawPitchMultiplier
(
float RawPitch |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void SetRawTransposition
(
int32 SemiTones |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void SetSpeed
(
float Speed, |
Sets modulation and sample playback speed when maintainPitch is false. Otherwise it's 1.0. | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void SetTempo
(
float BPM |
HarmonixDsp/FusionSampler/FusionSampler.h |
Overridden from FMusicalAudioBus
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Prepare
(
float InSampleRateHz, |
Configure this patch | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void SetSampleRate
(
float InSampleRateHz |
HarmonixDsp/FusionSampler/FusionSampler.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyPatchSettings() |
Apply all settings from the patch. call whenever the patch is set | HarmonixDsp/FusionSampler/FusionSampler.h | |
float GetFineTuneCents() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
FString GetPatchPath() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
FSharedFusionVoicePoolPtr GetVoicePool() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void SetController
(
Harmonix::Midi::Constants::EControllerID InController, |
NOTE: This next function's InValue is NOT some standard midi value. | HarmonixDsp/FusionSampler/FusionSampler.h | |
void SetFineTuneCents
(
float cents |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void SetPatch
(
FFusionPatchData* PatchData |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void SetVoicePool
(
FSharedFusionVoicePoolPtr InPool, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
void VoicePoolWillDestruct
(
const FFusionVoicePool* InPool |
HarmonixDsp/FusionSampler/FusionSampler.h |
Overridden from FVirtualInstrument
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void ResetInstrumentStateImpl() |
These are overrides from VirtualInstrument. | HarmonixDsp/FusionSampler/FusionSampler.h | |
virtual void ResetMidiStateImpl() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void Set14BitControllerImpl
(
Harmonix::Midi::Constants::EControllerID InController, |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void Set7BitControllerImpl
(
Harmonix::Midi::Constants::EControllerID InController, |
HarmonixDsp/FusionSampler/FusionSampler.h |
Overridden from FMusicalAudioBus
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CanProcessFromWorkerThread() |
HarmonixDsp/FusionSampler/FusionSampler.h | ||
virtual void Process
(
uint32 InSliceIndex, |
HarmonixDsp/FusionSampler/FusionSampler.h |