|
>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 |