artfwo / andes Goto Github PK
View Code? Open in Web Editor NEWExperimental sound synthesiser based on Perlin noise
Home Page: https://artfwo.github.io/andes/
License: GNU General Public License v3.0
Experimental sound synthesiser based on Perlin noise
Home Page: https://artfwo.github.io/andes/
License: GNU General Public License v3.0
Implement monophonic mode. Look into Synthesiser::findFreeVoice() for possibilities of implementing high/low/last monophonic modes.
Implement legato (glide duration) parameter.
The sound of noise is susceptible to aliasing at higher frequencies.
Unfortunately I haven't figured out how to "immediately" reproduce this bug, but I believe the Noise::gen
method has a math bug that is causing negative array indexing in Noise::gen1
.
// line of code causing array index out of bounds
// z1 is a very large negative number (e.g. -187420688)
g1 = gradients[z1];
If you turn warping
, octaves
and persistence
all the way up, and alternate between modulating torsion
with the mouse and spam clicking on the randomize button, you'll be able to (eventually) reproduce it.
What I think could be happening is that in the loop that iterates through the octaves, there is some sort of compound "rounding" (e.g. casting float to int) issue that gets worse each time through the loop because the negative array indexing only happens after a few successful iterations through the octave loop.
Let me know if you have trouble reproducing this. I want to figure this out but... it's almost 4am ๐ด
as you use JUCE, can you provide a clap plugin?
Saving seed is now happening with an extra ValueTree inside AudioProcessorValueTreeState. GUI editor should update itself when a new seed is loaded.
please add pitchbend support :-)
Use rectangle-based layout which is customary for JUCE projects. See https://www.juce.com/doc/tutorial_rectangle_advanced for an example.
I noticed from the paper that the octave parameter can go beyond 1
however when loaded as a plugin with BitWig Studio (Andes1-v0.2-linux64
), the knob is limited to max 1.0
.
Not sure if that's the case with other DAW hosts on Linux!
AppVeyor works, Travis config needs updating.
See the .tun file specification.
Make sure this works with the (currently disabled) seed editor.
% cd Builds/LinuxMakefile
% CONFIG=Release64 make -j2
Makefile:140: warning: overriding recipe for target '/'
Makefile:133: warning: ignoring old recipe for target '/'
Makefile:147: warning: overriding recipe for target '/'
Makefile:140: warning: ignoring old recipe for target '/'
mkdir: missing operand
Try 'mkdir --help' for more information.
Makefile:164: recipe for target '/AndesSlider_6859167.o' failed
make: [/AndesSlider_6859167.o] Error 1 (ignored)
mkdir: missing operand
Try 'mkdir --help' for more information.
Compiling AndesSlider.cpp
Makefile:169: recipe for target '/AndesLookAndFeel_ce944082.o' failed
make: [/AndesLookAndFeel_ce944082.o] Error 1 (ignored)
Compiling AndesLookAndFeel.cpp
In file included from ../../Source/AndesSlider.cpp:19:0:
../../Source/../JuceLibraryCode/JuceHeader.h:17:49: fatal error: juce_audio_basics/juce_audio_basics.h: No such file or directory
#include <juce_audio_basics/juce_audio_basics.h>
^
compilation terminated.
Makefile:164: recipe for target '/AndesSlider_6859167.o' failed
make: *** [/AndesSlider_6859167.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from ../../Source/AndesLookAndFeel.h:21:0,
from ../../Source/AndesLookAndFeel.cpp:19:
../../Source/../JuceLibraryCode/JuceHeader.h:17:49: fatal error: juce_audio_basics/juce_audio_basics.h: No such file or directory
#include <juce_audio_basics/juce_audio_basics.h>
^
compilation terminated.
Makefile:169: recipe for target '/AndesLookAndFeel_ce944082.o' failed
make: *** [/AndesLookAndFeel_ce944082.o] Error 1
Yes I did git submodule update --init --recursive
.
Basic extensible mechanism for modulating synth params (matrix).
Using alternating signs for even & odd gradients in the table could solve 2 problems:
Explore sonic character of simplex noise and see if it fits into the synth.
Perlin noise looks interestingly different when the coordinates are randomly modified with a noise function. This approach, called warping or turbulence could be implemented in Andes for extra sonic possibilities.
Long-term, this can help make Andes a full-fledged multifractal sound synth. And possibly help get rid of pseudo-3D coordinate parameters currently used to alter the timbre.
Warping formula for a basic implementation could look like noise(offset + noise(offset + a))
, where a
is an arbitrary parameter.
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
See if Andes can be built as an LV2 plugin.
Generic ADSR envelope generator to use with volume and synth parameters modulation.
Output level for Perlin noise / fBm is wildly different depending on synth settings. Ideally it should be constant so we always get the same volume for any X or Y.
Possible solutions to explore:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.