Skip to content

Instantly share code, notes, and snippets.

class CFxRbjFilter
{
public:
CFxRbjFilter()
{
// reset filter coeffs
b0a0=b1a0=b2a0=a1a0=a2a0=0.0;
// reset in/out history
class MyBase
{
public:
MyBase(int _x) : x(_x) {}
virtual ~MyBase() {}
virtual void say() = 0;
int x = 0;
private:
};
class XQuantModule : public rack::Module
{
public:
enum InputPorts
{
FIRSTINPUT = 0,
LASTINPUT = 7
};
enum OutputPorts
{
class MixerCallBack : public AudioIODeviceCallback
{
public:
std::vector<float> channelGains;
std::vector<float> channelPans;
MixerCallBack()
{
channelGains.resize(16);
channelPans.resize(16);
}
void test_ap_player()
{
int sr = 44100;
int bufsize = 512;
ScopedJuceInitialiser_GUI mm;
AudioProcessorGraph graph;
using IOProc = AudioProcessorGraph::AudioGraphIOProcessor;
auto innode = graph.addNode(std::make_unique<IOProc>(IOProc::audioInputNode));
auto outnode = graph.addNode(std::make_unique<IOProc>(IOProc::audioOutputNode));
innode->getProcessor()->setPlayConfigDetails(1, 2, sr, bufsize);
class MyCallback : public AudioIODeviceCallback
{
public:
void audioDeviceIOCallback(const float** inputChannelData, int numInputChannels,
float** outputChannelData, int numOutputChannels, int numSamples) override
{
for (int i = 0; i < numSamples; ++i)
{
float sample = jmap(rng.nextFloat(), 0.0f, 1.0f, -noiseGain, noiseGain);
for (int j = 0; j < numOutputChannels; ++j)
class APGWrapper
{
public:
AudioProcessorGraph graph;
void prepare (const dsp::ProcessSpec& spec)
{
helperbuf.setSize(spec.numChannels, spec.maximumBlockSize);
graph.prepareToPlay(spec.sampleRate, spec.maximumBlockSize);
}
inline void getSamples(int64 sourceindex, float* destbuf, int nframes, int numdestchans)
{
auto ptrs = m_buf.getArrayOfReadPointers();
for (int i = 0; i < nframes; ++i)
{
if (sourceindex + i < m_buf.getNumSamples())
{
for (int j = 0; j < numdestchans; ++j)
destbuf[i*numdestchans + j] = ptrs[j][i + sourceindex];
}
int main(int argc, char* argv[])
{
ScopedJuceInitialiser_GUI gui_init;
AudioDeviceManager aman;
String err = aman.initialiseWithDefaultDevices(0, 2);
if (err.isEmpty())
{
std::cout << "device opened : " << aman.getCurrentAudioDevice()->getName() << "\n";
ToneGeneratorAudioSource tonesource; // Juce provided AudioSource based sine generator
tonesource.setFrequency(440.0);
#include "../JuceLibraryCode/JuceHeader.h"
class MyCallback : public AudioIODeviceCallback
{
public:
MyCallback() {}
void audioDeviceIOCallback(const float ** inputChannelData,
int numInputChannels, float ** outputChannelData, int numOutputChannels, int numSamples) override
{
for (int i = 0; i < numSamples; ++i)