Well,
I'm trying to build a PD system that recognises the key that I'm playing in with my keyboard. I've looked at the arrays and textfile objects...but they seem hard to follow.
Can someone take the time to explain how I would get PD to read in a set of notes that are in a key(the 8 notes in the major scale for example)...and then I can check if the notes I'm playing correspond to the notes in the file read in...and hopefully then I can use some of the backing progressions that I have.
Thanks, Marcus.
Chat with friends online, try MSN Messenger: http://messenger.msn.com
Hi Marcus Marcus Flanagan hat gesagt: // Marcus Flanagan wrote:
I'm trying to build a PD system that recognises the key that I'm playing in with my keyboard. I've looked at the arrays and textfile objects...but they seem hard to follow.
Can someone take the time to explain how I would get PD to read in a set of notes that are in a key(the 8 notes in the major scale for example)...and
then I can check if the notes I'm playing correspond to the notes in the file read in...and hopefully then I can use some of the backing progressions that I have.
This might be a harmonics course problem ;)
I didn't build something like that yet, but I highly recommend Peter Elsea's Tutorials at http://www.sfu.ca/sca/Manuals/247/Max/Max.html
Beware: They are on Max not on PD, but they still include valid information for PD as well: the concepts are the same. But there are some things to consider, for example I don't know of a PD object "coll". qlist and textfile aren't really replacements. A common idiom in PD is to use linked arrays instead, where one array holds the number-names or indices of other arrays, that in turn hold a chord or a scale.
Esp. "Max & Pitch" http://www.sfu.ca/sca/Manuals/247/Max/ElseaMaxTuts/Max&Pitch.html and "Max & Chords" http://www.sfu.ca/sca/Manuals/247/Max/ElseaMaxTuts/Max&Chords.html deal with the things you want to achive.
But as said they are in Max and don't give ready-to-use solutions for our PD problems, but great stuff to think about.
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______
/ __// __ /__/ __// // __ \ / / __ \ ___\
/ / / ____/ / / / // ____// /\ \ ___\____ \
/_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
Also, MAX related but perhaps easier to "copy" to PD, some of the examples in Todd Winkler's "Composing Interactive Music".
./MiS
Frank Barknecht wrote:
Can someone take the time to explain how I would get PD to read in a set of notes that are in a key(the 8 notes in the major scale for example)...and
then I can check if the notes I'm playing correspond to the notes in the file read in...and hopefully then I can use some of the backing progressions that I have.
Esp. "Max & Pitch" http://www.sfu.ca/sca/Manuals/247/Max/ElseaMaxTuts/Max&Pitch.html and "Max & Chords" http://www.sfu.ca/sca/Manuals/247/Max/ElseaMaxTuts/Max&Chords.html deal with the things you want to achive.
Marcus,
I have implemented a connectionist chord root identifier that could easily be "time-smeared" to induce key. It's not particularly portable at the current time, however. Robert Rowe has done things like this as well, using both connectionist and rule-based approaches. Check out his "Machine Musicianship" book for lots of detailed info about different approaches to this sort of thing.
Greg
Marcus Flanagan wrote:
Well,
I'm trying to build a PD system that recognises the key that I'm playing in with my keyboard. I've looked at the arrays and textfile objects...but they seem hard to follow.
Can someone take the time to explain how I would get PD to read in a set of notes that are in a key(the 8 notes in the major scale for example)...and then I can check if the notes I'm playing correspond to the notes in the file read in...and hopefully then I can use some of the backing progressions that I have.
Thanks, Marcus.
Chat with friends online, try MSN Messenger: http://messenger.msn.com
Hi-
What options are available for formatting messages? I'm trying to send a set message to throw~ and can't figure out how to prepend "set" to the new object name. Tried packing them into a list but couldn't work out how to convert that to a message suitable for throw~. I also tried makefilename, and the various string related externals in the zexy lib without success. Is there anything like max's prepend object?
thanks
Bill
hi,
if you know the number of atoms in a message, use just `set $1 $2...' (in this particular case, probably single $1 will suffice)
K.
Bill Orcutt wrote: ...
What options are available for formatting messages? I'm trying to send a set message to throw~ and can't figure out how to prepend "set" to the new object name. Tried packing them into a list but couldn't work out how
Thanks- I tried this first and kept getting an "argument out of range" error. According to the docs to it's possible.
So why doesn't
'home' -> 'go $1' -> 'go home'
work?
This seems too basic so I've probably missed something obvious, but anyway, if someone could explain this to me I'd appreciate it. thanks again.
Bill
on 3/14/02 11:19 AM, Krzysztof Czaja at czaja@chopin.edu.pl wrote:
hi,
if you know the number of atoms in a message, use just `set $1 $2...' (in this particular case, probably single $1 will suffice)
K.
Bill Orcutt wrote: ...
What options are available for formatting messages? I'm trying to send a set message to throw~ and can't figure out how to prepend "set" to the new object name. Tried packing them into a list but couldn't work out how
i have sort of fixed up the prepend from ggee and for now you ll find it as "cxc.prepend" in http://barely.a.live.fm/pd/cxc/cxc.tgz although for setting a throw~ yu dont need mutliatom set?
also re: dynamic receives, a few lines added to x_connective.c will make it understand a "set" message, the patch is included in cxc and i think its also in ext13 as "r13"?
.xj
Bill Orcutt about [PD] Prepend? / Yesterday
|Hi- | |What options are available for formatting messages? I'm trying to send a set |message to throw~ and can't figure out how to prepend "set" to the |new object name. Tried packing them into a list but couldn't work out how |to convert that to a message suitable for throw~. I also tried makefilename, |and the various string related externals in the zexy lib without success. |Is there anything like max's prepend object? | |thanks | |Bill |
Krzysztof Czaja about Re: [PD] Prepend? / Today
|hi, | |if you know the number of atoms in a message, use just `set $1 $2...' |(in this particular case, probably single $1 will suffice) | |K. | |Bill Orcutt wrote: |... |> What options are available for formatting messages? I'm trying to send a set |> message to throw~ and can't figure out how to prepend "set" to the |> new object name. Tried packing them into a list but couldn't work out how |
this worked. fantastic! thanks.
on 3/14/02 1:28 PM, _-¯-_ at jdl@xdv.org wrote:
i have sort of fixed up the prepend from ggee and for now you ll find it as "cxc.prepend" in http://barely.a.live.fm/pd/cxc/cxc.tgz although for setting a throw~ yu dont need mutliatom set?
also re: dynamic receives, a few lines added to x_connective.c will make it understand a "set" message, the patch is included in cxc and i think its also in ext13 as "r13"?
.xj
Bill Orcutt about [PD] Prepend? / Yesterday
|Hi- | |What options are available for formatting messages? I'm trying to send a set |message to throw~ and can't figure out how to prepend "set" to the |new object name. Tried packing them into a list but couldn't work out how |to convert that to a message suitable for throw~. I also tried makefilename, |and the various string related externals in the zexy lib without success. |Is there anything like max's prepend object? | |thanks | |Bill |
Krzysztof Czaja about Re: [PD] Prepend? / Today
|hi, | |if you know the number of atoms in a message, use just `set $1 $2...' |(in this particular case, probably single $1 will suffice) | |K. | |Bill Orcutt wrote: |... |> What options are available for formatting messages? I'm trying to send a set |> message to throw~ and can't figure out how to prepend "set" to the |> new object name. Tried packing them into a list but couldn't work out how |
I read:
also re: dynamic receives, a few lines added to x_connective.c will make it understand a "set" message, the patch is included in cxc and i think
miller shouldn't this be standard ?
its also in ext13 as "r13"?
these are ~ objects
atb
x
notes.txt: ---------------- dolist -------------------- ... features: ... variable send and receive -- check how max/MSP does it? .
CK wrote: ...
also re: dynamic receives, a few lines added to x_connective.c will make it understand a "set" message, the patch is included in cxc and i think
...
miller shouldn't this be standard ?
It will cause Pd to crash if a "receive" gets reset re-entrantly. I don't know a good way to protect against this...
cheers Miller
On Thu, Mar 14, 2002 at 02:32:14PM +0100, CK wrote:
I read:
also re: dynamic receives, a few lines added to x_connective.c will make it understand a "set" message, the patch is included in cxc and i think
miller shouldn't this be standard ?
its also in ext13 as "r13"?
these are ~ objects
atb
x
-- chris@lo-res.org Postmodernism is german romanticism with better http://pilot.fm/ special effects. (Jeff Keuss / via ctheory.com)