tipe-kohonen:tipe-kohonen.git
8 years agoImprove learning settings (give better results)
Alexis Robert [Fri, 25 Jun 2010 15:24:35 +0000 (17:24 +0200)]
Improve learning settings (give better results)

8 years agoAdd AudioCollection::print_clusters() which outputs using CSV.
Alexis Robert [Fri, 25 Jun 2010 14:53:21 +0000 (16:53 +0200)]
Add AudioCollection::print_clusters() which outputs using CSV.

8 years agoCreate seed_init();
Alexis Robert [Fri, 25 Jun 2010 14:46:40 +0000 (16:46 +0200)]
Create seed_init();

8 years agoWe now fill clusters info for a collection
Alexis Robert [Fri, 25 Jun 2010 14:41:11 +0000 (16:41 +0200)]
We now fill clusters info for a collection

8 years agoPointers > References :)
Alexis Robert [Fri, 25 Jun 2010 14:35:05 +0000 (16:35 +0200)]
Pointers > References :)

8 years agoNow AudioCollection can compute cepstral features and learn them.
Alexis Robert [Fri, 25 Jun 2010 14:33:51 +0000 (16:33 +0200)]
Now AudioCollection can compute cepstral features and learn them.

8 years agoWe now store cepstrums inside the AudioFile.
Alexis Robert [Fri, 25 Jun 2010 13:09:29 +0000 (15:09 +0200)]
We now store cepstrums inside the AudioFile.

8 years agoAdd an AudioCollection class to parse m3u and manage music collections.
Alexis Robert [Fri, 25 Jun 2010 12:44:45 +0000 (14:44 +0200)]
Add an AudioCollection class to parse m3u and manage music collections.

8 years agoRandom useless things
Alexis Robert [Fri, 25 Jun 2010 09:53:57 +0000 (11:53 +0200)]
Random useless things

8 years agoAdd AudioFile::undecode() to free the decoded samples which are useless after learnin...
Alexis Robert [Fri, 25 Jun 2010 09:47:52 +0000 (11:47 +0200)]
Add AudioFile::undecode() to free the decoded samples which are useless after learning due to metadatas.

8 years agoAdd a NetworkVector class which contains a metadata attribute to store the audiofile...
Alexis Robert [Fri, 25 Jun 2010 09:32:57 +0000 (11:32 +0200)]
Add a NetworkVector class which contains a metadata attribute to store the audiofile stored in this neuron. Also fix a bug when no audio file was present (bad initialisation of the doubles).

8 years agoStore the cluster in AudioFile for easier computing
Alexis Robert [Fri, 25 Jun 2010 09:05:37 +0000 (11:05 +0200)]
Store the cluster in AudioFile for easier computing

8 years agoNow the cepstrum is not more filled with NaN values : cepstrum is correctly computed.
Alexis Robert [Thu, 24 Jun 2010 17:48:25 +0000 (19:48 +0200)]
Now the cepstrum is not more filled with NaN values : cepstrum is correctly computed.

In fact, as we do FFT on a VERY LARGE dimension, the amplitude of the
signal component on some frequencies was equal to zero. When we
log()-geed the FFT result in order to compute the cepstrum, it resulted
in a -inf component. So, libfftw3 outputed NaN as a result.

8 years agoAdd an iterator to Vectors (untested!)
Alexis Robert [Thu, 24 Jun 2010 17:28:24 +0000 (19:28 +0200)]
Add an iterator to Vectors (untested!)

8 years agoUse libfftw3 to compute discrete cosine tranforms.
Alexis Robert [Thu, 24 Jun 2010 17:28:04 +0000 (19:28 +0200)]
Use libfftw3 to compute discrete cosine tranforms.

8 years agoUse double instead of float. We don't have any dimension issue now due to using cepst...
Alexis Robert [Thu, 24 Jun 2010 16:59:50 +0000 (18:59 +0200)]
Use double instead of float. We don't have any dimension issue now due to using cepstrum instead of direct FFT.

8 years agoBegin the clustering part
Alexis Robert [Thu, 24 Jun 2010 16:37:37 +0000 (18:37 +0200)]
Begin the clustering part

8 years agoThis IS a real low-pass filter :)
Alexis Robert [Wed, 23 Jun 2010 22:07:42 +0000 (00:07 +0200)]
This IS a real low-pass filter :)

8 years agoThis may be a MFCC (without the mel-scale part) implementation, with a low pass filte...
Alexis Robert [Wed, 23 Jun 2010 21:57:19 +0000 (23:57 +0200)]
This may be a MFCC (without the mel-scale part) implementation, with a low pass filter. BUT I may be wrong.

8 years agoOk, I need to be careful when modifying old code which worked.
Alexis Robert [Wed, 23 Jun 2010 17:47:39 +0000 (19:47 +0200)]
Ok, I need to be careful when modifying old code which worked.

8 years agoNo more segfaults/double-free issues ! Programming can continue ! :D
Alexis Robert [Wed, 23 Jun 2010 17:28:25 +0000 (19:28 +0200)]
No more segfaults/double-free issues ! Programming can continue ! :D

8 years agoSegfault fixed, we now have a double-free() issue.
Alexis Robert [Wed, 23 Jun 2010 17:24:21 +0000 (19:24 +0200)]
Segfault fixed, we now have a double-free() issue.

8 years agoFix a segfault to unveil one in FFT.cpp
Alexis Robert [Wed, 23 Jun 2010 16:33:50 +0000 (18:33 +0200)]
Fix a segfault to unveil one in FFT.cpp

8 years agoUse QLinkedList where QVector array structure is useless
Alexis Robert [Sat, 29 May 2010 14:17:16 +0000 (16:17 +0200)]
Use QLinkedList where QVector array structure is useless

8 years agoSome changes to enable learning a file.
Alexis Robert [Sat, 29 May 2010 13:39:46 +0000 (15:39 +0200)]
Some changes to enable learning a file.

 - Add FFT::setAudioFile() to change the AudioFile without recreating
 the fftw3 plan.
 - Revert to FFTW_ESTIMATE as FFTW_MEASURE is very slow on big
 dimensions (like dim E = 330750)
 - Now popComplex() checks if we're at the end of the AudioFile
 - Add a BUGGY FFT::popAllNorm() which will do popNorm() until we reach
 the end of the AudioFile and store the result in a QVector. This
 function doesn't work yet !
 - Add FFT::isatend() which returns true if we're at the end of the
 AudioFile

8 years agoStart using Doxygen
Alexis Robert [Sat, 29 May 2010 13:15:56 +0000 (15:15 +0200)]
Start using Doxygen

8 years agoAdd a warning for the internal data type of Vector
Alexis Robert [Sat, 29 May 2010 11:18:45 +0000 (13:18 +0200)]
Add a warning for the internal data type of Vector

8 years agoLife is a matter of iterator and death.
Alexis Robert [Sat, 29 May 2010 11:07:13 +0000 (13:07 +0200)]
Life is a matter of iterator and death.

8 years agoMigrate FFT::popNorm() from QVector<> to Vector
Alexis Robert [Sat, 29 May 2010 10:55:13 +0000 (12:55 +0200)]
Migrate FFT::popNorm() from QVector<> to Vector

8 years agoAdd FFT::popNorm() which computes the norm of the FFT output vector for
Alexis Robert [Sat, 29 May 2010 10:47:51 +0000 (12:47 +0200)]
Add FFT::popNorm() which computes the norm of the FFT output vector for
further processing.

8 years agoChange visibility of popComplex() to private as it returns a pointer
Alexis Robert [Sat, 29 May 2010 10:39:47 +0000 (12:39 +0200)]
Change visibility of popComplex() to private as it returns a pointer
which is managed and freed by the FFT class.

8 years agoChange FFTW_ESTIMATE to FFTW_MEASURE
Alexis Robert [Sat, 29 May 2010 10:39:10 +0000 (12:39 +0200)]
Change FFTW_ESTIMATE to FFTW_MEASURE

8 years agoMove the creating plan code into FFT constructor : should be more efficient.
Alexis Robert [Sat, 29 May 2010 10:37:22 +0000 (12:37 +0200)]
Move the creating plan code into FFT constructor : should be more efficient.

8 years agoAdd the beginning of FFT class which will handle fast fourier transforms of the audio...
Alexis Robert [Sat, 29 May 2010 10:32:09 +0000 (12:32 +0200)]
Add the beginning of FFT class which will handle fast fourier transforms of the audio signal (we use fftw3 of course)

8 years agoI'll add the FFT part tomorrow :)
Alexis Robert [Thu, 27 May 2010 19:59:03 +0000 (21:59 +0200)]
I'll add the FFT part tomorrow :)

8 years agoFix a stupid bug : I was pushing into the samples vector a little more data than...
Alexis Robert [Thu, 27 May 2010 13:25:26 +0000 (15:25 +0200)]
Fix a stupid bug : I was pushing into the samples vector a little more data than the number of decoded samples, which resulted in a lot of zeros in the final QVector.

8 years agoNow we store audio samples in a QVector inside the AudioFile class
Alexis Robert [Thu, 27 May 2010 12:58:22 +0000 (14:58 +0200)]
Now we store audio samples in a QVector inside the AudioFile class

8 years agoMoving audio decoding/ffmpeg code to AudioFile class
Alexis Robert [Thu, 27 May 2010 12:46:37 +0000 (14:46 +0200)]
Moving audio decoding/ffmpeg code to AudioFile class

8 years agoDecoding audio frames
Alexis Robert [Thu, 27 May 2010 12:41:57 +0000 (14:41 +0200)]
Decoding audio frames

8 years agoFetching audio frames
Alexis Robert [Thu, 27 May 2010 12:25:51 +0000 (14:25 +0200)]
Fetching audio frames

8 years agoWe now fetch the first audio stream and open the appropriate codec
Alexis Robert [Thu, 27 May 2010 10:42:58 +0000 (12:42 +0200)]
We now fetch the first audio stream and open the appropriate codec

8 years agoNow we show the container stream info of the input file
Alexis Robert [Thu, 27 May 2010 10:31:35 +0000 (12:31 +0200)]
Now we show the container stream info of the input file

8 years agoAdd extern "C" {} to enable linking with ffmpeg
Alexis Robert [Thu, 27 May 2010 10:15:14 +0000 (12:15 +0200)]
Add extern "C" {} to enable linking with ffmpeg

8 years agoTrying to implement audio decoding using ffmpeg
Alexis Robert [Thu, 27 May 2010 09:41:46 +0000 (11:41 +0200)]
Trying to implement audio decoding using ffmpeg

8 years agoAdd proper methods for learning several vectors
Alexis Robert [Wed, 26 May 2010 22:29:24 +0000 (00:29 +0200)]
Add proper methods for learning several vectors

8 years agolearning_macros.h is a far better name
Alexis Robert [Wed, 26 May 2010 22:14:31 +0000 (00:14 +0200)]
learning_macros.h is a far better name

8 years agoWe now implement the learning iteration coefficient in the learning
Alexis Robert [Wed, 26 May 2010 22:08:28 +0000 (00:08 +0200)]
We now implement the learning iteration coefficient in the learning
algorith

8 years agoAdd the beginning of the learning algorithm.
Alexis Robert [Wed, 26 May 2010 22:06:47 +0000 (00:06 +0200)]
Add the beginning of the learning algorithm.

8 years agoRemoving some floody and useless debug messages.
Alexis Robert [Wed, 26 May 2010 21:12:40 +0000 (23:12 +0200)]
Removing some floody and useless debug messages.

8 years agoInitiate the seed of the random number generator using time()
Alexis Robert [Wed, 26 May 2010 20:25:57 +0000 (22:25 +0200)]
Initiate the seed of the random number generator using time()

8 years agoThe next time you see me, insult me for not being able to program a
Alexis Robert [Wed, 26 May 2010 20:25:23 +0000 (22:25 +0200)]
The next time you see me, insult me for not being able to program a
"find the minimum" algorithm.

8 years agoInitial commit, nearly usable Kohonen Matrix
Alexis ROBERT [Wed, 26 May 2010 16:43:00 +0000 (18:43 +0200)]
Initial commit, nearly usable Kohonen Matrix