# Orphia
Orphia is an experimental AI music-generation project built as a notebook-based machine-learning exploration. The repository contains a Jupyter notebook together with a dataset, generated results, and sound-font assets.
The project is best understood as an experiment in symbolic music generation: instead of treating music only as raw audio, the notebook works with structured musical information and explores how a neural sequence model can learn patterns from existing compositions and generate new musical sequences.
Unlike the newer application-oriented projects in this portfolio, Orphia is intentionally research-oriented and is preserved as an archived experiment.
## Technologies
### Python
Provides the implementation environment for the machine-learning and music-processing workflow.
### Jupyter Notebook
Serves as the primary development and experimentation environment. The repository is centered around `Orphia.ipynb`.
### TensorFlow / Keras
Provides the neural-network framework used for sequence-model experimentation in the notebook.
### LSTM
Used as the sequence-modeling approach for learning temporal relationships in musical data.
### music21
Provides symbolic music manipulation and analysis, making it possible to work with notes and musical structures instead of only raw audio samples.
### NumPy
Provides numerical processing for preparing and transforming model inputs and outputs.
### Librosa
Provides audio-related utilities used in the broader music-processing workflow.
### SoundFont assets
Support conversion or playback of generated symbolic musical sequences as audible results.
## Architecture
The project is organized more like an experimental data pipeline than a production web application.
```text
┌────────────────────┐
│ Musical Dataset │
└─────────┬──────────┘
│
▼
┌────────────────────┐
│ Music Preprocessing│
│ / Representation │
└─────────┬──────────┘
│
▼
┌────────────────────┐
│ Sequence Dataset │
└─────────┬──────────┘
│
▼
┌────────────────────┐
│ LSTM Model │
│ TensorFlow/Keras │
└─────────┬──────────┘
│
▼
┌────────────────────┐
│ Generated Music │
│ / Note Sequences │
└─────────┬──────────┘
│
▼
┌────────────────────┐
│ MIDI / Playback │
│ + SoundFont assets │
└────────────────────┘
```
## Experiment Workflow
### Dataset preparation
The notebook loads the available musical material and transforms it into a representation appropriate for sequence learning.
### Sequence creation
Musical elements are converted into ordered sequences so the model can learn temporal dependencies.
### Model training
An LSTM-based neural network is trained to predict subsequent musical events from preceding context.
### Generation
A seed sequence is passed through the trained model to generate new musical content.
### Rendering
Generated symbolic music can be written to a playable representation and rendered with the repository's audio/sound-font resources.
## Repository Structure
```text
Orphia-Notebook/
├── dataset/
├── results/
├── sound_font/
├── Orphia.ipynb
└── .gitignore
```
## Running the Experiment
Because the project is notebook-oriented rather than packaged as a production application, the intended workflow is:
1. Clone the repository.
2. Install the Python dependencies used by the notebook.
3. Open `Orphia.ipynb` in Jupyter.
4. Run the data preparation and training cells.
5. Generate sequences.
6. Inspect the generated results and render them using the included audio resources.
The exact dependency versions should be treated as part of the original experiment rather than assuming a modern production setup.
## Why this project matters
Orphia represents an earlier exploration of generative AI and sequence modeling. It is useful in the portfolio because it shows a progression from experimenting with neural generative systems at the notebook level to building more complete developer-facing AI systems such as TestIQ, Next Flow, and KodaArc.
The project is therefore presented as an experiment and learning artifact rather than an actively maintained product.
Orphia
archivedAn experimental music-generation project that trains an RNN-LSTM model on symbolic music to generate new melodies.

Technologies & Frameworks
PythonJupyter NotebookTensorFlowKerasmusic21LibrosaNumPy