Make LV2 plugins with Faust

Faust Web IDE

Faust web IDE
Compile from Faust web IDE

Make your first plugin

declare name "Noise";declare version "0.1";
declare author "You";
declare license "The licence you want";
declare copyright "(c)You 2021";
import("stdfaust.lib");volume = hslider("Volume", 0.5, 0, 1, 0.1);
noise = no.noise;
process = noise * volume;
declare version "0.1";
declare author "You";
declare license "The licence you want";
declare copyright "(c)You 2021";
import("stdfaust.lib");
volume = hslider("Volume", 0.5, 0, 1, 0.1);
volume = hslider("Volume", 0.5, 0, 1, 0.1);
process = noise * volume;
process = noise * volume
with {
noise = no.noise;
volume = hslider("Volume", 0.5, 0, 1, 0.1);
};
volume = hslider("Volume[style:knob]", 0.5, 0, 1, 0.1);

Live lv2 Coding plugin with Mephisto

mephisto screenshot

Develop on my pc

The Codebase and Continous Delivery

build-lv2:
image: registry.gitlab.com/nicolalandro/simple-pink-noise
script:
- faust2lv2 <FILE_NAME>.dsp
- mkdir lv2_no_gui
- cp -r <FILE_NAME>.lv2 lv2_no_gui
- faust2lv2 -qt5 <FILE_NAME>.dsp
- mkdir lv2_qt
- cp -r <FILE_NAME>.lv2 lv2_qt
- tar -czvf <FILE_NAME>.tar.gz lv2_no_gui lv2_qt
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file <FILE_NAME>.tar.gz "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/<RELEASE_NAME>/0.0.1/<FILE_NAME>.tar.gz"'

Faust Docker container

FROM debian:stable-slim

RUN apt-get update && apt-get install -y git
RUN git clone https://github.com/grame-cncm/faust.git

WORKDIR /faust
RUN git submodule update --init

RUN \
apt-get update && \
apt-get install -y build-essential llvm libncurses5-dev libncurses5 libmicrohttpd-dev git cmake pkg-config && \
rm -rf /var/lib/apt/lists/*

RUN \
make && make install && \
make clean && \
apt-get purge -y build-essential llvm libncurses5-dev && apt-get autoremove -y

# lv2 compile
RUN apt-get update && apt-get install -y g++ lv2-dev libboost-dev

# delivery gitlab-ci
RUN apt-get update && apt-get install -y curl

# qt5 compile (it need qmake-qt5 not qmake)
RUN apt-get update && apt-get install -y qt5-default
RUN ln -sf /usr/lib/qt5/bin/qmake /usr/lib/qt5/bin/qmake-qt5
RUN ln -sf /usr/bin/qmake /usr/bin/qmake-qt5
docker login registry.gitlab.com
docker build -t registry.gitlab.com/<UNAME>/<CODEBASE_NAME> .
docker push registry.gitlab.com/<UNAME>/<CODEBASE_NAME>
image: registry.gitlab.com/<UNAME>/<CODEBASE_NAME>

Conclusions

--

--

--

Linux user and Open Source fun. Deep learning PhD Student, Full stack web developer, Mobile developer, Musitian.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

What Is Web3?. The Complete AI ML.NET Developer Course 2022

Test Tunnel Travelers Bounty

5 Good Habits of a Software Engineer

LeetCode 200 — Number Of Islands

What happens when you type ls -l in a shell?

Make Salesforce Concepts Stick with these Tips from Trailhead Academy Instructors

Banner image of Trailhead characters Hootie, Cloudy, and Ruth singing in a band.

Flutter SQLite CRUD

How to make end-to-end tests in Java being interesting

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nicola Landro

Nicola Landro

Linux user and Open Source fun. Deep learning PhD Student, Full stack web developer, Mobile developer, Musitian.

More from Medium

Installing GUI and accessing GUI via VNC in Oracle Linux

How to Install Active Directory for Beginners (Windows Server 2019)

4 Ways to Install Firefox 98.0 on Ubuntu / Linux Mint / AlmaLinux & Fedora

Install Firefox 98.0 on ubuntu

11 Docker Commands: A Guide of Docker Commands with Examples

Docker Commands