ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
Statistics: Posted by BM2F — 27 Mar 2026, 11:25 Statistics: Posted by grego mondo — 25 Mar 2026, 10:52 Statistics: Posted by gwennaelle — 25 Mar 2026, 10:14
did you saw the addon about leap ? Some audio patch
can be a good start
have a nice patching !
]]>
May be it's a good opportunitie to get involved with Arrays ![]()
I believe you can't really "faire l'impasse" on Arrays because it's such a powerfull tool !
There it looks you can get number of hands valids (> palms) recognized (1 or 2)
From there you can know wich value of the Array you're intereseted in (first or second)
I guess you can even reorganize dynamically the values order > so when 2 hands are recognized : the first value is always the one with the smaller x value (the one one the left) ...
May be you'll spend more time today learning to work with Arrays but you'll be quicker next time and you'll learn powerfull tools
Il est toujours bon d'apprendre à pêcher ![]()
]]>
I don't know if this is what you were suggesting, but my hands are being recognized—it works.
Now I have to build the UltraLeap patch.
I’m not used to working with arrays. My initial tests to link hand or finger gestures to audio parameters doesn't work.
Would anyone have a template?
Or I've seen the idea of using Geco. Is that an alternative?
If you have an idea, please let me know ![]()
]]>
Statistics: Posted by gwennaelle — 23 Mar 2026, 15:34
//////////////////////////
// transpose midi with optional auto-wrap
// Window defined by Root and Root+12
/////////////////////////
var input : Tparameter;
var output : Tparameter;
var transpo : TParameter;
var active : TParameter;
var root : TParameter;
procedure init;
begin
Input := CreateParam('midi in', ptMidi, pioInput);
Output := CreateParam('midi out', ptMidi, pioOutput);
transpo := CreateParam('transpo', ptDataFader, pioInput);
transpo.Format('%.0f');
transpo.Min(-24);
transpo.Max(24);
root := CreateParam('root note', ptDataFader, pioInput);
root.Format('%.0f');
root.Min(0);
root.Max(115);
// On ne met pas de .Value() ici pour éviter l'erreur
active := CreateParam('wrap active', ptSwitch, pioInput);
SetModuleColor($FF3298DB);
end;
procedure Process;
var i : integer;
var nbOfMidi : integer;
var ReceivedMidi : TMidi;
var TranspoVal : integer;
var RootVal : integer;
var HighLimit : integer;
begin
nbOfMidi := input.Length;
output.length(nbOfMidi);
if (nbOfMidi > 0) then
begin
TranspoVal := transpo.asInteger;
RootVal := root.asInteger;
HighLimit := RootVal + 12;
for i := 0 to nbOfMidi-1 do
begin
ReceivedMidi := input.asMidi(i);
ReceivedMidi.data1 := ReceivedMidi.data1 + TranspoVal;
if (active.asInteger > 0) then
begin
while (ReceivedMidi.data1 > HighLimit) do
begin
ReceivedMidi.data1 := ReceivedMidi.data1 - 12;
end;
while (ReceivedMidi.data1 < RootVal) do
begin
ReceivedMidi.data1 := ReceivedMidi.data1 + 12;
end;
end;
output.asMidi(i, ReceivedMidi);
end;
end;
end;
Statistics: Posted by joffo78 — 30 Jan 2026, 09:44
Statistics: Posted by joffo78 — 30 Jan 2026, 09:41
Statistics: Posted by grego mondo — 01 Dec 2025, 16:49
Statistics: Posted by oli_lab — 27 Nov 2025, 21:12
Statistics: Posted by cmodica — 27 Nov 2025, 17:37
Statistics: Posted by oli_lab — 26 Nov 2025, 20:13
Statistics: Posted by oli_lab — 26 Nov 2025, 19:18
Statistics: Posted by oli_lab — 21 Nov 2025, 14:36
Statistics: Posted by cmodica — 21 Nov 2025, 12:36
Everything loads well. But i didn't find "gen wave packet V3" ...modulilab :
PAF (phase aligned formant)
gen wave packet V3
wavetable reader V3
phase distorsion V3
datalab :
event recorder V2
multitrack recorder :
multitrack recorder
Statistics: Posted by cmodica — 21 Nov 2025, 11:55
Statistics: Posted by oli_lab — 19 Nov 2025, 17:40
Statistics: Posted by cmodica — 19 Nov 2025, 17:21
Statistics: Posted by oli_lab — 19 Nov 2025, 14:56
Statistics: Posted by cmodica — 19 Nov 2025, 14:01
Statistics: Posted by oli_lab — 19 Nov 2025, 12:24
Statistics: Posted by cmodica — 19 Nov 2025, 10:18
Statistics: Posted by oli_lab — 18 Nov 2025, 19:44
ADDSRV3 and PhaseDistorsionV3 not loaded (Invalid)can you try ADDSRV3 and phaseDistortionV3 from modulilab34 ?
load ok !can you try to load the GCD module (datalab/math) into a M4 and tell me if it is loading ok ?
Statistics: Posted by cmodica — 16 Nov 2025, 18:36
Statistics: Posted by oli_lab — 11 Nov 2025, 16:47
Statistics: Posted by BM2F — 27 Mar 2026, 11:25
Statistics: Posted by grego mondo — 25 Mar 2026, 10:52
Statistics: Posted by gwennaelle — 25 Mar 2026, 10:14
Statistics: Posted by gwennaelle — 23 Mar 2026, 15:34
//////////////////////////
// transpose midi with optional auto-wrap
// Window defined by Root and Root+12
/////////////////////////
var input : Tparameter;
var output : Tparameter;
var transpo : TParameter;
var active : TParameter;
var root : TParameter;
procedure init;
begin
Input := CreateParam('midi in', ptMidi, pioInput);
Output := CreateParam('midi out', ptMidi, pioOutput);
transpo := CreateParam('transpo', ptDataFader, pioInput);
transpo.Format('%.0f');
transpo.Min(-24);
transpo.Max(24);
root := CreateParam('root note', ptDataFader, pioInput);
root.Format('%.0f');
root.Min(0);
root.Max(115);
// On ne met pas de .Value() ici pour éviter l'erreur
active := CreateParam('wrap active', ptSwitch, pioInput);
SetModuleColor($FF3298DB);
end;
procedure Process;
var i : integer;
var nbOfMidi : integer;
var ReceivedMidi : TMidi;
var TranspoVal : integer;
var RootVal : integer;
var HighLimit : integer;
begin
nbOfMidi := input.Length;
output.length(nbOfMidi);
if (nbOfMidi > 0) then
begin
TranspoVal := transpo.asInteger;
RootVal := root.asInteger;
HighLimit := RootVal + 12;
for i := 0 to nbOfMidi-1 do
begin
ReceivedMidi := input.asMidi(i);
ReceivedMidi.data1 := ReceivedMidi.data1 + TranspoVal;
if (active.asInteger > 0) then
begin
while (ReceivedMidi.data1 > HighLimit) do
begin
ReceivedMidi.data1 := ReceivedMidi.data1 - 12;
end;
while (ReceivedMidi.data1 < RootVal) do
begin
ReceivedMidi.data1 := ReceivedMidi.data1 + 12;
end;
end;
output.asMidi(i, ReceivedMidi);
end;
end;
end;
Statistics: Posted by joffo78 — 30 Jan 2026, 09:44
Statistics: Posted by joffo78 — 30 Jan 2026, 09:41
Statistics: Posted by grego mondo — 01 Dec 2025, 16:49
Statistics: Posted by oli_lab — 27 Nov 2025, 21:12
Statistics: Posted by cmodica — 27 Nov 2025, 17:37
Statistics: Posted by oli_lab — 26 Nov 2025, 20:13
Statistics: Posted by oli_lab — 26 Nov 2025, 19:18
Statistics: Posted by oli_lab — 21 Nov 2025, 14:36
Statistics: Posted by cmodica — 21 Nov 2025, 12:36
Everything loads well. But i didn't find "gen wave packet V3" ...modulilab :
PAF (phase aligned formant)
gen wave packet V3
wavetable reader V3
phase distorsion V3
datalab :
event recorder V2
multitrack recorder :
multitrack recorder
Statistics: Posted by cmodica — 21 Nov 2025, 11:55
Statistics: Posted by oli_lab — 19 Nov 2025, 17:40
Statistics: Posted by cmodica — 19 Nov 2025, 17:21
Statistics: Posted by oli_lab — 19 Nov 2025, 14:56
Statistics: Posted by cmodica — 19 Nov 2025, 14:01
Statistics: Posted by oli_lab — 19 Nov 2025, 12:24
Statistics: Posted by cmodica — 19 Nov 2025, 10:18
Statistics: Posted by oli_lab — 18 Nov 2025, 19:44
ADDSRV3 and PhaseDistorsionV3 not loaded (Invalid)can you try ADDSRV3 and phaseDistortionV3 from modulilab34 ?
load ok !can you try to load the GCD module (datalab/math) into a M4 and tell me if it is loading ok ?
Statistics: Posted by cmodica — 16 Nov 2025, 18:36
Statistics: Posted by oli_lab — 11 Nov 2025, 16:47