Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

View: New views
10 Messages — Rating Filter:   Alert me  

Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by Iannis Zannos-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hello,

I am looking for the following 2 tools:
1. A time-line editor that can be used to store timed numeric values on a track and play them back (for example as MIDI messages sent to control other software).

2. A PV FFT UGen that permits one to filter audio input (for example white noise) by the spectrum specified by an array of values in a buffer, where each buffer is a bin representing the amplitude at a specific frequency of the FFT;

Would be grateful for hints to any related libraries or classes.

Iannis Zannos



_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by Scott Wilson-8 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 5 May 2008, at 10:52, Iannis Zannos wrote:

2. A PV FFT UGen that permits one to filter audio input (for example white noise) by the spectrum specified by an array of values in a buffer, where each buffer is a bin representing the amplitude at a specific frequency of the FFT;

Hey Iannis,

You can do 2. just with PV_MagMul.

S.

(
//use as table
var size = 700, bufsize = 2048, sum, factor, step, env;

factor = bufsize / size;
step = factor.reciprocal;

t = Array.fill(size - 1, {|i| (i + 1).explin(1, size, 1, bufsize) - 1});
sum = t.sum;
t = t * (1 / sum);


e = Buffer.alloc(s, bufsize, 1);
d = Buffer.alloc(s, bufsize, 1);
f = Buffer.read(s,"sounds/a11wlk01.wav");

a = SCWindow("test", Rect(200 , 450, size + 40, 150));
a.view.decorator =  FlowLayout(a.view.bounds);
b = SCMultiSliderView(a, Rect(0, 0, size, 100));

c = Array.new;
size.do({arg i;
c = c.add(0.0);
});
c = c.reverse;
b.value_(c);

b.isFilled_(true);

// width in pixels of each stick 
b.indexThumbSize_(1);
// spacing on the value axis
b.gap_(0);

a.front;

env = Env(c, t);

d.loadCollection(env.asSignal(bufsize));
b.action = {arg ms; 
var ind, firstChd, lastChd, setSize, muls;
ind = ms.index;
c[ind] = ms.value[ind];
};

b.mouseUpAction = {
d.loadCollection(Env(c, t).asSignal(bufsize); );
};
)

(
SynthDef("help-magMul", { arg out=0, bufnumA=0, bufnumB=1;
var inA, chainA, inB, chainB, chain;
inA = WhiteNoise.ar(0.2);
chainA = FFT(bufnumA, inA);
chain = PV_MagMul(chainA, bufnumB); 
Out.ar(out, 0.5 * IFFT(chain).dup);
}).play(s,[\out, 0, \bufnumA, e.bufnum, \bufnumB, d.bufnum ]);
)

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by Iannis Zannos-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Thanks Scott!

On Mon, May 5, 2008 at 1:05 PM, Scott Wilson <i@...> wrote:

On 5 May 2008, at 10:52, Iannis Zannos wrote:

2. A PV FFT UGen that permits one to filter audio input (for example white noise) by the spectrum specified by an array of values in a buffer, where each buffer is a bin representing the amplitude at a specific frequency of the FFT;

Hey Iannis,

You can do 2. just with PV_MagMul.

S.

(
//use as table
var size = 700, bufsize = 2048, sum, factor, step, env;

factor = bufsize / size;
step = factor.reciprocal;

t = Array.fill(size - 1, {|i| (i + 1).explin(1, size, 1, bufsize) - 1});
sum = t.sum;
t = t * (1 / sum);


e = Buffer.alloc(s, bufsize, 1);
d = Buffer.alloc(s, bufsize, 1);
f = Buffer.read(s,"sounds/a11wlk01.wav");

a = SCWindow("test", Rect(200 , 450, size + 40, 150));
a.view.decorator =  FlowLayout(a.view.bounds);
b = SCMultiSliderView(a, Rect(0, 0, size, 100));

c = Array.new;
size.do({arg i;
c = c.add(0.0);
});
c = c.reverse;
b.value_(c);

b.isFilled_(true);

// width in pixels of each stick 
b.indexThumbSize_(1);
// spacing on the value axis
b.gap_(0);

a.front;

env = Env(c, t);

d.loadCollection(env.asSignal(bufsize));
b.action = {arg ms; 
var ind, firstChd, lastChd, setSize, muls;
ind = ms.index;
c[ind] = ms.value[ind];
};

b.mouseUpAction = {
d.loadCollection(Env(c, t).asSignal(bufsize); );
};
)

(
SynthDef("help-magMul", { arg out=0, bufnumA=0, bufnumB=1;
var inA, chainA, inB, chainB, chain;
inA = WhiteNoise.ar(0.2);
chainA = FFT(bufnumA, inA);
chain = PV_MagMul(chainA, bufnumB); 
Out.ar(out, 0.5 * IFFT(chain).dup);
}).play(s,[\out, 0, \bufnumA, e.bufnum, \bufnumB, d.bufnum ]);
)

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users



_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by Wouter Snoei-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Iannis,

> I am looking for the following 2 tools:
> 1. A time-line editor that can be used to store timed numeric  
> values on a track and play them back (for example as MIDI messages  
> sent to control other software).

well, I do have a MIDI file implementation in my lib, which also has  
a plot function with a timeline view. Only it doesn't play yet.  
Shouldn't be too hard to make it play though, with a few simple Tasks  
or maybe a conversion to a pattern. There is also a MIDIEventRecorder  
class which can record timed events for use in SimpleMIDIFile  
(undocumented unfortunately).

Look at SimpleMIDIFile in wslib ( Quarks.install("wslib") ).

cheers,
Wouter

Wouter Snoei

info@...
http://www.woutersnoei.nl

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by jostM-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I am currently working on a timeline function executer, with a gui for
entering the functions and sliding them about in a score.  This can
evaluate a function at given time. Not finished yet, however. May be a
bit yet. It will also have  printing function for printing out scores on
paper, in which the function definitions are printed on paper as part of
the score. Most likely it will output pdf or the like, but I haven't
decided yet.

jostM



Wouter Snoei wrote:

> Hi Iannis,
>
>> I am looking for the following 2 tools:
>> 1. A time-line editor that can be used to store timed numeric  
>> values on a track and play them back (for example as MIDI messages  
>> sent to control other software).
>
> well, I do have a MIDI file implementation in my lib, which also has  
> a plot function with a timeline view. Only it doesn't play yet.  
> Shouldn't be too hard to make it play though, with a few simple Tasks  
> or maybe a conversion to a pattern. There is also a MIDIEventRecorder  
> class which can record timed events for use in SimpleMIDIFile  
> (undocumented unfortunately).
>
> Look at SimpleMIDIFile in wslib ( Quarks.install("wslib") ).
>
> cheers,
> Wouter
>
> Wouter Snoei
>
> info@...
> http://www.woutersnoei.nl
>
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by Jan Trutzschler-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Iannis,
i've been developing a multitracker for a while now:
it's pretty open for all sort of things:
soundfiles, functions, files, patterns, events
a current snapshot is at:
< http://www.sampleAndHold.org/spool/teaLips_20080505.zip >
This lib is still under heavy development, but most things work and  
the gui is cross-platform. And the help-file is outdated.
You can do a:

MultiTracker.new.gui;

and select "textFiles" on the right. there you can open some text  
files with code and place them (using enter) on the timeline.
Contact me off-list for more info.


Best,
Jan



On May 5, 2008, at 11:52 AM, Iannis Zannos wrote:

> I am looking for the following 2 tools:
> 1. A time-line editor that can be used to store timed numeric  
> values on a track and play them back (for example as MIDI messages  
> sent to control other software).

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by tom tlalim-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hi all,
for bin scaling there's also pvcollect (which seems nice and intuitive to me)
scott, dan, is there a performance difference between PV_MagMul and pvcollect?

grtz


(
b = Buffer.alloc(s, 1024, 1);
d = Buffer.alloc(s, 1024, 1).setn(0, 0!1024);
w = GUI.window.new("~", Rect(0, 200, 1024, 150)).front;
m = GUI.multiSliderView.new(w, Rect(0, 0, 1024, 150))
    .value_(0!512)
    .gap_(0)
    .thumbSize_(2)
    .valueThumbSize_(2)
    .action_({|me| d.set(me.index, me.value[me.index])});

x = {
    var in, chain, v;
    in = WhiteNoise.ar(0.5);
    chain = FFT(b.bufnum, in);
    chain = chain.pvcollect(b.numFrames, {|mag, phase, index|
        [mag*Index.kr(d.bufnum, index);, phase]
    });  
    Out.ar(0, 0.5 * IFFT(chain).dup);
}.play(s);
)
)


On Mon, May 5, 2008 at 5:14 PM, Jan Trutzschler <sc3@...> wrote:
Iannis,
i've been developing a multitracker for a while now:
it's pretty open for all sort of things:
soundfiles, functions, files, patterns, events
a current snapshot is at:
< http://www.sampleAndHold.org/spool/teaLips_20080505.zip >
This lib is still under heavy development, but most things work and
the gui is cross-platform. And the help-file is outdated.
You can do a:

MultiTracker.new.gui;

and select "textFiles" on the right. there you can open some text
files with code and place them (using enter) on the timeline.
Contact me off-list for more info.


Best,
Jan



On May 5, 2008, at 11:52 AM, Iannis Zannos wrote:

> I am looking for the following 2 tools:
> 1. A time-line editor that can be used to store timed numeric
> values on a track and play them back (for example as MIDI messages
> sent to control other software).

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users


_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by tom tlalim-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

great jan! looking forward to try it!
but i get an error:

MultiTracker.new.gui;

a MultiTrackTools: a MultiTrackObjectEditor
WARNING:
autoloadFile does not exist

tom


On Mon, May 5, 2008 at 5:14 PM, Jan Trutzschler <sc3@...> wrote:
Iannis,
i've been developing a multitracker for a while now:
it's pretty open for all sort of things:
soundfiles, functions, files, patterns, events
a current snapshot is at:
< http://www.sampleAndHold.org/spool/teaLips_20080505.zip >
This lib is still under heavy development, but most things work and
the gui is cross-platform. And the help-file is outdated.
You can do a:

MultiTracker.new.gui;

and select "textFiles" on the right. there you can open some text
files with code and place them (using enter) on the timeline.
Contact me off-list for more info.


Best,
Jan



On May 5, 2008, at 11:52 AM, Iannis Zannos wrote:

> I am looking for the following 2 tools:
> 1. A time-line editor that can be used to store timed numeric
> values on a track and play them back (for example as MIDI messages
> sent to control other software).

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users


_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by Dan Stowell :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yes, a pretty big difference. pvcollect will typically use more CPU
than an equivalent PV_MagMul, in part because it creates a whole
little mesh of UGens rather than being a single UGen. It can do more
things though, so that's the tradeoff.

Dan


2008/5/6 tom tlalim <tlalists@...>:

> hi all,
> for bin scaling there's also pvcollect (which seems nice and intuitive to
> me)
> scott, dan, is there a performance difference between PV_MagMul and
> pvcollect?
>
> grtz
>
>
> (
> b = Buffer.alloc(s, 1024, 1);
> d = Buffer.alloc(s, 1024, 1).setn(0, 0!1024);
> w = GUI.window.new("~", Rect(0, 200, 1024, 150)).front;
> m = GUI.multiSliderView.new(w, Rect(0, 0, 1024, 150))
>     .value_(0!512)
>     .gap_(0)
>     .thumbSize_(2)
>     .valueThumbSize_(2)
>     .action_({|me| d.set(me.index, me.value[me.index])});
>
> x = {
>     var in, chain, v;
>     in = WhiteNoise.ar(0.5);
>     chain = FFT(b.bufnum, in);
>     chain = chain.pvcollect(b.numFrames, {|mag, phase, index|
>         [mag*Index.kr(d.bufnum, index);, phase]
>     });
>     Out.ar(0, 0.5 * IFFT(chain).dup);
> }.play(s);
> )
> )
>
>
> On Mon, May 5, 2008 at 5:14 PM, Jan Trutzschler <sc3@...>
> wrote:
>>
>> Iannis,
>> i've been developing a multitracker for a while now:
>> it's pretty open for all sort of things:
>> soundfiles, functions, files, patterns, events
>> a current snapshot is at:
>> < http://www.sampleAndHold.org/spool/teaLips_20080505.zip >
>> This lib is still under heavy development, but most things work and
>> the gui is cross-platform. And the help-file is outdated.
>> You can do a:
>>
>> MultiTracker.new.gui;
>>
>> and select "textFiles" on the right. there you can open some text
>> files with code and place them (using enter) on the timeline.
>> Contact me off-list for more info.
>>
>>
>> Best,
>> Jan
>>
>>
>>
>> On May 5, 2008, at 11:52 AM, Iannis Zannos wrote:
>>
>> > I am looking for the following 2 tools:
>> > 1. A time-line editor that can be used to store timed numeric
>> > values on a track and play them back (for example as MIDI messages
>> > sent to control other software).
>>
>> _______________________________________________
>> sc-users mailing list
>> sc-users@...
>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>



--
http://www.mcld.co.uk
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Time-line editor (for midi or other), and PV-spectral filter with freely settable bins

by tom tlalim-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

thnx for clarifying, dan.
i just found the efficiency note in the help file :)

tom

On Fri, May 9, 2008 at 12:36 PM, Dan Stowell <danstowell@...> wrote:
Yes, a pretty big difference. pvcollect will typically use more CPU
than an equivalent PV_MagMul, in part because it creates a whole
little mesh of UGens rather than being a single UGen. It can do more
things though, so that's the tradeoff.

Dan


2008/5/6 tom tlalim <tlalists@...>:
> hi all,
> for bin scaling there's also pvcollect (which seems nice and intuitive to
> me)
> scott, dan, is there a performance difference between PV_MagMul and
> pvcollect?
>
> grtz
>
>
> (
> b = Buffer.alloc(s, 1024, 1);
> d = Buffer.alloc(s, 1024, 1).setn(0, 0!1024);
> w = GUI.window.new("~", Rect(0, 200, 1024, 150)).front;
> m = GUI.multiSliderView.new(w, Rect(0, 0, 1024, 150))
>     .value_(0!512)
>     .gap_(0)
>     .thumbSize_(2)
>     .valueThumbSize_(2)
>     .action_({|me| d.set(me.index, me.value[me.index])});
>
> x = {
>     var in, chain, v;
>     in = WhiteNoise.ar(0.5);
>     chain = FFT(b.bufnum, in);
>     chain = chain.pvcollect(b.numFrames, {|mag, phase, index|
>         [mag*Index.kr(d.bufnum, index);, phase]
>     });
>     Out.ar(0, 0.5 * IFFT(chain).dup);
> }.play(s);
> )
> )
>
>
> On Mon, May 5, 2008 at 5:14 PM, Jan Trutzschler <sc3@...>
> wrote:
>>
>> Iannis,
>> i've been developing a multitracker for a while now:
>> it's pretty open for all sort of things:
>> soundfiles, functions, files, patterns, events
>> a current snapshot is at:
>> < http://www.sampleAndHold.org/spool/teaLips_20080505.zip >
>> This lib is still under heavy development, but most things work and
>> the gui is cross-platform. And the help-file is outdated.
>> You can do a:
>>
>> MultiTracker.new.gui;
>>
>> and select "textFiles" on the right. there you can open some text
>> files with code and place them (using enter) on the timeline.
>> Contact me off-list for more info.
>>
>>
>> Best,
>> Jan
>>
>>
>>
>> On May 5, 2008, at 11:52 AM, Iannis Zannos wrote:
>>
>> > I am looking for the following 2 tools:
>> > 1. A time-line editor that can be used to store timed numeric
>> > values on a track and play them back (for example as MIDI messages
>> > sent to control other software).
>>
>> _______________________________________________
>> sc-users mailing list
>> sc-users@...
>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>



--
http://www.mcld.co.uk
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users


_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users