All Projects → vult-dsp → vult

vult-dsp / vult

Licence: other
Vult is a transcompiler well suited to write high-performance DSP code

Programming Languages

ocaml
1615 projects
Standard ML
205 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to vult

Vult
Vult is a transcompiler well suited to write high-performance DSP code
Stars: ✭ 272 (-13.92%)
Mutual labels:  microcontroller, dsp, webaudio, synthesizer
glicol
(Audio) graph-oriented live coding language and music DSP library written in Rust
Stars: ✭ 853 (+169.94%)
Mutual labels:  dsp, webaudio, synthesizer
arduivis
a bi-directional communication paradigm for programming languages & microcontrollers
Stars: ✭ 48 (-84.81%)
Mutual labels:  microcontroller, puredata
gensound
Pythonic audio processing and generation framework
Stars: ✭ 69 (-78.16%)
Mutual labels:  dsp, audio-effect
websynth
Web Synthesizer From Space
Stars: ✭ 16 (-94.94%)
Mutual labels:  webaudio, synthesizer
Shaden
🎧 A modular audio synthesizer.
Stars: ✭ 175 (-44.62%)
Mutual labels:  dsp, synthesizer
webaudio-synth
WebAudio Polyphonic Synthesizer
Stars: ✭ 83 (-73.73%)
Mutual labels:  webaudio, synthesizer
Main-Supercollider-Files
my supercollider codes, version history is at the branches
Stars: ✭ 21 (-93.35%)
Mutual labels:  dsp, synthesizer
Axiom
A powerful realtime node-based audio synthesizer.
Stars: ✭ 599 (+89.56%)
Mutual labels:  dsp, synthesizer
korg-prologue
Presets and custom oscillators and effects for Korg Prologue
Stars: ✭ 54 (-82.91%)
Mutual labels:  dsp, synthesizer
xenpaper
Repo for xenpaper.com
Stars: ✭ 25 (-92.09%)
Mutual labels:  webaudio, synthesizer
Supriya
A Python API for SuperCollider
Stars: ✭ 167 (-47.15%)
Mutual labels:  dsp, synthesizer
Vultmodules
A set of modules written in Vult for VCVRack
Stars: ✭ 114 (-63.92%)
Mutual labels:  dsp, synthesizer
Js Rocks
JS Rocks - Web Audio electric guitar effects and cabinets
Stars: ✭ 106 (-66.46%)
Mutual labels:  dsp, webaudio
RTspice
A real-time netlist based audio circuit plugin
Stars: ✭ 51 (-83.86%)
Mutual labels:  dsp, audio-effect
lessampler
lessampler is a Singing Voice Synthesizer
Stars: ✭ 59 (-81.33%)
Mutual labels:  dsp, synthesizer
Amsynth
Analog Modelling Synthesizer
Stars: ✭ 313 (-0.95%)
Mutual labels:  dsp, synthesizer
Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (+25%)
Mutual labels:  dsp, synthesizer
arm synth
Wavetable Synth Running on an STM32F 32-bit ARM Cortex M3 microprocessor
Stars: ✭ 23 (-92.72%)
Mutual labels:  dsp, synthesizer
DAFx19-Gamelanizer
Accompanying material for the paper 'A Real-Time Audio Effect Plug-In Inspired by the Processes of Traditional Indonesian Gamelan Music'
Stars: ✭ 33 (-89.56%)
Mutual labels:  dsp, audio-effect

Vult

Build Status Build status Coverage Status

Vult is a simple and powerful language to program high-performance algorithms that may run in small microprocessors or microcontrollers. Vult is specially useful when programming Digital Signal Processing (DSP) algorithms like audio effects or synthesizers.

The Vult compiler is a transcompiler, which takes Vult code and produces plain C/C++ code that can be compiled in any platform with a C/C++ compiler, for example: Arduino or Teensy boards. Vult can also generate JavaScript that can be run directly in the browser or C/C++ that can be compiled as Pure Data externals. Code written in Vult has freedom.

Check out the documentation and tutorial in http://vult-dsp.github.io/vult/ or take a look at the Wiki.

Basics

To generate C/C++ code with floating point arithmetic you have to execute vult as follows:

$ vultc -ccode infile.vult -o outfile

This will produce the files outfile.h and outfile.cpp. In order to compile and link these files you need to include in your project the files runtime/vultin.h and runtime/vultin.cpp.

To generate code with fixed point arithmetics you need to execute:

$ vultc -ccode -real fixed infile.vult -o outfile

Fixed point arithmetics are performed in q16 format; 16 bits for the integer part and 16 for the decimal.

Vult provides a few templates; for example to generate objects compatible with the Teensy Audio Library or Pure Data externals.

You can check these repositories for examples:

In the Wiki

Credits

Vult is maintained by: Leonardo Laguna Ruiz with the help of Carl Jönsson and Johan Rhodin

Logo design by: John Klimt https://www.facebook.com/JohnKlimt

The Vult logo is property of Leonardo Laguna Ruiz, all rights reserved.

Installing

There are three flavors the Vult compiler:

Installing with npm

You need to have node.js and npm installed.

$ npm install vult -g

This will install provide vultc command in your path. Vult is updated frequently, you can use the same command to update Vult.

The native executables can be downloaded from the releases page.

To install the node.js library use:

$ npm install vultlib

Embedding in a Web page

The compiler can be embedded in a web page providing and it provides all the functionality.

<script src="https://modlfo.github.io/vult/javascripts/vultweb.js"></script>

For an example check:

https://github.com/modlfo/vult-webaudio

Text editor support

SublimeText

Put the syntax file in the corresponding Sublime Text User packages.

In Mac, the path is the following $HOME/Library/Application Support/Sublime Text 3/Packages/User/vult.sublime-syntax.

Visual Studio Code

Install the extension vult available in the marketplace.

Compile from source

Requirements

Installing the tools

The simplest way to install the requirements is with Opam

$ opam switch 4.07.1
$ opam install ocamlbuild containers ppx_deriving pla result ounit js_of_ocaml js_of_ocaml-ppx

Compiling Vult

To compile the native executable:

$ make

Compile the node.js code:

$ make jscompiler

Running tests (Linux and macOS):

$ make test
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].