XUiDesigner v0.5 released

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

Announcements of proprietary software may fit better in the Marketplace.


Moderators: raboof, MattKingUSA, khz

User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

I had named the bender "76_bender[101frames].png" for my easy reference. After renaming the bender to "76_bender.png" it now works in XUiDesigner.

But how to activate the virtual keyboard on the GUI. I don't see it...?
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

LinMusGuy wrote: Tue Sep 20, 2022 7:53 pm But how to activate the virtual keyboard on the GUI. I don't see it...?
Scroll down the widget selector menu, it's the last in the list.
When you do a update (I've done some small fixes), you could see it directly as I've extend the size of the menu so that you don't need to scroll down any-more.
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

gui.png
gui.png (77.89 KiB) Viewed 1264 times
The GUI is as it should be now, except that the custom labels in some cases hide part of the knob images.

I will do some more testing later today...
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

LinMusGuy wrote: Wed Sep 21, 2022 8:44 am The GUI is as it should be now, except that the custom labels in some cases hide part of the knob images.
Nice!
When you stretch the controller widgets in width, you'll get enough space for the labels and didn't need to use custom labels.
I've fixed as well the VSliders, so that they beehive now the same as Knobs do. (Do a update) When images been in use therefore, they scale now with aspect ratio. So when you wider the widget, the controller will stay in the middle and the space for the label grow.

The reason why a label may hide a part of the controller is when the widgets overlap, the one which was created later will win (stacking order).
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

When I drop FluteMIDI.dsp in XUiDesigner there appear two maps (FluteMIDI and FluteMIDI.lv2) on my Desktop. Is that as it should be?
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

Those are artefacts from faust2lv2.
I consider to implement my own version of it in order to avoid them.
But currently I've no time at all.
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

OK - a lot is working already.

See you when you have time for new updates.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

I've done a quick fix for this. Means I've set the workdir for faust2lv2 to /tmp so that the artefacts been popup under /tmp. That way you don't need to care about them as they get removed on any login.
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

Thanks!! That works. :D

I will do some more testing today, but I will have to use another Faust dsp-file for that because the flute apparently needs a velocity sensitive keyboard. I'm only hearing the airflow now... :wink:
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

Yes, the keyboard using a fixed velocity at 64. I'll implement a menu to allow to set velocity, keyboard mapping and channel later on.
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

I used the following example dsp file for testing the virtual MIDI keyboard in the XUiDesigner made GUI:

Code: Select all

declare options "[nvoices:8]";
import("all.lib");

///////////////////////////////////////////////////////////////////////////////////////////////////
//
// Simple FM synthesizer.
// 2 oscillators and FM feedback on modulant oscillator
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// ANALOG IMPLEMENTATION:
//
// ANALOG_0	: Modulator frequency ratio
// ANALOG_1	: Attack
// ANALOG_2	: Decay/Release
// ANALOG_3	: Sustain
//
// MIDI:
// CC 1 : FM feedback on modulant oscillator.
//
///////////////////////////////////////////////////////////////////////////////////////////////////

// GENERAL, Keyboard
midigate = button("gate");
midifreq = nentry("freq[unit:Hz]", 440, 20, 20000, 1);
midigain = nentry("gain", 1, 0, 1, 0.01);

// modwheel:
feedb = (gFreq-1) * (hslider("feedb[midi:ctrl 1]", 0, 0, 1, 0.001) : si.smoo);
modFreqRatio = hslider("ratio[BELA: ANALOG_0]",2,0,20,0.01) : si.smoo;

// pitchwheel
bend = ba.semi2ratio(hslider("bend [midi:pitchwheel]",0,-2,2,0.01));

gFreq = midifreq * bend;

//=================================== Parameters Mapping =================================
//========================================================================================
// Same for volume & modulation:
volA = hslider("A[BELA: ANALOG_1]",0.01,0.01,4,0.01);
volDR = hslider("DR[BELA: ANALOG_2]",0.6,0.01,8,0.01);
volS = hslider("S[BELA: ANALOG_3]",0.2,0,1,0.01);
envelop = en.adsre(volA,volDR,volS,volDR,midigate);

// modulator frequency
modFreq = gFreq * modFreqRatio;

// modulation index
FMdepth = envelop * 1000 * midigain;

// Out amplitude
vol = envelop;

//============================================ DSP =======================================
//========================================================================================

FMfeedback(frq) = (+(_,frq):os.osci) ~ (* (feedb));
FMall(f) = os.osci(f+ (FMdepth*FMfeedback(f*modFreqRatio)));

//#################################################################################################//
//##################################### EFFECT SECTION ############################################//
//#################################################################################################//
//
// Simple FX chaine build for a mono synthesizer.
// It controle general volume and pan.
// FX Chaine is:
//		Drive
//		Flanger
//		Reverberation
//
// This version use ANALOG IN to controle some of the parameters.
// Other parameters continue to be available by MIDI or OSC.
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// ANALOG IMPLEMENTATION:
//
// ANALOG_4	: Distortion Drive
// ANALOG_5	: Flanger Dry/Wet
// ANALOG_6	: Reverberation Dry/Wet
// ANALOG_7	: Reverberation Room size
//
// MIDI:
// CC 7	: Volume
// CC 10 : Pan
//
// CC 13 : Flanger Delay
// CC 13 : Flanger Delay
// CC 94 : Flanger Feedback
//
// CC 95 : Reverberation Damp
// CC 90 : Reverberation Stereo Width
// 
///////////////////////////////////////////////////////////////////////////////////////////////////

// VOLUME:
volFX = hslider("volume[midi:ctrl 7]",1,0,1,0.001);	// Should be 7 according to MIDI CC norm.

// EFFECTS /////////////////////////////////////////////
drive = hslider("drive[BELA: ANALOG_4]",0.3,0,1,0.001);

// Flanger
curdel = hslider("flangDel[midi:ctrl 13]",4,0.001,10,0.001);
fb = hslider("flangFeedback[midi:ctrl 94]",0.7,0,1,0.001);
fldw = hslider("dryWetFlang[BELA: ANALOG_5]",0.5,0,1,0.001);
flanger = efx
	with {
		fldel = (curdel + (os.lf_triangle(1) * 2) ) : min(10);
		efx = _ <: _, pf.flanger_mono(10,fldel,1,fb,0) : dry_wet(fldw);
	};

// Pannoramique:
panno = _ : sp.panner(hslider("pan[midi:ctrl 10]",0.5,0,1,0.001)) : _,_;

// REVERB (from freeverb_demo)
reverb = _,_ <: (*(g)*fixedgain,*(g)*fixedgain :
	re.stereo_freeverb(combfeed, allpassfeed, damping, spatSpread)),
	*(1-g), *(1-g) :> _,_
    with {
        scaleroom   = 0.28;
        offsetroom  = 0.7;
        allpassfeed = 0.5;
        scaledamp   = 0.4;
        fixedgain   = 0.1;
        origSR = 44100;

        damping = vslider("Damp[midi:ctrl 95]",0.5, 0, 1, 0.025)*scaledamp*origSR/ma.SR;
        combfeed = vslider("RoomSize[BELA: ANALOG_7]", 0.7, 0, 1, 0.025)*scaleroom*origSR/ma.SR + offsetroom;
        spatSpread = vslider("Stereo[midi:ctrl 90]",0.6,0,1,0.01)*46*ma.SR/origSR;
        g = vslider("dryWetReverb[BELA: ANALOG_6]", 0.4, 0, 1, 0.001);
        // (g = Dry/Wet)
    };

// Dry-Wet (from C. LEBRETON)
dry_wet(dw,x,y) = wet*y + dry*x
    with {
        wet = 0.5*(dw+1.0);
        dry = 1.0-wet;
    };

// ALL
effect = _ *(volFX) : ef.cubicnl_nodc(drive, 0.1) : flanger : panno : reverb;

process = FMall(gFreq) * vol;

In order to test the virtual keyboard I made the following quick and simple GUI with XUiDesigner:
gui.png
gui.png (59.94 KiB) Viewed 1110 times
And I'm happy to report that the XUiDesigner made GUI with virtual keyboard appeared to work in Jalv, in Carla, in Reaper, and in Carla Rack in LMMS.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

LinMusGuy wrote: Thu Sep 29, 2022 7:47 pm And I'm happy to report that the XUiDesigner made GUI with virtual keyboard appeared to work in Jalv, in Carla, in Reaper, and in Carla Rack in LMMS.
Nice. I'm glade to hear that. :)

I've now added a context menu to the virtual keyboard were you could set the keyboard mapping (qwertz, qwerty, azerty) the octave mapping (C0 - C4) and the velocity (set the value with mouse wheel, default is 64). I've to put the context menu on the middle mouse button because the right button is already mapped for drowning (keep note on when button release).
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

I'm using such a mouse: https://www.bol.com/nl/nl/p/gembird-opt ... 0109278238

Is the small button in the middle the middle mouse button? I don't see anything happening when I press it...
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: XUiDesigner v0.5 released

Post by tramp »

No, it's the mouse wheel when pressed, not moved.
On the road again.
User avatar
LinMusGuy
Established Member
Posts: 551
Joined: Wed Feb 27, 2019 9:33 pm
Has thanked: 22 times
Been thanked: 2 times

Re: XUiDesigner v0.5 released

Post by LinMusGuy »

Ah - thanks! It looks like it's working except that the menu disappears as soon as I try to change the value for velocity:
screenshot.png
screenshot.png (28.06 KiB) Viewed 992 times
Or is the menu only for building the GUI in XUiDesigner and not for using the plugin in a plugin host?


It would also be nice when the velocity per key depends on the place where you press the key with the louder sounds for a lower pressed key:
screenshot2.png
screenshot2.png (16.16 KiB) Viewed 992 times
Post Reply