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]> 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]> 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]>> 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>
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
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
Version: 2015.0.6140 / Virus Database: 4435/10790 - Release Date: 10/10/15




Reply via email to