Dear list,
I need a synth with a pitch control. A synth that can be controlled to
produce all tones between one note and another, say from a2 to c3 in an
anti-aliased way, like what you would get in pd by altering the pitch of
a sine wave. Touwiiiii.
I followed the great "complete idiot" tutorial
<http://www.nongnu.org/ll-plugins/lv2pftci/#A_synth> and was really
astonished by the concise and powerful code it presented.
The results are here
<https://bitbucket.org/xaccrocheur/ksi/src/0ffef787ca04?at=master>, I
just removed the delay.
This is my first steps in C++, or in audio programming altogether (but
I've been coding in PHP, Lisp and sh for years, and wrote two music
players in JS and HTML, oh and a wrote an ultrabasic sample-based drum
machine java applet ages ago) so I'm reading a lot about it currently.
Please bear with me if I say something really dumb.
In order to understand how I can achieve what I want, I'd like to
implement a pitch bend function. You know, the classic, two tone down
and up of the physical MIDI keyboards, that all LV2 synth plugins I
tried have.
For that I guess I need 1-a control port (but no widget, since I would
only be controlling it physically) and 2-a function that acts upon the
pitch (most probably in the Beep class).
I'd also like to change the waveform type from square to sine (and
ideally experiment with other waveforms).
Can somebody please point me towards the info that would allow me to
understand how to do this?
I downloaded and built the complete LV2 specifications, and am currently
reading the docbook, and the API doc <http://lv2plug.in/ns/lv2core/>,
but I fail to see how I can use this object
<http://lv2plug.in/ns/lv2core/#PitchPlugin> to alter the pitch, or for
example, change the waveform type (that may well be outside the scope of
the LV2 framework, of for that matter the LV2::Synth template) or even
create other lv2:ControlPort than sliders.
Thank you for your patience.
--
Phil CM