All Projects → ramirezd42 → Vst Js

ramirezd42 / Vst Js

native node addon that allows for instantiation of natively installed VST3 audio plugins

Projects that are alternatives of or similar to Vst Js

AudioPlugSharp
Easily create VST (VST3) audio plugins in C# .NET
Stars: ✭ 32 (-79.08%)
Mutual labels:  vst, vst3
Camomile
An audio plugin with Pure Data embedded that allows to load and to control patches
Stars: ✭ 527 (+244.44%)
Mutual labels:  vst, vst3
Juce
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.
Stars: ✭ 3,841 (+2410.46%)
Mutual labels:  vst, vst3
fogpad
A VST reverb effect in which the reflections can be frozen, filtered, pitch shifted and ultimately disintegrated.
Stars: ✭ 61 (-60.13%)
Mutual labels:  vst, vst3
Regrader
VST delay plugin where the repeats degrade in resolution
Stars: ✭ 44 (-71.24%)
Mutual labels:  vst, vst3
Melodrumatic
Audio plugin that lets you use MIDI to pitch-shift via delay to turn unpitched audio into melodies
Stars: ✭ 26 (-83.01%)
Mutual labels:  vst, vst3
Dplug
Audio plugin framework. VST2/VST3/AU/AAX/LV2 for Linux/macOS/Windows.
Stars: ✭ 341 (+122.88%)
Mutual labels:  vst, vst3
Yabridge
A modern and transparent way to use Windows VST2 and VST3 plugins on Linux
Stars: ✭ 329 (+115.03%)
Mutual labels:  vst, vst3
Iplug2
C++ Audio Plug-in Framework for desktop, mobile and web [PRE-RELEASE]
Stars: ✭ 875 (+471.9%)
Mutual labels:  vst, vst3
Awesome Musicdsp
A curated list of my favourite music DSP and audio programming resources
Stars: ✭ 871 (+469.28%)
Mutual labels:  vst, vst3
GuitarAmp
A basic and experimental guitar modeling amp
Stars: ✭ 79 (-48.37%)
Mutual labels:  vst, vst3
Jamba
A lightweight VST2/3 framework
Stars: ✭ 73 (-52.29%)
Mutual labels:  vst, vst3
Roboverb
A VST / VST3 / AU / LV2 Reverb Plugin
Stars: ✭ 48 (-68.63%)
Mutual labels:  vst, vst3
juceSynths
Collection of JUCE synthesisers utilising the Maximilian library.
Stars: ✭ 78 (-49.02%)
Mutual labels:  vst, vst3
aeolus plugin
Pipe organ synthesizer (VST plugin)
Stars: ✭ 38 (-75.16%)
Mutual labels:  vst, vst3
Wdl Ol
Enhanced version of Cockos' iPlug - A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported. NOTE: THIS IS OBSOLETE, PLEASE SEE IPLUG2:
Stars: ✭ 906 (+492.16%)
Mutual labels:  vst, vst3
Node Audio
Graph-based audio api for Node.js based on LabSound and JUCE
Stars: ✭ 67 (-56.21%)
Mutual labels:  vst, vst3
Audio Plugin Development Resources
Various resources related to developing plugins for audio production.
Stars: ✭ 136 (-11.11%)
Mutual labels:  vst, vst3
Griffon Vm
Griffon Data Science Virtual Machine
Stars: ✭ 128 (-16.34%)
Mutual labels:  node-js
Xmlbuilder2
An XML builder for node.js
Stars: ✭ 143 (-6.54%)
Mutual labels:  node-js

What Is It?

vst.js is a native NodeJS addon that can be used to launch VST3 plugins (including GUI interface) in a separate process.

WARNING:

This library is in an extremely experimental state. Large portions of functionally have yet to be implemented and it is currently only buildable for OSX devices, although since everything is built with crossplatform libraries, building for other operating systems shouldn't be too difficult.

Additionally, If you have any criticisms on my approach or code quality I'd love to hear them.


Installation

Install CMake

vst.js uses CMake as its build system and requires it be present on your system before installing. On a Mac the easiest way to install CMake is via homebrew:

> brew install cmake

Install Boost 3.6+

vst.js makes use of the popular Boost C++ Framework. It expects that version 3.6 or higher is available on your system prior to installation. The easiset way to install the Boost framework on a Mac is via homebrew:

> brew install boost

Acquire the Steinberg VST3 SDK (3.6.7+)

Due to licensing concerns I am currently not bundling the VST3 SDK along with this project. You will need to download the SDK from Steinbergs's Website and place it at ~/SDKs/VST3

You can also specify the installed location of the VST3 SDK by setting a the VST3_SDK_PATH environment variable prior to installation

NPM Install

Once all the above dependencies have been satisfied you can install via npm:

> npm install vstjs

Usage Examples

The example below will play back an audio file via node-web-audio-api, and manipulate the audio via a VST3 plugin

const { AudioContext } = require('web-audio-api')
const Speaker = require('speaker')
const fs = require('fs')
const path = require('path')
const vstjs = require('vstjs')

const bufferSize = 512
const numChannels = 2
const pluginPath = process.argv[2]
const filePath = process.argv[3]

const pluginHost = vstjs.launchPlugin(pluginPath)
pluginHost.start()

// setup webaudio stuff
const audioContext = new AudioContext()
const sourceNode = audioContext.createBufferSource()
const scriptNode = audioContext.createScriptProcessor(bufferSize, numChannels, numChannels)


audioContext.outStream = new Speaker({
  channels: audioContext.format.numberOfChannels,
  bitDepth: audioContext.format.bitDepth,
  sampleRate: audioContext.sampleRate,
})

sourceNode.connect(scriptNode)
scriptNode.connect(audioContext.destination)


scriptNode.onaudioprocess = function onaudioprocess(audioProcessingEvent) {
  const inputBuffer = audioProcessingEvent.inputBuffer
  const channels = [...Array(numChannels).keys()]
    .map(i => audioProcessingEvent.inputBuffer.getChannelData(i))

  // process audio block via pluginHost
  pluginHost.processAudioBlock(numChannels, bufferSize, channels)
  audioProcessingEvent.outputBuffer = inputBuffer
}

fs.readFile(filePath, (err, fileBuf) => {
  console.log('reading file..')
  if (err) throw err
  audioContext.decodeAudioData(fileBuf, (audioBuffer) => {
    sourceNode.buffer = audioBuffer
    sourceNode.start(0)
  }, (e) => { throw e })
})
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].