NeuralPiano
An experimental study of neural network-based piano music generation.
NeuralPiano is an independent machine learning project exploring how artificial neural networks can learn temporal, melodic, and polyphonic patterns from piano music.
The project uses deep learning to investigate the generation of original piano compositions from learned musical representations.
Research Objective
To investigate whether recurrent neural networks can learn meaningful musical patterns from MIDI compositions and use those patterns to generate new piano sequences.
The initial research focuses on sequence prediction, temporal dependencies, and polyphonic note generation.
Initial Architecture
The first experimental implementation uses a Long Short-Term Memory (LSTM) network.
| Component | Implementation |
|---|---|
| Programming language | Python |
| Deep learning framework | PyTorch |
| Initial architecture | LSTM |
| Musical representation | Piano roll |
| Input | MIDI compositions |
| Output | Predicted piano-roll sequences |
| Export format | MIDI |
Development Roadmap
- v0.1 β Initial LSTM: Implement piano-roll encoding and next-frame prediction.
- v0.2 β Musical Expression: Investigate note duration, velocity, and timing.
- v0.3 β Extended Context: Explore longer musical sequences and phrase structure.
- v0.4 β Transformer Architecture: Investigate attention-based music generation.
- v0.5 β Comparative Evaluation: Compare model architectures and generated compositions.
Experimental Evaluation
NeuralPiano will investigate:
- Training and validation loss.
- Pitch distribution and note diversity.
- Polyphonic structure.
- Musical repetition.
- Temporal coherence.
- Generalization to previously unseen compositions.
Generated compositions will be evaluated rather than assumed to demonstrate musical understanding.
Repository Structure
NeuralPiano/
βββ README.md
βββ LICENSE
βββ requirements.txt
βββ config.py
βββ neural_piano/
β βββ __init__.py
β βββ dataset.py
β βββ model.py
β βββ train.py
β βββ generate.py
β βββ midi_utils.py
βββ checkpoints/
βββ outputs/
βββ experiments/
Research Principles
- Reproducible experiments.
- Transparent reporting of results.
- Proper attribution and licensing of training data.
- Clear separation between implemented features and experimental findings.
- No unsupported claims about musical intelligence.
License
This project is licensed under the MIT License.
Status
Early development β v0.1
The initial LSTM implementation is under development. No trained-model performance or generation results are claimed yet.