Changes

Jump to navigation Jump to search
Line 645: Line 645:     
<br clear=all>
 
<br clear=all>
=== How Do I start writing a ctrldev driver? ===
+
=== How Do I start writing a lv2 component compatible with Zynthian? ===
 +
 
 +
====What do I need in code terms?====
 +
 
 +
Somewhere to develop and test the code as we have described above.
 +
Now at this point we have to dip below the passive waters of Python where everything is slow, leisurely and well behaved. And embrace the proscribed world of C & C++ where code runs fast and life is cheap.
 +
 
 +
You will also need components that actually understand the concepts lv2 embodies. ( hopefully someone ( you know who you are)) will jump in and give us the history of this particular chunk of the mostly virtual universe we inhabit.
 +
 
 +
I'm working off a Grok summary on building a 50Hz & 60Hz notch filter and will attempt to ruthlessly hone this to something vaguely useful. Alternatively, I might go bell ringing.
 +
 
 +
You will need some lv3 libraries...
 +
 
 +
'''sudo apt install build-essential git libasound2-dev lv2-dev'''
 +
 
 +
=====libasound2-dev=====
 +
 
 +
From the README.md file.
 +
''The alsa-lib is a library to interface with ALSA in the Linux kernel and virtual devices using a plugin system.''
 +
 
 +
[https://github.com/pop-os/libasound2 The code is here . . . ]
 +
 
 +
These are the alsa libraries, the essential glue to plug into the operating systems understanding of sound & MIDI on a Pi. Obviously this (at the moment) will only run on a Pi, so code elements at this level are aimed at that particular machine. That doesn't actually mean you can't write it on some other operating system, just be aware when you might be trying to put pears in containers designed for apples. . .
 +
 
 +
These libraries are the components that allow you to run the functionality described. But only that. If you wish to connect to them from your own programme then we need to install a little bit more, like descriptions of the hooks that those code pieces require and this is what the -dev on the end of the library name describes. Easy mistake to make it the early days, not installing the dev editions.
 +
 
 +
=====lv2-dev=====
 +
 
 +
''LV2 is a plugin standard for audio systems. It defines an extensible C API for plugins, and a format for self-contained "bundle" directories that contain plugins, metadata, and other resources''
 +
 
 +
LV2 components and the appropriate development files to muck around with lv2 files.
1,112

edits

Navigation menu