An AudioIODeviceCallback object which streams audio through an AudioProcessor.
More...
#include <juce_AudioProcessorPlayer.h>
|
| | AudioProcessorPlayer (bool doDoublePrecisionProcessing=false) |
| |
| | ~AudioProcessorPlayer () override |
| | Destructor.
|
| |
| void | audioDeviceAboutToStart (AudioIODevice *) override |
| |
| virtual void | audioDeviceError (const String &errorMessage) |
| | This can be overridden to be told if the device generates an error while operating.
|
| |
| void | audioDeviceIOCallbackWithContext (const float *const *, int, float *const *, int, int, const AudioIODeviceCallbackContext &) override |
| |
| void | audioDeviceStopped () override |
| |
| AudioProcessor * | getCurrentProcessor () const noexcept |
| | Returns the current audio processor that is being played.
|
| |
| bool | getDoublePrecisionProcessing () |
| | Returns true if this player processes internally processes the samples with double floating point precision.
|
| |
| MidiMessageCollector & | getMidiMessageCollector () noexcept |
| | Returns a midi message collector that you can pass midi messages to if you want them to be injected into the midi stream that is being sent to the processor.
|
| |
| void | handleIncomingMidiMessage (MidiInput *, const MidiMessage &) override |
| |
| virtual void | handlePartialSysexMessage (MidiInput *source, const uint8 *messageData, int numBytesSoFar, double timestamp) |
| | Notification sent each time a packet of a multi-packet sysex message arrives.
|
| |
| void | setDoublePrecisionProcessing (bool doublePrecision) |
| | Switch between double and single floating point precisions processing.
|
| |
| void | setMidiOutput (MidiOutput *midiOutputToUse) |
| | Sets the MIDI output that should be used, if required.
|
| |
| void | setProcessor (AudioProcessor *processorToPlay) |
| | Sets the processor that should be played.
|
| |
An AudioIODeviceCallback object which streams audio through an AudioProcessor.
To use one of these, just make it the callback used by your AudioIODevice, and give it a processor to use by calling setProcessor().
It's also a MidiInputCallback, so you can connect it to both an audio and midi input to send both streams through the processor. To set a MidiOutput for the processor, use the setMidiOutput() method.
- See also
- AudioProcessor, AudioProcessorGraph
@tags{Audio}
◆ AudioProcessorPlayer()
| juce::AudioProcessorPlayer::AudioProcessorPlayer |
( |
bool |
doDoublePrecisionProcessing = false | ) |
|
◆ ~AudioProcessorPlayer()
| juce::AudioProcessorPlayer::~AudioProcessorPlayer |
( |
| ) |
|
|
override |
◆ audioDeviceAboutToStart()
| void juce::AudioProcessorPlayer::audioDeviceAboutToStart |
( |
AudioIODevice * |
| ) |
|
|
overridevirtual |
◆ audioDeviceError()
| virtual void juce::AudioIODeviceCallback::audioDeviceError |
( |
const String & |
errorMessage | ) |
|
|
virtualinherited |
This can be overridden to be told if the device generates an error while operating.
Be aware that this could be called by any thread! And not all devices perform this callback.
Reimplemented in juce::SoundPlayer.
◆ audioDeviceIOCallbackWithContext()
◆ audioDeviceStopped()
| void juce::AudioProcessorPlayer::audioDeviceStopped |
( |
| ) |
|
|
overridevirtual |
◆ findMostSuitableLayout()
◆ getCurrentProcessor()
| AudioProcessor * juce::AudioProcessorPlayer::getCurrentProcessor |
( |
| ) |
const |
|
inlinenoexcept |
Returns the current audio processor that is being played.
◆ getDoublePrecisionProcessing()
| bool juce::AudioProcessorPlayer::getDoublePrecisionProcessing |
( |
| ) |
|
|
inline |
Returns true if this player processes internally processes the samples with double floating point precision.
◆ getMidiMessageCollector()
◆ handleIncomingMidiMessage()
◆ handlePartialSysexMessage()
| virtual void juce::MidiInputCallback::handlePartialSysexMessage |
( |
MidiInput * |
source, |
|
|
const uint8 * |
messageData, |
|
|
int |
numBytesSoFar, |
|
|
double |
timestamp |
|
) |
| |
|
virtualinherited |
Notification sent each time a packet of a multi-packet sysex message arrives.
If a long sysex message is broken up into multiple packets, this callback is made for each packet that arrives until the message is finished, at which point the normal handleIncomingMidiMessage() callback will be made with the entire message.
The message passed in will contain the start of a sysex, but won't be finished with the terminating 0xf7 byte.
◆ resizeChannels()
| void juce::AudioProcessorPlayer::resizeChannels |
( |
| ) |
|
|
private |
◆ setDoublePrecisionProcessing()
| void juce::AudioProcessorPlayer::setDoublePrecisionProcessing |
( |
bool |
doublePrecision | ) |
|
Switch between double and single floating point precisions processing.
The audio IO callbacks will still operate in single floating point precision, however, all internal processing including the AudioProcessor will be processed in double floating point precision if the AudioProcessor supports it (see AudioProcessor::supportsDoublePrecisionProcessing()). Otherwise, the processing will remain single precision irrespective of the parameter doublePrecision.
◆ setMidiOutput()
| void juce::AudioProcessorPlayer::setMidiOutput |
( |
MidiOutput * |
midiOutputToUse | ) |
|
◆ setProcessor()
| void juce::AudioProcessorPlayer::setProcessor |
( |
AudioProcessor * |
processorToPlay | ) |
|
◆ actualProcessorChannels
| NumChannels juce::AudioProcessorPlayer::actualProcessorChannels |
|
private |
◆ blockSize
| int juce::AudioProcessorPlayer::blockSize = 0 |
|
private |
◆ channels
| std::vector<float*> juce::AudioProcessorPlayer::channels |
|
private |
◆ conversionBuffer
| AudioBuffer<double> juce::AudioProcessorPlayer::conversionBuffer |
|
private |
◆ currentDevice
| AudioIODevice* juce::AudioProcessorPlayer::currentDevice = nullptr |
|
private |
◆ currentWorkgroup
◆ defaultProcessorChannels
| NumChannels juce::AudioProcessorPlayer::defaultProcessorChannels |
|
private |
◆ deviceChannels
◆ incomingMidi
| MidiBuffer juce::AudioProcessorPlayer::incomingMidi |
|
private |
◆ isDoublePrecision
| bool juce::AudioProcessorPlayer::isDoublePrecision = false |
|
private |
◆ isPrepared
| bool juce::AudioProcessorPlayer::isPrepared = false |
|
private |
◆ lock
◆ messageCollector
◆ midiOutput
| MidiOutput* juce::AudioProcessorPlayer::midiOutput = nullptr |
|
private |
◆ processor
◆ sampleCount
| uint64_t juce::AudioProcessorPlayer::sampleCount = 0 |
|
private |
◆ sampleRate
| double juce::AudioProcessorPlayer::sampleRate = 0 |
|
private |
◆ tempBuffer
The documentation for this class was generated from the following file: