Giter Site home page Giter Site logo

figbug / wavetable Goto Github PK

View Code? Open in Web Editor NEW
138.0 9.0 10.0 260.41 MB

Wavetable synth

Home Page: https://socalabs.com/synths/wavetable/

License: BSD 3-Clause "New" or "Revised" License

Shell 1.52% C++ 96.36% CMake 2.12%
audio-unit linux macos vst3-plugin wavetable-synthesizer windows

wavetable's Introduction

Wavetable

Wavetable VST3 / AU / LV2 plugin

Build

A 2 oscillator wavetable synth with flexible modulation options.

Screenshot 1

Download

Product page

My synth is BSD licensed, however it depends on JUCE. To use in a commercial application, you must have a JUCE license. Wavetables have their own license.

Need additional features or help integrating, contact me for consulting services: https://rabiensoftware.com/

wavetable's People

Contributors

figbug avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wavetable's Issues

Patch rename glitch

I caught a strange bug. I saved my patch with all the tags, and even went to the presets folder, all permissions for this folder are provided. I clicked "edit preset", changed the name, clicked "ok" and my patch was saved under a new name. I change the name again, and after clicking "ok", my patch was deleted. It is no longer in the folder and in the browser. I've done this a few more times, it doesn't seem to depend on the characters in the patch name.

[Feature request] StudioRack integration

It's an open-source plugin manager called StudioRack:
https://github.com/studiorack

The aim of the project is to provide a free open-source way to manage plugin dependencies and their versions. It would involve the following steps:

Publish a Github release containing the plugin source along with metadata plugins.json
Tag your Github repository with studiorack-plugin so it can be discovered
Wait for the studiorack-registry to index your plugin (every 24 hours)
Check the registry feed for your plugin to appear

Get ready for Alpha

  • Fix Linux build
  • Add drag / drop modulation
  • Fix patch browser
  • Add support for 3rd party wavetables
  • Add bend/formant etc to wavetable
  • Add osc pre/post filter
  • Finish layout
  • Finish look and feel
  • Add tabs to lfo/env
  • Fix crash loading wavetable while playing
  • Wavetable index should only update at phase 0

CLAP/lv2 versions

Will there ever be a CLAP or lv2 version of this and other plugins?

Bug with delay module in 1.16

Inverting Delay and distortion order and then putting Delay FB at 0db will mute the sound if delay is enabled until restart of the reaper session.
Vst3
Reaper 6.82
win 10

LV2 Ubuntu 22.04: crash on wavetable change

I was able to build an LV2 at least. I had to set CMake version to 3.22 (the version in Ubuntu 22.04). Also I had to clone the modules by myself because of permission denied on git clone --recurse-submodule . Next problem was the missing vst2 dependencies. But LV2 works.

It crashes on changing wavetable with:

Thread 20 "JUCE ALSA" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffab7fe640 (LWP 15441)]
0x00007fff8979ede4 in std::vector<float, std::allocator<float> >::operator[](unsigned long) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
(gdb) bt
#0  0x00007fff8979ede4 in std::vector<float, std::allocator<float> >::operator[](unsigned long) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#1  0x00007fff89ca7924 in gin::BandLimitedLookupTable::process(float, float) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#2  0x00007fff89c9818a in gin::WTOscillator::processAdding(float, gin::WTOscillator::Params const&, juce::AudioBuffer<float>&) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#3  0x00007fff897277bc in gin::VoicedStereoOscillator<gin::WTOscillator, gin::WTVoicedStereoOscillatorParams>::processAdding(float, gin::WTVoicedStereoOscillatorParams const&, juce::AudioBuffer<float>&) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#4  0x00007fff89721b87 in WavetableVoice::renderNextBlock(juce::AudioBuffer<float>&, int, int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#5  0x00007fff89be897c in juce::MPESynthesiser::renderNextSubBlock(juce::AudioBuffer<float>&, int, int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#6  0x00007fff89c25285 in void juce::MPESynthesiserBase::renderNextBlock<float>(juce::AudioBuffer<float>&, juce::MidiBuffer const&, int, int) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#7  0x00007fff89714003 in void gin::Synthesiser::renderNextBlock<float>(juce::AudioBuffer<float>&, juce::MidiBuffer const&, int, int) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#8  0x00007fff89702d10 in WavetableAudioProcessor::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#9  0x00007fff896d6b73 in juce::lv2_client::LV2PluginInstance::run(unsigned int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#10 0x00007fff896ceb40 in lv2_descriptor::{lambda(void*, unsigned int)#4}::operator()(void*, unsigned int) const ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#11 0x00007fff896ceb6a in lv2_descriptor::{lambda(void*, unsigned int)#4}::_FUN(void*, unsigned int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#12 0x0000555555d4b359 in lilv_instance_run (sample_count=<optimized out>, instance=<optimized out>)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/LV2_SDK/lilv/lilv/lilv.h:1948
#13 juce::lv2_host::Instance::run (sampleCount=<optimized out>, this=<optimized out>)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp:835
#14 juce::lv2_host::LV2AudioPluginInstance::processBlockImpl (midi=..., audio=..., this=0x55555a56a3d0)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp:4649
#15 juce::lv2_host::LV2AudioPluginInstance::processBlock (this=0x55555a56a3d0, audio=..., midi=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp:4431
#16 0x0000555555bd769f in tracktion::engine::ExternalPlugin::processPluginBlock (this=0x555557434fb0, fc=..., processedBypass=<optimized out>)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/plugins/external/tracktion_ExternalPlugin.cpp:1421
#17 0x0000555555be952f in tracktion::engine::ExternalPlugin::applyToBuffer (this=0x555557434fb0, fc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/plugins/external/tracktion_ExternalPlugin.cpp:1329
#18 0x0000555555bd3013 in tracktion::engine::Plugin::applyToBufferWithAutomation (this=this@entry=0x555557434fb0, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/plugins/tracktion_Plugin.cpp:699
#19 0x0000555555aee996 in tracktion::engine::PluginNode::process (this=0x555556bce1e0, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_PluginNode.cpp:207
#20 0x0000555555b80a9c in tracktion::graph::Node::process (this=0x555556bce1e0, numSamples=512, referenceSampleRange=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_Node.h:533
#21 0x000055555600a35b in tracktion::graph::LockFreeMultiThreadedNodePlayer::processNode (node=..., preparedNode=..., this=0x555556acd1e0)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_LockFreeMultiThreadedNodePlayer.cpp:435
#22 tracktion::graph::LockFreeMultiThreadedNodePlayer::processNextFreeNode (this=this@entry=0x555556acd1e0, preparedNode=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_LockFreeMultiThreadedNodePlayer.cpp:416
#23 0x000055555600a69b in tracktion::graph::LockFreeMultiThreadedNodePlayer::process (this=this@entry=0x555556acd1e0, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_LockFreeMultiThreadedNodePlayer.cpp:125
#24 0x0000555555aea3a7 in tracktion::engine::TracktionNodePlayer::processSubRange (proportion=..., pc=..., this=0x555556acd1b8)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:221
#25 tracktion::engine::TracktionNodePlayer::processTempoChanges (pc=..., this=0x555556acd1b8)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:191
#26 tracktion::engine::TracktionNodePlayer::processReferenceRange (referenceSampleRange=..., pc=..., this=0x555556acd1b8)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:150
#27 tracktion::engine::TracktionNodePlayer::process (this=0x555556acd1b8, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:100
#28 0x0000555555b942a0 in tracktion::engine::EditPlaybackContext::NodePlaybackContext::process (this=0x555556accf90, allChannels=allChannels@entry=0x555556a19410, numChannels=numChannels@entry=32, 
    destNumSamples=destNumSamples@entry=512) at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/tracktion_EditPlaybackContext.cpp:347
#29 0x0000555555b38280 in tracktion::engine::EditPlaybackContext::fillNextNodeBlock (this=0x555556adcd90, allChannels=0x555556a19410, numChannels=32, numSamples=512) at /usr/include/c++/11/bits/unique_ptr.h:173
#30 0x0000555555b3a759 in tracktion::engine::DeviceManager::audioDeviceIOCallbackInternal (this=0x5555569d1920, inputChannelData=<optimized out>, numInputChannels=<optimized out>, 
    outputChannelData=0x555556a19410, totalNumOutputChannels=<optimized out>, numSamples=512)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/tracktion_DeviceManager.cpp:1165

I hope this helps. On the standalone version it doesn't crash but needs some seconds to load the wavetable.

No audio output for plugins under Linux

The LV2 and VST3 plugins (1.02) on Linux (Fedora 38 using Reaper 6.82) the plugin shows 2 input channels, no audio output channels. Everything appears to be running, but no audio output is generated. The standalone binary works.

Same version of the VST3 plugin on Windows using Reaper 6.82 shows 2 channels of output, and works.

mpe Pitch Bend is broken in bitwig

Tested mpe playing in bitwig 5.0.4 and the pitch bend range seems to be way off, like a crazy 12 octave range.
Works fine in repear 6.82

Add PIC to fix linking on Linux

Hi,

plain compilation on Linux (openSUSE TW) gives an error:

[ 16%] Built target Wavetable_Assets
[ 50%] Built target Wavetable
[ 61%] Built target Wavetable_Standalone
[ 62%] Linking CXX shared module Wavetable_artefacts/Release/VST/libWavetable.so
/usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: libWavetable_Assets.a(unity_0_cxx.cxx.o): relocation R_X86_64_32S against hidden symbol `_ZN10BinaryData17namedResourceListE' can not be used when making a shared object
/usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/Wavetable_VST.dir/build.make:213: Wavetable_artefacts/Release/VST/libWavetable.so] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:272: CMakeFiles/Wavetable_VST.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2

Looks like a binary assets should in Position Independent form:
set (CMAKE_POSITION_INDEPENDENT_CODE ON)

then all goes fine.

SegFault on reverb.reset() in Ardour;

Hi,

Ardour scan process crashes, blaiming WavetableAudioProcessor::reset()

more deep debug led to gin's platereverb reset function:

Thread 1 "ardour-vst3-sca" received signal SIGSEGV, Segmentation fault.
0x00007ffff35b7bb1 in gin::PlateReverb<float, int>::DelayLine::reset (this=0x0) at /home/kv/src/audio/Wavetable/modules/gin/modules/gin_dsp/dsp/gin_platereverb.h:361
361                 std::memset (&buffer[0], 0, ceilPowerOfTwo (size) * sizeof (F));

All plugins download not complete

Hi - hope this is the right place to raise this.

I have downloaded the Windows all plugins .zip from https://socalabs.com/ but it only contains 17 plugins where as there are 28 listed on the web site. The new Wavetable is missing for instance.

I'm just thinking whilst there is a good buzz around on the net about Wavetable it is worth double checking the .zips are complete.

Thanks for all the excellent work,
Nick

Documentation?

Is there a way to scale or adjust the velocity sensitivity? I see that it exists in the modulations panel, but I don't know how to use it

Libc issue on Debian Bullseye

Hello,

Thanks for this cool plugin !

I'm trying to use the lv2 version on Debian Bullseye (inside Carla) but there's a libc mismatch (2.31-13+deb11u6)

glibc

Do you think of anything that could avoid this ?

Cheers
Erwan

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.