Coder Social home page Coder Social logo

ofxpdsptools's Introduction

WIP ofxPDSPTools

Work in progress

High level modules and tools to use with ofxPDSP. Like Synth, Synth parameters, patch saving/loading, UI helpers ...

Not sure of everything yet, code can change at any moment.

Project started to learn DSP, get back into shape with C++ and explore OF.

Dependencies & Thank's

Thanks to OpenFrameworks, npisanti, ocornut, jvcleave for there super works.

This addon relies on other libraries :

Install

Clone the project in OF\addons

Compile

I can only test on Windows with Visual Studio 2017/2019. But should compile on other platform as I only use OF addons.

If the project is cloned in OF\addons everything should be ok.

Modules

Patch

PatchParams

This class allow to build a hierachy of ParamDesc which contain an pdsp::Parameter which encapulsate an ofParameter. It also maintain a ofParameterGroup to ease (de)serialization using ofxXmlSettings.

For each ParamDesc you can provide layout options that will be used by the UI part to draw controls.

PatchFilesStore

Use the ofParameterGroup of PatchParams to help store/load synth patchs from a given folder.

Synth

Still bit messy.

UI

All UI is based on a fork of ofxImGui & ImGui.

PatchParam being an abstraction, it could be used to draw UI with ofxGui.

UI helpers to :

  • draw PatchParams controls to setup synth
  • provide a UI to select MIDI output
  • provide a UI to save/load patches

Examples

example_midi_substractive_synth

This was inspired by the book Creating Sounds from Scratch from Andrea Pejrolo & Scott B. Metcalfe, Arturia Minibrute 2 controls layout and other .

This example feature a synth with a two OSCs voice.

Both allow to select:

  • wave forms weight
  • detune (coarse and fine)
  • ADSR envelop shape
  • filter (filter type, cutoff and reso)

One provide ADRS to control the filter.

The other provide an LFO to control many parameters of the voice (level, pitch, ...).

And UI components to setup synth, select MIDI output and load/save patches.

WARNING: Depending on computers (probably audio card or drivers) synth can produce different audio level and cracks. So, lower volume of your system before trying it, and if you get cracks lower OSC and/or synth level. I have to investigate and probably insert a compressor between synth out and audio output.

screenshot

To Do

Not clear yet, but the idea is to create a track object to which I could bind a synth and FXs. All build using ofxPDS sequencer system.

ofxpdsptools's People

Contributors

cd-alterface avatar macfurax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.