Csound Csound-dev Csound-tekno Search About

[Csnd] Tutorial on Vectorial Opcodes

Date2011-03-16 07:22
FromJim Aikin
Subject[Csnd] Tutorial on Vectorial Opcodes
Having just stumbled onto the vectorial opcodes, I'm wondering if there's a
tutorial anywhere that explains what their musical utility might be.

One of the things that isn't clear to me, looking for example at the manual
page for vtablek, is how the parameter kndx would be incremented. Let's
suppose, for instance, that I have a table of 32 values that stores vectors
of 4 values each. If I increment kndx from 0 to 1, will I get outputs of
items 1, 2, 3, and 4 in the table, or will I get items 4, 5, 6, and 7? In
other words, is the index a counter that takes account of the size of the
vector, or is it just a standard index to values in the table?

Or does that question even make sense? You can see why I need a tutorial
here.

I'm also curious about the mention, in the Canonical Manual page on vlinseg,
of an opcode called bmscan, since the latter is not to be found anywhere in
the manual. What's the story?

Thanks for any insights.

--Jim Aikin

--
View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3765823.html
Sent from the Csound - General mailing list archive at Nabble.com.


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2011-03-16 08:39
Frompeiman khosravi
SubjectRe: [Csnd] Tutorial on Vectorial Opcodes
One application would be to for transforming fsig data stored in a
table I guess.

P

On 16 March 2011 07:22, Jim Aikin  wrote:
> Having just stumbled onto the vectorial opcodes, I'm wondering if there's a
> tutorial anywhere that explains what their musical utility might be.
>
> One of the things that isn't clear to me, looking for example at the manual
> page for vtablek, is how the parameter kndx would be incremented. Let's
> suppose, for instance, that I have a table of 32 values that stores vectors
> of 4 values each. If I increment kndx from 0 to 1, will I get outputs of
> items 1, 2, 3, and 4 in the table, or will I get items 4, 5, 6, and 7? In
> other words, is the index a counter that takes account of the size of the
> vector, or is it just a standard index to values in the table?
>
> Or does that question even make sense? You can see why I need a tutorial
> here.
>
> I'm also curious about the mention, in the Canonical Manual page on vlinseg,
> of an opcode called bmscan, since the latter is not to be found anywhere in
> the manual. What's the story?
>
> Thanks for any insights.
>
> --Jim Aikin
>
> --
> View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3765823.html
> Sent from the Csound - General mailing list archive at Nabble.com.
>
>
> Send bugs reports to the Sourceforge bug tracker
>            https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
>
>


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"


Date2011-03-16 15:52
FromJim Aikin
Subject[Csnd] Re: Tutorial on Vectorial Opcodes
Since I have no idea what fsig data is, that suggestion is not completely
enlightening ... sorry. fsig doesn't appear to be an opcode. A quick Google
search suggests that it has something to do with the streaming pvoc opcodes,
about which I know nothing.

There's a tutorial on pvoc in The Csound Book, but in skimming it quickly I
didn't spot anything on vectors or on fsig. There is a bit on tableseg and
tablexseg, which seem to operate on entire tables rather than on vectors
stored within tables.

To return to the question, then -- vectors? What is their musical utility?
And where might I find tutorial material discussing same?

--JA

--
View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3785933.html
Sent from the Csound - General mailing list archive at Nabble.com.


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2011-03-16 16:08
Frompeiman khosravi
SubjectRe: [Csnd] Re: Tutorial on Vectorial Opcodes
I can certainly point you to the right place about fsig.

http://www.csounds.com/manual/html/SpectralRealTime.html



On 16 March 2011 15:52, Jim Aikin  wrote:
> Since I have no idea what fsig data is, that suggestion is not completely
> enlightening ... sorry. fsig doesn't appear to be an opcode. A quick Google
> search suggests that it has something to do with the streaming pvoc opcodes,
> about which I know nothing.
>
> There's a tutorial on pvoc in The Csound Book, but in skimming it quickly I
> didn't spot anything on vectors or on fsig. There is a bit on tableseg and
> tablexseg, which seem to operate on entire tables rather than on vectors
> stored within tables.
>
> To return to the question, then -- vectors? What is their musical utility?
> And where might I find tutorial material discussing same?
>
> --JA
>
> --
> View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3785933.html
> Sent from the Csound - General mailing list archive at Nabble.com.
>
>
> Send bugs reports to the Sourceforge bug tracker
>            https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
>
>


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"


Date2011-03-16 16:34
FromJustin Smith
SubjectRe: [Csnd] Re: Tutorial on Vectorial Opcodes

Regarding the musical utility of vectors:
A table of "presets", where you can look up a complete set of parameters by index, or interpolate between adjacent parameter sets (ie idx of 2 gets you preset 2, 3 gets 3, 2.5 gets a set of parameters halfway between the two).

A table of (x/y/z) positions in space defining a specific 3d path an ambisonic signal should take.

Chords and keychanges can be represented as vectorial values and operations.

Similar to the preset idea but more complex, p sets of defined parameters (with count n) of a synth can be stored in a n*n*p vector, thus allowing interpolation between any two sets of parameters.

Vectors are a natural choice for representing position, orientation, and velocity of a Wiimote style accellerometer based input. The vectors can then be operated on in the classical way an engineer would use them (applying dithering, hysterisis, smoothing, etc.) before being mapped to events or parameters.

My general experience is that if I find a mathematically derived tool in csound, figuring out its utility is straightforward once I understand the math (which often takes me a while, my last math class was introductory algebra when I was 15 years old). I think a comprehensive mathematical education is outside the scope of the csound documentation, though.

----- Original message -----
> I can certainly point you to the right place about fsig.
>
> http://www.csounds.com/manual/html/SpectralRealTime.html
>
>
>
> On 16 March 2011 15:52, Jim Aikin <midiguru23@sbcglobal.net> wrote:
> > Since I have no idea what fsig data is, that suggestion is not
> > completely enlightening ... sorry. fsig doesn't appear to be an
> > opcode. A quick Google search suggests that it has something to do
> > with the streaming pvoc opcodes, about which I know nothing.
> >
> > There's a tutorial on pvoc in The Csound Book, but in skimming it
> > quickly I didn't spot anything on vectors or on fsig. There is a bit
> > on tableseg and tablexseg, which seem to operate on entire tables
> > rather than on vectors stored within tables.
> >
> > To return to the question, then -- vectors? What is their musical
> > utility? And where might I find tutorial material discussing same?
> >
> > --JA
> >
> > --
> > View this message in context:
> > http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3785933.html
> > Sent from the Csound - General mailing list archive at Nabble.com.
> >
> >
> > Send bugs reports to the Sourceforge bug tracker
> >            https://sourceforge.net/tracker/?group_id=81968&atid=564599
> > Discussions of bugs and features can be posted here
> > To unsubscribe, send email sympa@lists.bath.ac.uk with body
> > "unsubscribe csound"
> >
> >
>
>
> Send bugs reports to the Sourceforge bug tracker
>                        https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
>


Date2011-03-16 17:19
FromJim Aikin
Subject[Csnd] Re: Tutorial on Vectorial Opcodes
> A table of "presets", where you can look up a complete set of parameters by
index, or
> interpolate between adjacent parameter sets (ie idx of 2 gets you preset
> 2, 3 gets 3,
> 2.5 gets a set of parameters halfway between the two). 

Hmm. You seem to be implying that the index of a vector opcode moves through
the table by the size of the vector. That is, if there are 100 data values
in a vector, index 0 reads out values 0-99, index 1 reads out values
100-199, and so on.

The business of a partial index is ... you seem to be implying that an index
of 0.5 would interpolate between values 0 and 100, between values 1 and 101,
and so forth. Naively, I would expect an index of 0.5 to output values
50-149.

I could test this myself, and I should probably do so, but it would take 15
minutes to set it up. I'm thinking maybe someone else has the answer at
their fingertips.

--JA

--
View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3789458.html
Sent from the Csound - General mailing list archive at Nabble.com.


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2011-03-16 17:42
FromJustin Glenn Smith
SubjectRe: [Csnd] Re: Tutorial on Vectorial Opcodes
Attachmentsvect-interp.csd  
As this csd shows the vectors are layed out in classic C style (last index increments first)

Jim Aikin wrote:
>> A table of "presets", where you can look up a complete set of parameters by
> index, or
>> interpolate between adjacent parameter sets (ie idx of 2 gets you preset
>> 2, 3 gets 3,
>> 2.5 gets a set of parameters halfway between the two). 
> 
> Hmm. You seem to be implying that the index of a vector opcode moves through
> the table by the size of the vector. That is, if there are 100 data values
> in a vector, index 0 reads out values 0-99, index 1 reads out values
> 100-199, and so on.

I implied nothing of the sort, but yes that is the case.
 
> The business of a partial index is ... you seem to be implying that an index
> of 0.5 would interpolate between values 0 and 100, between values 1 and 101,
> and so forth. Naively, I would expect an index of 0.5 to output values
> 50-149.
> 
> I could test this myself, and I should probably do so, but it would take 15
> minutes to set it up. I'm thinking maybe someone else has the answer at
> their fingertips.
The test took two minutes to write.

> 
> --JA
> 
> --
> View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3789458.html
> Sent from the Csound - General mailing list archive at Nabble.com.
> 
> 
> Send bugs reports to the Sourceforge bug tracker
>             https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
> 
> 


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"


Date2011-03-16 18:32
FromJustin Glenn Smith
SubjectRe: [Csnd] Re: Tutorial on Vectorial Opcodes
Attachmentsvect-interp.csd  
The table lookup mode somehow made that example less clear (maybe a bug?), with a direct mode as attached the output is more informative (as a moves from 0 to 1 b moves from 0 to 5)

Justin Glenn Smith wrote:
> As this csd shows the vectors are layed out in classic C style (last index increments first)
> 
> Jim Aikin wrote:
>>> A table of "presets", where you can look up a complete set of parameters by
>> index, or
>>> interpolate between adjacent parameter sets (ie idx of 2 gets you preset
>>> 2, 3 gets 3,
>>> 2.5 gets a set of parameters halfway between the two). 
>> Hmm. You seem to be implying that the index of a vector opcode moves through
>> the table by the size of the vector. That is, if there are 100 data values
>> in a vector, index 0 reads out values 0-99, index 1 reads out values
>> 100-199, and so on.
> 
> I implied nothing of the sort, but yes that is the case.
>  
>> The business of a partial index is ... you seem to be implying that an index
>> of 0.5 would interpolate between values 0 and 100, between values 1 and 101,
>> and so forth. Naively, I would expect an index of 0.5 to output values
>> 50-149.
>>
>> I could test this myself, and I should probably do so, but it would take 15
>> minutes to set it up. I'm thinking maybe someone else has the answer at
>> their fingertips.
> The test took two minutes to write.
> 
>> --JA
>>
>> --
>> View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3789458.html
>> Sent from the Csound - General mailing list archive at Nabble.com.
>>
>>
>> Send bugs reports to the Sourceforge bug tracker
>>             https://sourceforge.net/tracker/?group_id=81968&atid=564599
>> Discussions of bugs and features can be posted here
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
>>
>>
> 


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"


Date2011-03-16 20:39
FromJim Aikin
Subject[Csnd] Re: Tutorial on Vectorial Opcodes
>> I could test this myself, and I should probably do so, but it would take
15
>> minutes to set it up. I'm thinking maybe someone else has the answer at
>> their fingertips.
>The test took two minutes to write. 

We're all properly impressed by your virtuosity. Perhaps I should have been
just a teensy bit more specific. It would have taken ME 15 minutes to set it
up.

Happy now?

--JA

--
View this message in context: http://csound.1045644.n5.nabble.com/Tutorial-on-Vectorial-Opcodes-tp3765823p3798672.html
Sent from the Csound - General mailing list archive at Nabble.com.


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"