[LAA] Xmonk.lv2 a little sound generator

Discuss anything new and newsworthy! See http://planet.linuxaudio.org for more Linux Audio News!

Announcements of proprietary software may fit better in the Marketplace.

Moderators: raboof, khz, MattKingUSA

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

[LAA] Xmonk.lv2 a little sound generator

Postby tramp » Tue Nov 12, 2019 3:17 pm

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
On the road again.

User avatar
milo
Established Member
Posts: 287
Joined: Wed Sep 06, 2017 2:55 am
Location: Southern Utah, USA
Contact:

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

Postby milo » Fri Nov 15, 2019 12:30 pm

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!

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Sat Nov 16, 2019 3:08 am

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.
On the road again.

User avatar
milo
Established Member
Posts: 287
Joined: Wed Sep 06, 2017 2:55 am
Location: Southern Utah, USA
Contact:

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

Postby milo » Sat Nov 16, 2019 4:21 am

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.

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Sat Nov 16, 2019 6:02 am

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.
On the road again.

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Sat Nov 16, 2019 9:04 am

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.
On the road again.

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Sat Nov 16, 2019 10:59 am

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.
On the road again.

User avatar
milo
Established Member
Posts: 287
Joined: Wed Sep 06, 2017 2:55 am
Location: Southern Utah, USA
Contact:

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

Postby milo » Sat Nov 16, 2019 2:38 pm

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.

User avatar
milo
Established Member
Posts: 287
Joined: Wed Sep 06, 2017 2:55 am
Location: Southern Utah, USA
Contact:

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

Postby milo » Sat Nov 16, 2019 10:05 pm

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!

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Sun Nov 17, 2019 4:50 am

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.
On the road again.

merlyn
Established Member
Posts: 520
Joined: Thu Oct 11, 2018 4:13 pm

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

Postby merlyn » Mon Nov 18, 2019 4:08 pm

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?

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Tue Nov 19, 2019 3:47 am

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.
On the road again.

merlyn
Established Member
Posts: 520
Joined: Thu Oct 11, 2018 4:13 pm

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

Postby merlyn » Tue Nov 19, 2019 4:20 am

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.

tramp
Established Member
Posts: 1455
Joined: Mon Jul 01, 2013 8:13 am

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

Postby tramp » Tue Nov 19, 2019 4:28 am

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.
On the road again.

merlyn
Established Member
Posts: 520
Joined: Thu Oct 11, 2018 4:13 pm

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

Postby merlyn » Tue Nov 19, 2019 3:16 pm

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?


Return to “Linux Music News”

Who is online

Users browsing this forum: No registered users and 2 guests