ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
Statistics: Posted by oli_lab — 25 Sep 2026, 14:38
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 — 25 Sep 2026, 14:38
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