updates in latest version 2.0:
- Added polyphonic option with 8 voices. You can switch between polyphonic or monophonic by clicking the toggle, or use @mode 1 on creation of the object.
- Added hints to the user interface that appear when hovering over a UI object.
- Added a stereo spread when poly mode is used. This will spread out the over the stereo image.
- Added LFO modulation option for the line selection of the bfg wave plane. Set the modulation speed and the modulation depth.
- With the dump message you can output a list of all the parameter names. You can use that list to fill an umenu for example outside the bpatcher. With the param message followed by the name of the parameter you can set any parameter of the synth and also use that for modulating those parameters.
- Updated help-file shows all the new possibilities.
- The pattrstorage now requires the @greedy 1 attribute because the object uses its own internal pattrstorage to collect all the scripting names of the parameters.
About the project
This is a mono/polyphonic waveshape synthesizer I programmed in Max7. It can be used as an abstraction or bpatcher. The shaping is done by using the jit.bfg object. You can select a slice of the 3D plane that displays the basis function with the slider. The position of this line can be modulated with an LFO. The slice is then used for waveshape distorting an fm synth made with sinewave oscillators. The stored sample gets written to a new buffer with a vectral~ for interpolation, to allow a smoother transition when switching basis-functions and moving the sliders through the plane. I use the poly object to give it a 4x upsampling to get rid of a lot of aliasing. It has 2 ADSR’s, one for the FM modulator and off course one for the complete instrument sound. The monophonic mode will remember your previous played notes and velocities when still holding on and pressing an extra key. On release of the new key it will slide back to the previous (still held) note.
Also featured on the cycling74 project page