wrote a proper README
This commit is contained in:
parent
1bdce9463e
commit
799443d266
2 changed files with 39 additions and 36 deletions
|
@ -4,7 +4,9 @@ version = "0.1.0"
|
||||||
authors = ["Weird Constructor <weirdconstructor@m8geil.de>"]
|
authors = ["Weird Constructor <weirdconstructor@m8geil.de>"]
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
description = "An audio synthesis DSP graph library"
|
description = "Comprehensive DSP graph and synthesis library for developing a modular synthesizer in Rust, such as HexoSynth."
|
||||||
|
keywords = ["audio", "music", "real-time", "synthesis", "synthesizer", "dsp", "sound"]
|
||||||
|
categories = ["multimedia::audio", "multimedia", "algorithms", "mathematics"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
|
|
71
README.md
71
README.md
|
@ -1,42 +1,42 @@
|
||||||
# HexoSynth - A hexagonal modular synthesizer
|
# HexoDSP - Comprehensive DSP graph and synthesis library for developing a modular synthesizer in Rust, such as HexoSynth.
|
||||||
|
|
||||||
This project aims to create a modular synthesizer. Like those encountered
|
This project contains the complete DSP backend of the modular
|
||||||
in projects like VCVRack or Bitwigs Polygrid.
|
synthesizer [HexoSynth](https://github.com/WeirdConstructor/HexoSynth).
|
||||||
|
|
||||||
The core idea is having a hexagonal tile map for laying out module
|
It's aimed to provide a toolkit for everyone who wants to develop
|
||||||
instances and connect them at the edges to route audio signals and CV signals
|
a synthesizer in Rust. You can use it to quickly define a DSP graph
|
||||||
to inputs of other modules.
|
that you can change at runtime. It comes with a large collection
|
||||||
|
of already developed DSP modules/nodes, such as oscillators, filters,
|
||||||
|
amplifiers, envelopes and sequencers.
|
||||||
|
|
||||||
A goal is to provide a simple wireless environment to build
|
The DSP graph API also provides multiple kinds of feedback to track what the
|
||||||
sound effects, synthesizers or whole generative music patches from
|
signals in the DSP threads look like. From monitoring the inputs and outputs of
|
||||||
predefined modules.
|
single nodes to get the current output value of all nodes.
|
||||||
|
|
||||||
Hosting plugins (VST, LV2, ...) is out of the scope of this project.
|
Here a short list of features:
|
||||||
The goal is rather to have a good set of predefined modules.
|
|
||||||
|
* Runtime changeable DSP graph
|
||||||
|
* Full monitoring and feedback introspection into the running DSP graph
|
||||||
|
* Provides a wide variety of modules
|
||||||
|
* Extensible framework for quickly developing new nodes at compile time
|
||||||
|
* A comprehensive automated test suite
|
||||||
|
|
||||||
## State of Development
|
## State of Development
|
||||||
|
|
||||||
This project is still (2021-03-17) under heavy development and is considered
|
As of 2021-05-18: The architecture and it's functionality have been mostly
|
||||||
pre alpha stage. There is no noteworthy functionality yet implemented.
|
feature complete by now. The only part that is still lacking is the collection
|
||||||
Just a lot of prototype code and plumbing.
|
of modules/nodes, this is the area of current development. Adding lots of
|
||||||
|
nodes.
|
||||||
|
|
||||||
Make sure to follow [Weird Constructors Mastodon
|
Make sure to follow [Weird Constructors Mastodon
|
||||||
account](https://mastodon.online/@weirdconstructor) or the releases of this
|
account](https://mastodon.online/@weirdconstructor) or the releases of this
|
||||||
project to be notified once I release a beta or stable release.
|
project to be notified of updates.
|
||||||
|
|
||||||
### Road Map / TODO List
|
### Road Map / TODO List
|
||||||
|
|
||||||
I have a pretty detailed TODO list in my private notebook, but
|
I have a pretty detailed TODO list in my private notebook.
|
||||||
this is the rough road map:
|
|
||||||
|
|
||||||
- Make a UI that is more or less fluently usable and easily extendable
|
## Running the Jack Example:
|
||||||
with new modules.
|
|
||||||
- Take a bit of care that there is online help.
|
|
||||||
- Add lots of modules (Oscillators, Filters, Envelopes, LFOs, Quantizers, ...).
|
|
||||||
- Factor out the DSP code into it's own crate.
|
|
||||||
- Comment the code for easier maintenance.
|
|
||||||
|
|
||||||
## Running the Standalone Example:
|
|
||||||
|
|
||||||
You need nightly rust:
|
You need nightly rust:
|
||||||
|
|
||||||
|
@ -44,15 +44,15 @@ You need nightly rust:
|
||||||
|
|
||||||
To run the example:
|
To run the example:
|
||||||
|
|
||||||
cargo +nightly run --release --example standalone
|
cargo +nightly run --release --example jack_demo
|
||||||
|
|
||||||
You might need following dependencies (Ubuntu Linux):
|
You might need following dependencies (Ubuntu Linux):
|
||||||
|
|
||||||
sudo apt install libjack0 libjack-jackd2-dev qjackctl libx11-xcb-dev libxcb-icccm4-dev libxcb-dri3-dev
|
sudo apt install libjack0 libjack-jackd2-dev qjackctl
|
||||||
|
|
||||||
These might work on Debian too:
|
These might work on Debian too:
|
||||||
|
|
||||||
sudo apt install libjack0 libjack-dev libx11-xcb-dev libxcb-icccm4-dev libxcb-dri2-dev
|
sudo apt install libjack0 libjack-dev
|
||||||
|
|
||||||
## Running the Automated Testsuite:
|
## Running the Automated Testsuite:
|
||||||
|
|
||||||
|
@ -83,8 +83,8 @@ of this project (AGPLv3 or later).
|
||||||
## Contact the Author
|
## Contact the Author
|
||||||
|
|
||||||
You can reach me via Discord or Mastodon. I'm joined most public Rust Discord
|
You can reach me via Discord or Mastodon. I'm joined most public Rust Discord
|
||||||
servers, especially the "Rust Audio" Discord server. I am also on freenode.net,
|
servers, especially the "Rust Audio" Discord server. I am also sometimes on
|
||||||
for instance in the `#lad` channel (nick `weirdctr`).
|
freenode.net, for instance in the `#lad` channel (nick `weirdctr`).
|
||||||
|
|
||||||
## Support Development
|
## Support Development
|
||||||
|
|
||||||
|
@ -97,13 +97,14 @@ You can support me (and the development of this project) via Liberapay:
|
||||||
This project is licensed under the GNU Affero General Public License Version 3 or
|
This project is licensed under the GNU Affero General Public License Version 3 or
|
||||||
later.
|
later.
|
||||||
|
|
||||||
The fonts DejaVuSerif.ttf and DejaVuSansMono.ttf under the license:
|
|
||||||
|
|
||||||
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
|
|
||||||
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
|
|
||||||
|
|
||||||
### Why (A)GPL?
|
### Why (A)GPL?
|
||||||
|
|
||||||
|
The obivious reason is that this project copied and translated code from many
|
||||||
|
other free software / open source synthesis projects. The sources
|
||||||
|
will show the origin and license of the individual parts.
|
||||||
|
|
||||||
|
#### My Reasons
|
||||||
|
|
||||||
Picking a license for my code bothered me for a long time. I read many
|
Picking a license for my code bothered me for a long time. I read many
|
||||||
discussions about this topic. Read the license explanations. And discussed
|
discussions about this topic. Read the license explanations. And discussed
|
||||||
this matter with other developers.
|
this matter with other developers.
|
||||||
|
|
Loading…
Reference in a new issue