Hi Jos,
I can fill the Temporal Memory with a lot of nice sounding
note-chord combinations from Bachs chorals. But then I have to find
a new chord with a given note. How do I do that?
What about entering each chord as a sequence of notes. Then "resetting"
after each chord - entering each note of the chord; resetting then
entering in the next chord in a song? That way, it will predict a series
of subsequent notes for each note entered.
But remember, the HTM is not a "creative" entity, it predicts or
generalizes. A "generalization" can be composed of elements not
previously combined in a given way, but those individual elements (not
the combination of them), will always be what it has seen before... AFAIK
And what happens with the Temporal Memory when I do that? Does that
trying somehow change the Temporal Memory?
Once you enter the notes, turn off learning.
On Sat, Oct 10, 2015 at 6:28 AM, Jos Theelen <[email protected]
<mailto:[email protected]>
<mailto:[email protected]>> wrote:
Yes, I have seen that video.
I hope I can solve the problem before the enddate of the
HTM-challenge. What I still don't understand is how to get a
prediction of a chord, when the note is known. I can fill the
Temporal Memory with a lot of nice sounding note-chord combinations
from Bachs chorals. But then I have to find a new chord with a given
note. How do I do that?
Should I just try to put the combination of that note with a random
chord in the Temporal Memory and look if it is an anomaly? And try
that for all the possible chords? And pick the chord with the lowest
anomaly-value? That could be a very slow solution. And what happens
with the Temporal Memory when I do that? Does that trying somehow
change the Temporal Memory?
greetings: Jos Theelen
On 2015-10-09 20:27, Matthew Taylor wrote:
That is a very interesting problem. I hope you've seen this video
about music theory with Charlie Gillingham?
https://www.youtube.com/watch?v=tGfDjwSORaw
---------
Matt Taylor
OS Community Flag-Bearer
Numenta
On Fri, Oct 9, 2015 at 11:21 AM, Jos Theelen <[email protected]
<mailto:[email protected]>
<mailto:[email protected]>> wrote:
That probably means, they used a scalarencoder. But their
problem was
different than mine. They had to remember the notes and to
learn which note
came after which other note. For me the combination of
melody and chords
have to sound "nice". Somehow a system has too learn or
remember that.
greetings: Jos Theelen
On 2015-10-09 17:19, Matthew Taylor wrote:
They actually didn't create a NoteEncoder (the codebase
was much less
extensible 2.5 years ago). They wrote a preprocessing
script that
turned the MIDI song file into a scalar input stream. I
don't remember the
details, and their codebase is lost now. But I do
remember that they
needed to remove the "rests" from the input.
---------
Matt Taylor
OS Community Flag-Bearer
Numenta
On Fri, Oct 9, 2015 at 3:15 AM, Jos Theelen
<[email protected] <mailto:[email protected]>
<mailto:[email protected]>> wrote:
Yes, I know it and looked at it. I wondered how they
made a NoteEncoder,
I
am still struggling with that. Nupic says that notes
that are "close" to
each other should have the most overlapping bits.
But what is "close" in
music?
1) a scalarencoder, where the number of the note is
encoded. In this case
"close" means almost the same frequency.
2) 2 scalarencoders, one for the note and a
different one for the octave.
This because a note sounds almost the same as that
same note an octave
lower
or an octave higher.
3) a typical noteencoder and a scalarencoder for the
octave. The
noteencoder
should take the notes in the following cyclical order:
C,G,D,A,E,.....Es,Bes,F,C, each a quint apart. In
this case notes that
are
close together sound better together. C-G sounds
better together than
C-Cis
Probably I should make all 3 encoders, just to test.
greetings: Jos Theelen
On 2015-10-08 15:14, Marek Otahal wrote:
Hi Jos,
On Thu, Oct 8, 2015 at 3:06 PM, Jos Theelen
<[email protected] <mailto:[email protected]>
<mailto:[email protected]>
<mailto:[email protected]<mailto:[email protected]>>> wrote:
I am working on a model, that reads
melodies and chords from
midifiles, mainly chorales from JS Bach.
When the model is given a
new melody without chords, it should find
the chords, that sound
correct, conform what it learned from the
midifiles.
Nice, I love classical music and music related
examples :)
You probably know, but just in case: check out
nupic.audio project and a
former hackathon submission that composed song
on trained MIDI music.
greetings: Jos Theelen
No virus found in this message.
Checked by AVG -www.avg.com <http://www.avg.com/>
<http://www.avg.com <http://www.avg.com/>>
<http://www.avg.com <http://www.avg.com/>>
Version: 2015.0.6140 / Virus Database:
4435/10780 - Release Date:
10/08/15
-----
No virus found in this message.
Checked by AVG -www.avg.com
<http://www.avg.com/><http://www.avg.com <http://www.avg.com/>>
Version: 2015.0.6140 / Virus Database: 4435/10783 -
Release Date: 10/08/15
-----
No virus found in this message.
Checked by AVG -www.avg.com
<http://www.avg.com/><http://www.avg.com <http://www.avg.com/>>
Version: 2015.0.6140 / Virus Database: 4435/10790 - Release
Date: 10/10/15
--
/With kind regards,/
David Ray
Java Solutions Architect
*Cortical.io <http://cortical.io/>*
Sponsor of: HTM.java <https://github.com/numenta/htm.java>
[email protected] <mailto:[email protected]><mailto:[email protected]>
http://cortical.io <http://cortical.io/><http://cortical.io/>
No virus found in this message.
Checked by AVG -www.avg.com <http://www.avg.com/><http://www.avg.com
<http://www.avg.com/>>
Version: 2015.0.6140 / Virus Database: 4435/10790 - Release Date:
10/10/15