th.bfgWaveshaper~
>> Support a charity (A few are listed here) || Support me on patreon or ko-fi
>> The software is provided "as is", without warranty of any kind
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.
Watch a demo of the synth on vimeo:
If you have any questions, comments, bug-reports or suggestions. Please e-mail me via info@timohoogland.com
Updates in latest version 2.1:
- Bug fixed that did not show the mesh of the waveshape plane in the pwindow.
- 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.
License:
This software is licensed under the GNU Lesser General Public License. See the license for more details: https://choosealicense.com/licenses/gpl-3.0/
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
includes