Hi,
When replying, please be careful to reply to the list, as well as the
person: otherwise 1/2 a conversation gets lost ;) I've included
linux-audio-dev(a)lists.linuxaudio.org again.
On Thu, Oct 2, 2014 at 4:13 PM, Phil CM <philcm(a)gnu.org> wrote:
>
> On 02/10/2014 14:13, Harry van Haaren wrote:
>>
>> On Thu, Oct 2, 2014 at 1:14 PM, Phil CM <philcm(a)gnu.org> wrote:
>>>
>>> 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.
>>
>> Hi Phil,
>>
>> To start, welcome to LV2 programming: audio plugins are fun and complex
>> area!
>
> Thanks :)
>>
>>
>> If you haven't already, I suggest you checkout the "plugins" directory
>> in the lv2 repository. It provides the best example code you'll find,
>> and accompanying http://lv2plug.in/book/ provides detailed
>> explainations and best-practices.
>
> This is my bedside reading for the next days to come ; Too bad the examples
> do not include a simple synth :(
That's what I thought too, so I wrote a sin-generator a few years ago:
it apparently hasn't been included in the lv2 source yet. I'll CC
David Robillard, and see if that's an option :)
https://github.com/harryhaaren/lv2/tree/master/plugins/eg-sinsynth.lv2
I remember now that it doesn't accept MIDI input yet: which means it
doesn't handle notes, or pitch bend. These can be added quite
trivially, and is something that I'd be willing to collaborate on?
You'd learn how to "manually" use MIDI, and we'd have a better
resource.
Please note that the GUI code is NOT something to learn from: its not
advised to use GTK for plugin UI's.
That said, the code is pretty short, and does actually work: perhaps
learn from it, and then use a more lightweight UI framework ( NTK
being my / OpenAV's favorite: http://non.tuxfamily.org/wiki/NTK )
> OK, so I'm going to get back once I managed to make a basic synth to get to
> this pitch bending special case.
Sure, good plan.
>> I do strongly advise to checkout the plugins: they are a brilliant
>> reference to make LV2 plugins.
>
> Again, it's really a shame that there is no sound synthesis plugin
> demonstrated... I'm going to study them all anyway.
>>
>> Ok, that's quite a lot of info already I think!
>>
>> LV2 specific development:
>> #lv2 on irc.freenode.net (I'm "HarryHaaren", say Hi if/when you're on)
>> Mailing list (low-traffic):
>> http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in
>>
>> Cheers, -Harry
>>
> Thanks a bunch, Harry
You're welcome. I like LV2, its the way forward: if I can help out
somewhat (apart from developing stuff myself) its also a pleasure, I
know LV2 can be a touch daunting, and a helping hand does make it a
lot easier there!
Cheers, -Harry
--
http://www.openavproductions.com
The Guitarix developers proudly present
Guitarix release 0.31.0
For the uninitiated, Guitarix is a tube amplifier simulation for
jack (Linux), with an additional mono and a stereo effect rack.
Guitarix includes a large list of plugins[*] and support LADSPA / LV2
plugs as well.
The guitarix engine is designed for LIVE usage, and feature ultra fast,
glitch and click free, preset switching, full Midi and/or remote
controllable (Web UI not included in the distributed tar ball).
Here is the " Ultimate Guide to Getting Started With Guitarix
<http://libremusicproduction.com/articles/ultimate-guide-getting-started-gui…>"
This release fix a bug in the preset naming schema ( vowel mutation in
preset names will crash guitarix) and introduce some new LV2 plugs:
* GxRoomSimulator
* GxDigitalDelay
* GxLiveLooper
Please refer to our project page for more information:
http://guitarix.sourceforge.net/
Download Site:
http://sourceforge.net/projects/guitarix/
Forum:
http://guitarix.sourceforge.net/forum/
Please consider visiting our forum or leaving a message on
guitarix-developer(a)lists.sourceforge.net
<mailto:guitarix-developer@lists.sourceforge.net>
The Guitarix project never accepted Donations, and still wouldn't do.
But, if you ever wished to donate the project, I would kindly ask you to
back the MOD Kickstarter campaign here:
https://www.kickstarter.com/projects/modduo/mod-duo-the-limitless-multi-eff…
to reach this Goal:
>
> If the campaign reaches U$100.000 the MOD Duo will offer an Audio
> Interface from it's USB connection. This means that when you plug the
> MOD Duo to your computer you will be presented with a 4 input audio
> device (two pre-processed + two post-processed) that can be used for
> recording the MOD's audio directly to your favorite software.
>
> Add this to the quality of our analog circuit and you'll have, as a
> free bonus, a professional grade audio interface that if bought alone
> would cost the price of a MOD Duo.
>
[*]Here is a list of all included plugs:
Guitarix tube emulations
========================
12ax7
12AU7
12AT7
6DJ8
6C16
6V6
12ax7 feedback
12AU7 feedback
12AT7 feedback
6DJ8 feedback
pre 12ax7/ master 6V6
pre 12AU7/ master 6V6
pre 12AT7/ master 6V6
pre 6DJ8/ master 6V6
pre 12ax7/ push-pull 6V6
pre 12AU7/ push-pull 6V6
pre 12AT7/ push pull 6V6
pre 6DJ8/ push-pull 6V6
noamp
Guitarix Tonestacks
===================
default
bassman
twin
princeton
jcm800
jcm2000
mlead
m2199
ac30
soldano
mesa
jtm45
ac15
peavey
ibanez
roland
ampeg
ampeg_rev
sovtek
bogner
groove
crunch
fender_blues
fender_default
fender_deville
gibsen
engl
Guitarix Cabinets
===================
4x12
2x12
1x12
4x10
2x10
HighGain
Twin
Bassman
Marshall
AC-30
Princeton
A2
1x15
Mesa Boogie
Briliant
Vitalize
Charisma
Guitarix internal mono plugins
===============================
Mono : Distortion : JCM 800 Preamp
Mono : Distortion : MultiBand Distortion
Mono : Distortion : Multi Band Distortion
Mono : Distortion : Overdrive
Mono : Distortion : Tube Screamer
Mono : Echo / Delay : Delay
Mono : Echo / Delay : Digital Delay
Mono : Echo / Delay : Dubber
Mono : Echo / Delay : Duck Delay
Mono : Echo / Delay : Echo
Mono : Echo / Delay : MultiBand Delay
Mono : Echo / Delay : MultiBand Echo
Mono : Echo / Delay : ReverseDelay
Mono : Guitar Effects : Compressor
Mono : Guitar Effects : Crybaby
Mono : Guitar Effects : Expander
Mono : Guitar Effects : GCB 95
Mono : Guitar Effects : Multi Band Compressor
Mono : Misc : abGate
Mono : Misc : Detune
Mono : Misc : Oscilloscope
Mono : Misc : Recorder
Mono : Modulation : Chorus Mono
Mono : Modulation : Flanger GX
Mono : Modulation : Flanger Mono
Mono : Modulation : MultiBand Chorus
Mono : Modulation : Parametric pitch shifter
Mono : Modulation : Phaser Mono
Mono : Modulation : Ring Modulator Mono
Mono : Modulation : Tremolo
Mono : Modulation : Vibe Mono
Mono : Reverb : Convolver
Mono : Reverb : Freeverb
Mono : Tone control : Amp impulse
Mono : Tone control : Baxandall
Mono : Tone control : BiQuad Filter
Mono : Tone control : Cabinet
Mono : Tone control : Feedback
Mono : Tone control : Fender 6G7
Mono : Tone control : Graphic EQ
Mono : Tone control : ImpulseResponse
Mono : Tone control : low high pass
Mono : Tone control : moonlight
Mono : Tone control : Peak EQ
Mono : Tone control : Scaleable EQ
Mono : Tone control : Tonestack
Mono : Tone control : Treble boost
Mono : Tone control : Volume
Guitarix internal stereo plugins
=================================
Stereo : Distortion : Postamp
Stereo : Echo / Delay : Digital Stereo Delay
Stereo : Echo / Delay : Duck Delay St
Stereo : Echo / Delay : Stereo Delay
Stereo : Echo / Delay : Stereo Echo
Stereo : Guitar Effects : Multi Band Compressor stereo
Stereo : Misc : Bass Enhancer
Stereo : Misc : Panoram enhancer
Stereo : Misc : Stereo Recorder
Stereo : Modulation : Chorus
Stereo : Modulation : Flanger
Stereo : Modulation : Phaser
Stereo : Modulation : Ring Modulator
Stereo : Modulation : Vibe
Stereo : Reverb : Convolver
Stereo : Reverb : Plate reverb
Stereo : Reverb : Stereo Verb
Stereo : Reverb : Zita Rev1
Stereo : Tone control : 3 Band EQ
Stereo : Tone control : Moog Filter
Guitarix LV 2 plugins
======================
GxAmplifier-X
GxAmplifier-Stereo-X
GxBarkGraphicEQ
GxChorus-Stereo
GxCompressor
GxDelay-Stereo
Gxdetune
Gxdigital_delay
Gxdigital_delay_st
Gxduck_delay
Gxduck_delay_st
GxEcho-Stereo
GxExpander
GxFlanger
GxFuzz
GxGraphicEQ
Gxlivelooper
GxMultiBandCompressor
GxMultiBandDelay
GxMultiBandDistortion
GxMultiBandEcho
GxPhaser
GxRedeye Big Chump
GxRedeye Chump
GxRedeye Vibro Chump
GxReverb-Stereo
Gxroom_simulator
Gxshimmizita
Gxstereoecho
Gx Alembic Mono
Gx Studio Preamp Stereo
Gxswitched_tremolo
GxTremolo
Gxvocoder
GxZita_rev1-Stereo
GxAutoWah
GxWah
GxBooster
GxEchoCat
GxMetalAmp
GxMetalHead
GxTiltTone
GxTubeScreamer
GxTubeDelay
GxTubeTremelo
GxTubeVibrato
GxTuner
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