ChaoSophia
A recursive musical journey through chaos and wisdom.

Overview
ChaoSophia is an interactive musical application that allows users to explore the relationship between visual glyphs and musical patterns. Each glyph represents a unique melody that can be played, manipulated, and exported.
Features
- Interactive Glyph Visualizer: Visual representation of musical patterns with real-time animation
- Multiple Glyphs: Four unique glyphs (Spiral, Puzzle, Feather, Crystal) each with their own melody
- Instrument Selection: Choose from five different instrument sounds
- Tempo Control: Adjust playback speed from 40-240 BPM
- Volume Control: Adjust volume or mute the audio
- MIDI Export: Export melodies as MIDI files for use in other applications
- Music Notation: View the musical notation for each glyph melody
- Responsive Design: Works on desktop and mobile devices
- Fullscreen Mode: Immersive experience with touch gestures
- Touch Gestures:
- Swipe to change glyphs
- Pinch to zoom the visualizer
- Double-tap to reset zoom
- Echo Composer: Create and play custom melodies using ABC notation
Echo Composer
The Echo Composer allows you to create, edit, play, and save custom melodies using ABC notation.

Features:
- ABC Notation Editor: Write and edit melodies using the ABC notation standard
- Real-time Music Notation: See your melody rendered as standard music notation
- Instrument Selection: Choose from different instrument sounds
- Playback Controls: Play and stop your melody
- Sample Melodies: Load pre-made melodies as starting points
- Save Functionality: Save your compositions to the cloud
- Clipboard Support: Paste ABC notation from other sources
Getting Started
Prerequisites
- Node.js 18.0.0 or higher
- npm or yarn
Installation
-
Clone the repository:
```bash
git clone https://github.com/jgwill/Ava8.git
cd Ava8
```
- Install dependencies:
```bash
npm install
or
yarn
```
- Start the development server:
```bash
npm run dev
or
yarn dev
```
- Open your browser and navigate to
http://localhost:3000
Usage
Playing Melodies
- Select a glyph using the tabs or by swiping left/right on mobile
- Press the Play button to start the melody
- Adjust tempo and volume using the sliders
- Change instruments using the dropdown menu
Exporting MIDI
- Select the glyph melody you want to export
- Set your desired tempo
- Click the Download button
- The MIDI file will be saved to your device
Using the Echo Composer
- Navigate to the Composer page
- Write your melody using ABC notation in the text area
- Select an instrument from the dropdown
- Click Play to hear your melody
- Enter a name and click Save to store your composition
Fullscreen Mode
- Click the Fullscreen button in the top right corner of the visualizer
- Use touch gestures to interact with the visualizer:
- Swipe left/right to change glyphs
- Pinch to zoom in/out
- Double-tap to reset zoom
- Press ESC or click the Minimize button to exit fullscreen
Technologies Used
- Next.js: React framework for the application
- Web Audio API: For sound generation and processing
- ABCJS: For rendering music notation
- MIDI Writer JS: For MIDI file generation
- Tailwind CSS: For styling
- Lucide React: For icons
- Radix UI: For accessible UI components
- Upstash Redis: For storing user compositions
License
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). This means you are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made.
- NonCommercial — You may not use the material for commercial purposes.
CREDITS
Author
Created by Guillaume Descoteaux-Isabelle, (github: jgwill)
Contributors
- Gerico Tremblay, (github: gerico1007)
Acknowledgments
This project is a fork of the original Ava8 Glyph Symphony, with modifications and enhancements.
```
What next ?
- Good question, for sure, I, Guillaume, love to quick draft few lyrics and have some notes on them….