Page 1 of 7

[LAA] Xmonk.lv2 a little sound generator

Posted: Tue Nov 12, 2019 3:17 pm
by tramp
I like to announce the release for Xmonk.lv2 version 0.2

Xmonk is a sound generator based on the Faust `SFFormantModelBP` from physmodels.lib by Mike Olsen.

It's a monophonic formant/vocal synthesizer.

The source is a sawtooth wave and the "filter" is a bank of resonant bandpass filters.

Xmonk provide a interface to drive the filter/synthesizer via mouse movement.
Image

Additional Xmonk provide a midi in port to drive it with any midi controller.

On top Xmonk provide a virtual keyboard to drive it with your PC keyboard/mouse combination.

Image

Surely you could use your DAW automation to drive it the way you want.

Xmonk could play in two different modes, on is the usual note on/off, the other is sustain, means the last note play forever, while you play with the vowel filter settings. ( SpaceBar could be used as AllNotesOff)

Xmonk could be used with a free scaled temperament, or as selected with Equal Tempered scales from 12 to 53.

Here you get it:

https://github.com/brummer10/Xmonk.lv2/releases/tag/0.2


https://github.com/brummer10/Xmonk.lv2

So, have some fun with it,

hermann

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Fri Nov 15, 2019 12:30 pm
by milo
This version compiles just fine and all of its new features work. Very nice!

One feature request: can you add a bit of sustain/release to the synth envelope so that the note fades out instead of ending abruptly? I think that would improve the sound. This doesn't have to be configurable if you want to keep things simple -- you could just hard-code it -- but a slider on the left side next to the gain would work as a control, or a simple on/off switch for sustain next to the infinity switch. Just an idea.

Thanks for this fun toy!

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 3:08 am
by tramp
I'm glad you like it.

Good idea. I've replaced the infinity switch by a sustain slider now, so you could slide from no sustain to infinity, and indeed, it improve the usability. :)
It's in git now.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 4:21 am
by milo
Awesome! It compiles fine and works well. The sustain slider is nice. Thank you!

One thing I notice is that the midi keyboard window that pops up cannot be closed by the "X" in the window decorations. You have to click on the little keyboard icon in the Xmonk GUI again to close it.

Also, when I connect my midi controller (M-Audio KeyRig 49) to Xmonk using qjackctl (system:midi_capture_1 > Xmonk:events-in) the only things that works are the pitch bend wheel, which changes the pitch, and the notes on the keyboard, which are fed to the synth. But the note played on the keyboard does not change the knob value for the note on the plugin like the on-screen midi keyboard does - it only plays the note while you are holding the key down, and then the pitch reverts to whatever value the knob is set to. And the modulation wheel doesn't control the vowel.

Connecting the physical midi controller only works in Carla, because the plugin shows up in qjackctl. I can't figure out how to connect the midi controller to Xmonk in Ardour, where the plugins don't show up in qjackctl.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 6:02 am
by tramp
milo wrote:Awesome! It compiles fine and works well. The sustain slider is nice. Thank you!
I found a little bug which I've fixed now in git.
It was related to a maintained key-list were I've forgotten to implement a new logic for the slider instead the button.
milo wrote:One thing I notice is that the midi keyboard window that pops up cannot be closed by the "X" in the window decorations. You have to click on the little keyboard icon in the Xmonk GUI again to close it.
That's intentional, as I only would hide the keyboard, not destroy and re-create. (I don't know how I could avoid the "x" button in the window decoration)
milo wrote:Also, when I connect my midi controller (M-Audio KeyRig 49) to Xmonk using qjackctl (system:midi_capture_1 > Xmonk:events-in) the only things that works are the pitch bend wheel, which changes the pitch, and the notes on the keyboard, which are fed to the synth. But the note played on the keyboard does not change the knob value for the note on the plugin like the on-screen midi keyboard does - it only plays the note while you are holding the key down, and then the pitch reverts to whatever value the knob is set to. And the modulation wheel doesn't control the vowel.
As far I know, carla didn't forward Midi CC messages to the plugins, hence the ModWheel didn't work.
Ardour, I'm as well can't figure out how to connect external midi gear to Ardour. I'm able to establish a connection in the Ardour connection manager, but receive only garbage.
Qtractor does a better job on this and work flawless. Also jalv works nicely with the monk.

That the little dot didn't move when you play with the keyboard, is intentional as well, as I find the light animation nice while moving the dot with the mouse, it becomes not so nice, when it jump around while you play with a keyboard. As far I see, only in ardour the dot jumps while play with the keyboard, seems ardour have a other logic by forwarding port values to the UI.

The reset to note setting by the dot may be related to the bug I mentioned above, so maybe (hopefully) it's fixed already.
But, I may implement a maintained key-list in the engine as well, so that external gear beehive the same as the internal keyboard.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 9:04 am
by tramp
Okay, wasn't as easy as I've hoped. But, solved now.
I'm now forwarding the midi message when needed to the UI, so that the UI reflect midi messages.
I'm solved to drive the monk in Ardour with external midi gear.
Only remaining issue is Carla didn't forward midi CC to the plug, so mod-wheel didn't work in Carla.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 10:59 am
by tramp
Re: Carla

You need to open the in-build interface for the plugin (Xmonk.lv2) ( the little wrench in the rack interface) and enable under MIDI:
[x] Send Control Changes

then the ModWheel works.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 2:38 pm
by milo
Awesome! It works with the midi controller now in Ardour and Carla. It took some fiddling to get it working in both. As you mentioned above, I had to select the "Send Control Changes" in Carla, and that got the Modulation wheel controlling the vowel. In Ardour I had to configure the midi sidechain for the plugin, which was new to me but it worked just fine once I figured it out.
tramp wrote:
milo wrote:One thing I notice is that the midi keyboard window that pops up cannot be closed by the "X" in the window decorations. You have to click on the little keyboard icon in the Xmonk GUI again to close it.
That's intentional, as I only would hide the keyboard, not destroy and re-create. (I don't know how I could avoid the "x" button in the window decoration)
That makes sense from a programming point of view, but not really from a user's point of view. The user just wants to click on the "X" and get rid of the window, and they don't care what is happening under the hood. I thought the plugin had crashed at first when the "X" didn't work. Is there a way to avoid the window decorations entirely? That may be window manager-specific.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sat Nov 16, 2019 10:05 pm
by milo
milo wrote:Is there a way to avoid the window decorations entirely? That may be window manager-specific.
Another idea: Could the midi keyboard be a part of the main Xmonk window, which auto-resizes when you click the show/hide keyboard button? Just a thought. That would save the confusion of the non-functioning "X" in the window decoration.

My kids love Xmonk, especially now that it works so well with the midi controller. They were fighting over whose turn it was, each trying to get their own hands on the controller. If that's not a ringing endorsement, then there is no such thing!

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Sun Nov 17, 2019 4:50 am
by tramp
milo wrote:Another idea: Could the midi keyboard be a part of the main Xmonk window, which auto-resizes when you click the show/hide keyboard button? Just a thought. That would save the confusion of the non-functioning "X" in the window decoration.
You are right, the x-button should work or not be there.
I could write a re-direction for the x-button, so called "hide on delete" to make the x-button (seems to) work like expected.
I'll shot a note here when done.
milo wrote:My kids love Xmonk, especially now that it works so well with the midi controller. They were fighting over whose turn it was, each trying to get their own hands on the controller. If that's not a ringing endorsement, then there is no such thing!
:D Nice. I could imagine the fun you've with them.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Mon Nov 18, 2019 4:08 pm
by merlyn
Thanks for this.

I've compiled it on Arch and it loads as a plugin in Ardour. It works using the mouse, but with a MIDI keyboard the notes don't sustain. There's a double note. It's saying 'ah-ah' then stopping, rather than the 'aaahheeeeeooooow' I get with the mouse. My MIDI keyboard is working with other synths. Could it be something to do with note on/note off?

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Tue Nov 19, 2019 3:47 am
by tramp
For the case you use the release tar ball, yes, it has a few bugs.
In the development version from git master, when you set the sustain slider to 1.0, all midi off messages should be ignored and the sound should sustain forever. When you've set it to 0 (default) Notes play only as long you've press the key without sustain.
With full sustain only "AllNotesOff", "AllSoundOff" and "CCReset" messages should stop the synth.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Tue Nov 19, 2019 4:20 am
by merlyn
tramp wrote:Notes play only as long you've press the key without sustain.
This isn't happening on my system. When I press a key I get a short note even if I keep the key pressed. I've realised the double note is the delay.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Tue Nov 19, 2019 4:28 am
by tramp
mmm, then there is still a Bug,
Could you check with midisnoop for example which messages your controller send when you press a key and hold it. That may help me to fix it.

Re: [LAA] Xmonk.lv2 a little sound generator

Posted: Tue Nov 19, 2019 3:16 pm
by merlyn
Using jack_midi_dump I got this :

Code: Select all

 23: 90 32 51 note on  (channel  0): pitch  50, velocity  81
My controller doesn't send anything while the key is held. I had a look at the code. Is the variable 'gate' meant to be a pointer?