Csound Csound-dev Csound-tekno Search About

Re: AI using Csound was Re: a simple per

Date1998-07-03 11:47
FromPedro Batista
SubjectRe: AI using Csound was Re: a simple per
>Awesome code!

youre being too kind :) it wasnt my algorithm; I just ported it; its nothing 
like your excellent examples which have been a huge source of learning and 
inspiration

>Always nice to see something new and bizzare ported to
>Csound.

new, I'm not so sure, but bizarre I hope so!
(this is already in the instruments-to-keep-perfectening-ad-eternum shelf)

>It would seem to me that some of the musical applications of neural nets
>would be:
>
>1. Pitch tracking, identification of chords (major vs minor etc.)
>2. Tempo, rhythm identification.
>3. Formant corrected pitch shifting.
>4. Extraction or removal of vocals from a track.
>5. Removal of reverb from an audio track.

one other aplication I've seen mentioned on the net would be physical 
modelling, and modelling of analogue circuits; maybe one day we'll have 
neural moog's?

>These applications could be implemented as Csound opcodes or perhaps a more
>flexible neural network implementation could be developed.  Maybe a
>perceptron or neural network opcode could be implemented with weights
>supplied in table form so different functions could be implemented with a
>single opcode.

thats a very good sugestion, and I might venture into that with a little 
help from you guys; to be really useful, a neural ugen would have to be 
fully flexible in structure, and data independent, so that it could be used 
to learn about anything, allowing to implement all the above applications; 
problem is still the slowness of the back-prop algo; some faster algorithms 
exist, and when coding in C some reduction to integer math could help 
speeding things up;
there should also be a way of saving the connection weights to a file after 
the net had learned, so that the net could then be used with minimum 
calculation in a real-time instrument, thus separating the learning and 
playing parts

>I have not actually worked much with neural networks but understand that
>they are good at pattern recognition when there is a large diverse data set
>available for training them.  Once they are trained they are fairly
>efficient and very robust.

its all about training; if one finds the perfect set of weights, then you 
can have flawless performance

my imediate goal in this line of instr is to port it to sonic domain more 
effectively; I think it would probably be much more effective to train the 
net in terms of amp and freq (I've been studying the pv utilities and ugens, 
but I still aint certain thats the way to go), even maybe two nets, one for 
each, whose response would be controlling an oscilator (or several :)); I 
also want to introduce some recursiveness (maybe with delay lines) to have 
also some learning of the signal behaviour over time;

but I'm still figuring how to best describe a sound signal... do you think 
the pv utilities are the best way to do this? I cant see other way of 
knowing the frequency of a signal...

I'm also considering a different approach, in which very simple nets are 
used to control oscilators, doing some kind of aditive neural synthesis; 
training oscilators could be done once again by providing aditive 
resynthesis data from the csound utilities

so many ways, so little time :)

pedro