Package project

The project aims to explore the use of Particle Swarm Optimization (PSO) to optimize the performance of Echo State Networks (ESNs) on music generation tasks. The project combines elements of computational optimization, machine learning, and music theory to create a system that can generate novel and coherent musical compositions.

Sub-modules

project.PSO
Implements the PSO algorithm, including classes for particles and landscapes. It provides a framework for optimizing the parameters of the ESN using the PSO algorithm.
project.esn
Implements the core components of the ESN, including the network architecture, training algorithms, and update rules. It provides a flexible framework for constructing and training ESNs for a variety of tasks.
project.expander
Defines a class (`Expander`) that generates a Cartesian product of a given dictionary of parameters and a name generator function. This is used to create a set of configurations for the PSO to explore.
project.music_gen
Defines data structures and functions for representing and generating musical sequences. It includes classes for notes, chords, and musical patterns, as well as methods for manipulating and generating musical content.
project.parse_midi
Provides functions for parsing MIDI files into a format suitable for use by the ESN. This includes pre-processing and post-processing steps to ensure data consistency and quality.
project.stats
Provides statistical functions and metrics for evaluating the performance of the ESN on music generation tasks. This includes measures of accuracy, diversity, and coherence.
project.test
Contains unit tests for the various modules in the project, ensuring the correctness and reliability of the code.