![](https://cdn.myportfolio.com/bae2557d-5d6e-4577-8b37-0548fc5589a6/6256190e-8353-43dc-9e66-4cda2df93809_rw_1200.png?h=4d52cc0c955b9656cf19bd4932794fb8)
Osciloscope in Pure data
![](https://cdn.myportfolio.com/bae2557d-5d6e-4577-8b37-0548fc5589a6/ef7b13be-6175-4fe2-83c2-f1171bf69040_rw_600.png?h=1bc641a832ed677cd7dc2001b59546a6)
Gain plugin in C++
![](https://cdn.myportfolio.com/bae2557d-5d6e-4577-8b37-0548fc5589a6/1c062545-cc8c-4db2-a05a-aba21daafe28_rw_600.png?h=0eaabfd38eb670b19b0edb124fd8ba9a)
Sine wave oscillator with DSP effects
Audio Programming in c++ with frameworks like :JUCE, IPlug
Pure Data for DSP Proseccing on a visual programming environment
![](https://cdn.myportfolio.com/bae2557d-5d6e-4577-8b37-0548fc5589a6/b014b5f7-25b7-44d9-b2c2-f665f96425a0_rw_1200.png?h=53fc4b0e3123c59f4c047e3f83ccc267)
Design for a Ghost sound in a Unity game
Code Snippet
Gain control plugin in C++
MyPlugin::MyPlugin(const InstanceInfo& info)
: Plugin(info, MakeConfig(kNumParams, kNumPresets))
{
GetParam(kGain)->InitDouble("GAIN", 0., 0., 100.0, 0.1, "%");
#if IPLUG_EDITOR
mMakeGraphicsFunc = [&]() {
return MakeGraphics(*this, PLUG_WIDTH, PLUG_HEIGHT, PLUG_FPS, GetScaleForScreen(PLUG_WIDTH, PLUG_HEIGHT));
};
mLayoutFunc = [&](IGraphics* pGraphics) {
pGraphics->AttachCornerResizer(EUIResizerMode::Scale, false);
pGraphics->AttachPanelBackground(COLOR_LIGHT_GRAY);
pGraphics->LoadFont("Roboto-Regular", ROBOTO_FN);
const IRECT b = pGraphics->GetBounds();
pGraphics->AttachControl(new IVKnobControl(b.GetCentredInside(170).GetVShifted(0), kGain));
};
#endif
}
#if IPLUG_DSP
void MyPlugin::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
{
const double gain = GetParam(kGain)->Value() / 100.;
const int nChans = NOutChansConnected();
for (int s = 0; s < nFrames; s++) {
for (int c = 0; c < nChans; c++) {
outputs[c][s] = inputs[c][s] * gain;
}
}
}
#endif