Krotos Modules 3
Loading...
Searching...
No Matches
krotos::KwidgetSynth Class Reference

A subclass of juce::Synthesiser for creating polyphonic output from a modular arrangement of Kwidgets. More...

#include <KwidgetSynthesiser.h>

Inheritance diagram for krotos::KwidgetSynth:

Classes

struct  midiMessage
 

Public Member Functions

 KwidgetSynth (KwidgetProcessorGraph &mainGraph, KwidgetProcessorGraph &modulatorGraph, int voicesOffset=0, int forceNumVoices=0, int numOutputChannels=10)
 
 ~KwidgetSynth ()=default
 
void processBlock (AudioBuffer< float > &buffer, MidiBuffer &midi)
 
int getNumActiveVoices ()
 
void setSamePitchNoteStealingEnable (bool newState)
 
SynthesiserVoice * findVoiceToSteal (SynthesiserSound *soundToPlay, int midiChannel, int midiNoteNumber) const override
 
void noteOff (int midiChannel, int midiNoteNumber, float velocity, bool allowTailOff) override
 

Private Member Functions

void timerCallback () override
 
void noteOnThenDelayedNoteOff (int midiChannel, int midiNoteNumber, float velocity, bool allowTailOff)
 Sends a note on message, then after a delay sends a corresponding note-off message.
 

Private Attributes

const int NOTE_UP_NOTE_LENGTH_MS {100}
 
std::vector< midiMessagem_messageBuffer
 
bool m_samePitchNoteStealingEnabled {true}
 

Detailed Description

A subclass of juce::Synthesiser for creating polyphonic output from a modular arrangement of Kwidgets.

Constructor & Destructor Documentation

◆ KwidgetSynth()

krotos::KwidgetSynth::KwidgetSynth ( KwidgetProcessorGraph & mainGraph,
KwidgetProcessorGraph & modulatorGraph,
int voicesOffset = 0,
int forceNumVoices = 0,
int numOutputChannels = 10 )

◆ ~KwidgetSynth()

krotos::KwidgetSynth::~KwidgetSynth ( )
default

Member Function Documentation

◆ findVoiceToSteal()

SynthesiserVoice * krotos::KwidgetSynth::findVoiceToSteal ( SynthesiserSound * soundToPlay,
int midiChannel,
int midiNoteNumber ) const
override

◆ getNumActiveVoices()

int krotos::KwidgetSynth::getNumActiveVoices ( )

Return the number of active voices

◆ noteOff()

void krotos::KwidgetSynth::noteOff ( int midiChannel,
int midiNoteNumber,
float velocity,
bool allowTailOff )
override

◆ noteOnThenDelayedNoteOff()

void krotos::KwidgetSynth::noteOnThenDelayedNoteOff ( int midiChannel,
int midiNoteNumber,
float velocity,
bool allowTailOff )
private

Sends a note on message, then after a delay sends a corresponding note-off message.

Parameters
midiChannel
midiNoteNumber
velocity
allowTailOff

◆ processBlock()

void krotos::KwidgetSynth::processBlock ( AudioBuffer< float > & buffer,
MidiBuffer & midi )

◆ setSamePitchNoteStealingEnable()

void krotos::KwidgetSynth::setSamePitchNoteStealingEnable ( bool newState)

Set the mode of same pitch voice stealing

◆ timerCallback()

void krotos::KwidgetSynth::timerCallback ( )
overrideprivate

Called by the timer when it is time to send a note off message

Member Data Documentation

◆ m_messageBuffer

std::vector<midiMessage> krotos::KwidgetSynth::m_messageBuffer
private

A vector to hold a record of pending MIDI note-off events. Used as a FIFO

◆ m_samePitchNoteStealingEnabled

bool krotos::KwidgetSynth::m_samePitchNoteStealingEnabled {true}
private

◆ NOTE_UP_NOTE_LENGTH_MS

const int krotos::KwidgetSynth::NOTE_UP_NOTE_LENGTH_MS {100}
private

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