Difference between revisions of "Adding LV2 plugins"

From ZynthianWiki
Jump to navigation Jump to search
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
So lets pick up the bits and pieces . . .
+
So lets pick up the bits and pieces!
  
 +
==Enabling LV2 plugins with the webconf GUI==
  
A Putty connection to the relevant machine . . .
+
[[File:5aa1443936d6975679d92eb5cafb42a792a1142a.png|600px|right]]
  
[[File:12546f27f90cd35123b556871f9d3bd6af821f5b.png]]
+
From your browser, access the zynthian's webconf tool and open the "Software->LV2 plugins" panel. Search the plugin you want to enable, check it and save.
  
For those, that words like git have little meaning, Wikipedia says
+
<br clear=all>
Git is a distributed version-control system for tracking changes in source code during software development. . .
 
  
It accesses where teams & oneself keep stuff when developing code. It’s also where one can easily grab the project at various points in it’s history, which is very helpful. I’ve known people who keep audio collections under git. It does its job very well but it has a certain surrounding mythology for the infrequent user.
+
[[File:A654c4082097355ec19df5e05b2aa0ec31c7d0bd.png|600px|right]]
 +
 
 +
[[File:18a38ae4efc0c74b72e793ff0619e05604675df1.png|600px|right]]
 +
 
 +
After that, the plugin will be available from the zynthian's UI. You can add it on a synth engine's chain or create an independent FX chain.
 +
 
 +
<br clear=all>
 +
 
 +
[[File:A612ffab406fc88d2fb550ac71e39f5ec4b0d8e8.png|600px|right]]
 +
 
 +
and we have our new effect Stereo DJ X-Fade, with its controls
 +
 
 +
<br clear=all>
 +
 
 +
==Installing a plugin from its source code using the CLI (Command Line Interface)==
  
One needs a suite of programmes loaded on your machine to access the git repository and these are run by either the command line using the word git . . with a command and parameters, or a GUI, perhaps for instance, built into an Interactive Development Environment (An iDE).
+
First you need a ssh (putty) connection to the zynthian:
  
so
+
[[File:12546f27f90cd35123b556871f9d3bd6af821f5b.png|800px]]
the line described in the page pointed to by the weblink in the definition of the lv2 plugin . . . .
 
  
so
+
For those that words like "git" have little meaning, Wikipedia says:
git clone git://github.com/x42/xfade.lv2.git
 
  
will copy the recognised structure defined at this site . . .
+
Git is a distributed version-control system for tracking changes in source code during software development.
which is:- I’ve opened the clone dialog to show how this can be picked up from the site itiself… at github which surprise, surprise is a place for git repositories to hang out.
 
  
[[File:5e8350578ef1d03da0aa2396e74e6bddd6a3112c.png]]
+
It accesses where teams & oneself keep stuff when developing code. It’s also where one can easily grab the project at various points in it’s history, which is very helpful. I’ve known people who keep audio collections under git. It does its job very well but it has a certain surrounding mythology for the infrequent user.
  
We can now use the cd command to move into the directory that the git clone command has magically created for us.
+
One needs a suite of programms loaded on your machine to access the git repository and these are run by either the command line using the word git and a list of parameters, or a GUI, perhaps for instance, built into an Interactive Development Environment (An iDE).
  
and we can see that the files structure from the repo has been ‘cloned’ to our directory in root.
+
So the line described in the page pointed to by the weblink in the definition of the lv2 plugin:
  
[[File:324d0b65919661ebd3463b6dcf816141a24f4d98.png]]
+
cd /zynthian/zynthian-sw/plugins
So onwards . . . .
+
git clone git://github.com/x42/xfade.lv2.git
  
the next instruction on the readme page is . . .
+
will get a copy of the source code for xfade.lv2 project, being x42 the author.
  
make
+
I’ve opened the clone dialog to show how this can be picked up from the site itiself at github. Github, which surprise, is a hosting place for git repositories.
  
so what’s going on here. . . ?
+
[[File:5e8350578ef1d03da0aa2396e74e6bddd6a3112c.png|800px]]
  
Wikipedia :- Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program.
+
We can now use the "cd" command to move into the directory that the "git clone" command has magically created for us, and we can see that the files structure from the repo has been ‘cloned’ to our directory in the zynthian.
  
so what is this doing? Well the cloned repo contains a description of the code . . .
+
  cd xfade.lv2
 +
  ls
  
xfade.c
+
[[File:324d0b65919661ebd3463b6dcf816141a24f4d98.png|800px]]
  
Which actually does the work . . .
+
The next instruction on the readme page is:
  
But this programme needs to be connected or linked to the machine it will run on and this is where make comes in. it makes sure that the details are all up to date and choose the versions of code libraries on the machine that will be used.
+
make
  
there is a file with various possible names Makefile in this case: https://github.com/x42/xfade.lv2/blob/master/Makefile for those that like the gore . . .
+
what’s going on here? Wikipedia says:
  
so after make . . . .
+
Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program.
  
[[File:25cb1cb627ba8171efb5b37645ee432ebb1f31cc.png]]
+
so what is this doing? Well the cloned repo contains the source code for the plugin:
  
we can see some response and notice it’s now built a directory called build
+
xfade.c
  
which contains two text files and an .so file
+
which actually does the work. But this programm needs to be compiled (converted to machine code) and linked (connected to the system it will run on) and this is where make comes in. It makes sure that the details are all up to date and choose the versions of code libraries on the machine that will be used.
  
[[File:98daf55da5d9cbac45bd48d325bec4291164c13f.png]]
+
There is a file with various possible names, Makefile in this case:
  
the so file
+
https://github.com/x42/xfade.lv2/blob/master/Makefile
An .so file is a compiled library file. It stands for “Shared Object” and is analogous to a Windows DLL.
 
  
So we have descriptions of the lv2 setup and a programming plug & socket ( .so file) to allow the programme to connect to the bits and pieces it needs. . .
+
for those that like the gore.
  
sudo make install PREFIX=/usr
+
So after make:
  
well sudo is the magic invocation that allows you to take on poweruser status to modify files in the structure that would normally be blocked from you. Now in the zynthian we run with root power all the time, so we can do this anyway but the sudo does no harm . . .
+
[[File:25cb1cb627ba8171efb5b37645ee432ebb1f31cc.png|400px]]
so we are running the next command as superuser, and the next command is
 
  
sudo make install PREFIX=/usr
+
we can see some response and notice it’s now built a directory called build which contains two text files and an a .so file
  
so we are running make again but with the install command which is actually defined in the Makefile, and a specific setting of a parameter called prefix with a specific value
+
[[File:98daf55da5d9cbac45bd48d325bec4291164c13f.png|400px]]
  
[[File:302e0da4a6d703c82f1a0f9ec056b7cc40f191c8.png]]
+
the so file is a compiled library file. It stands for “Shared Object” and is analogous to a Windows DLL.
  
and just checking we can see the file that the make install has created.
+
So we have descriptions of the lv2 setup and a programming plug & socket ( .so file) to allow the programm to connect to the bits and pieces it needs.
  
[[File:4381ef17152ef986569c39c24a4cea208f8cd882.png]]
+
make install
  
notice these are owned by root, which is why the sudo would have been needed.
+
so we are running make again but with the install subcommand which is actually defined in the Makefile, and will copy the ready-to-run plugin files to the right system directories.
  
so from the
+
[[File:302e0da4a6d703c82f1a0f9ec056b7cc40f191c8.png|400px]]
Is there a guide to installing custom LV2 plugins somewhere?
 
we get @Baggypants
 
  
ssh on to the zynth,
+
this is just checking if we can see the files that the make install has installed on the system.
git clone the repo.
 
install any dependencies
 
Run make, to compile the LV2,
 
copy the <somename>.lv2 directory into /zynthian/zynthian-my-plugins/lv2/ .
 
reboot
 
enable the plugin in the webconf
 
and checking it seems to be there . . . :smiley: ( I’m not sure how but hey …!)
 
  
[[File:5462d5a420793e0322476de3c61469ecdbe4d6e8.png]]
+
[[File:4381ef17152ef986569c39c24a4cea208f8cd882.png|400px]]
  
and there it is in the lv2 menu in webconf . . .
+
The steps resumed:
image
 
image
 
1126×579 54.1 KB
 
layer_menu
 
layer_menu
 
1360×768 24.6 KB
 
So we choose a new effect . . .
 
  
engine_menu
+
* ssh on to the zynth,
engine_menu
+
* git clone the repo.
1360×768 49.9 KB
+
* install any dependencies
and there we have our new effect Stereo DJ X-Fade . . .
+
* Run make, to compile the LV2,
 +
* copy the <somename>.lv2 directory into /zynthian/zynthian-my-plugins/lv2/
 +
* reboot
 +
* enable the plugin in the webconf
  
with the parameters . . .
+
[[File:5462d5a420793e0322476de3c61469ecdbe4d6e8.png|400px]]
  
parameter_menu
+
Sadly the encoder for A A+B B only selects those values not a gradual fade. But this is probably because I now realise it’s a stereo input device so has 4 inputs that ar being mapped to 2 so that might well explain it.
parameter_menu
 
1360×768 20.2 KB
 
sadly the encoder for A A+B B only selects those values not a gradual fade… . . .
 
But this is probably because I now realise it’s a stereo input device so has 4 inputs that ar being mapped to 2 so that might well explain it…
 
  
:smiley:
+
;-)

Latest revision as of 18:28, 19 February 2021

So lets pick up the bits and pieces!

1 Enabling LV2 plugins with the webconf GUI

5aa1443936d6975679d92eb5cafb42a792a1142a.png

From your browser, access the zynthian's webconf tool and open the "Software->LV2 plugins" panel. Search the plugin you want to enable, check it and save.


A654c4082097355ec19df5e05b2aa0ec31c7d0bd.png
18a38ae4efc0c74b72e793ff0619e05604675df1.png

After that, the plugin will be available from the zynthian's UI. You can add it on a synth engine's chain or create an independent FX chain.


A612ffab406fc88d2fb550ac71e39f5ec4b0d8e8.png

and we have our new effect Stereo DJ X-Fade, with its controls


2 Installing a plugin from its source code using the CLI (Command Line Interface)

First you need a ssh (putty) connection to the zynthian:

12546f27f90cd35123b556871f9d3bd6af821f5b.png

For those that words like "git" have little meaning, Wikipedia says:

Git is a distributed version-control system for tracking changes in source code during software development.

It accesses where teams & oneself keep stuff when developing code. It’s also where one can easily grab the project at various points in it’s history, which is very helpful. I’ve known people who keep audio collections under git. It does its job very well but it has a certain surrounding mythology for the infrequent user.

One needs a suite of programms loaded on your machine to access the git repository and these are run by either the command line using the word git and a list of parameters, or a GUI, perhaps for instance, built into an Interactive Development Environment (An iDE).

So the line described in the page pointed to by the weblink in the definition of the lv2 plugin:

cd /zynthian/zynthian-sw/plugins
git clone git://github.com/x42/xfade.lv2.git

will get a copy of the source code for xfade.lv2 project, being x42 the author.

I’ve opened the clone dialog to show how this can be picked up from the site itiself at github. Github, which surprise, is a hosting place for git repositories.

5e8350578ef1d03da0aa2396e74e6bddd6a3112c.png

We can now use the "cd" command to move into the directory that the "git clone" command has magically created for us, and we can see that the files structure from the repo has been ‘cloned’ to our directory in the zynthian.

 cd xfade.lv2
 ls

324d0b65919661ebd3463b6dcf816141a24f4d98.png

The next instruction on the readme page is:

make

what’s going on here? Wikipedia says:

Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program.

so what is this doing? Well the cloned repo contains the source code for the plugin:

xfade.c

which actually does the work. But this programm needs to be compiled (converted to machine code) and linked (connected to the system it will run on) and this is where make comes in. It makes sure that the details are all up to date and choose the versions of code libraries on the machine that will be used.

There is a file with various possible names, Makefile in this case:

https://github.com/x42/xfade.lv2/blob/master/Makefile

for those that like the gore.

So after make:

25cb1cb627ba8171efb5b37645ee432ebb1f31cc.png

we can see some response and notice it’s now built a directory called build which contains two text files and an a .so file

98daf55da5d9cbac45bd48d325bec4291164c13f.png

the so file is a compiled library file. It stands for “Shared Object” and is analogous to a Windows DLL.

So we have descriptions of the lv2 setup and a programming plug & socket ( .so file) to allow the programm to connect to the bits and pieces it needs.

make install

so we are running make again but with the install subcommand which is actually defined in the Makefile, and will copy the ready-to-run plugin files to the right system directories.

302e0da4a6d703c82f1a0f9ec056b7cc40f191c8.png

this is just checking if we can see the files that the make install has installed on the system.

4381ef17152ef986569c39c24a4cea208f8cd882.png

The steps resumed:

  • ssh on to the zynth,
  • git clone the repo.
  • install any dependencies
  • Run make, to compile the LV2,
  • copy the <somename>.lv2 directory into /zynthian/zynthian-my-plugins/lv2/
  • reboot
  • enable the plugin in the webconf

5462d5a420793e0322476de3c61469ecdbe4d6e8.png

Sadly the encoder for A A+B B only selects those values not a gradual fade. But this is probably because I now realise it’s a stereo input device so has 4 inputs that ar being mapped to 2 so that might well explain it.

-)