[LAA] Xmonk.lv2 a little sound generator
Moderators: raboof, MattKingUSA, khz
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
[LAA] Xmonk.lv2 a little sound generator
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.
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.
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
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.
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.
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.
- milo
- Established Member
- Posts: 1242
- Joined: Wed Sep 06, 2017 2:55 am
- Location: Southern Utah, USA
- Has thanked: 275 times
- Been thanked: 218 times
- Contact:
Re: [LAA] Xmonk.lv2 a little sound generator
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!
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!
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.
- milo
- Established Member
- Posts: 1242
- Joined: Wed Sep 06, 2017 2:55 am
- Location: Southern Utah, USA
- Has thanked: 275 times
- Been thanked: 218 times
- Contact:
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
I found a little bug which I've fixed now in git.milo wrote:Awesome! It compiles fine and works well. The sustain slider is nice. Thank you!
It was related to a maintained key-list were I've forgotten to implement a new logic for the slider instead the button.
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: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.
As far I know, carla didn't forward Midi CC messages to the plugins, hence the ModWheel didn't work.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.
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.
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.
- milo
- Established Member
- Posts: 1242
- Joined: Wed Sep 06, 2017 2:55 am
- Location: Southern Utah, USA
- Has thanked: 275 times
- Been thanked: 218 times
- Contact:
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.tramp wrote: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: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.
- milo
- Established Member
- Posts: 1242
- Joined: Wed Sep 06, 2017 2:55 am
- Location: Southern Utah, USA
- Has thanked: 275 times
- Been thanked: 218 times
- Contact:
Re: [LAA] Xmonk.lv2 a little sound generator
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.milo wrote:Is there a way to avoid the window decorations entirely? That may be window manager-specific.
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!
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
You are right, the x-button should work or not be there.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.
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.
Nice. I could imagine the fun you've with them.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!
On the road again.
-
- Established Member
- Posts: 1392
- Joined: Thu Oct 11, 2018 4:13 pm
- Has thanked: 168 times
- Been thanked: 247 times
Re: [LAA] Xmonk.lv2 a little sound generator
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?
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?
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.
-
- Established Member
- Posts: 1392
- Joined: Thu Oct 11, 2018 4:13 pm
- Has thanked: 168 times
- Been thanked: 247 times
Re: [LAA] Xmonk.lv2 a little sound generator
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 wrote:Notes play only as long you've press the key without sustain.
-
- Established Member
- Posts: 2335
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 454 times
Re: [LAA] Xmonk.lv2 a little sound generator
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.
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.
-
- Established Member
- Posts: 1392
- Joined: Thu Oct 11, 2018 4:13 pm
- Has thanked: 168 times
- Been thanked: 247 times
Re: [LAA] Xmonk.lv2 a little sound generator
Using jack_midi_dump I got this :
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?
Code: Select all
23: 90 32 51 note on (channel 0): pitch 50, velocity 81