TZEcosystem
TZEcosystem
A unified ecosystem for the Tonnetz musical instrument family, featuring shared control architecture, web-based interfaces, and browser-based simulation.
Overview
TZEcosystem provides:
- Shared firmware components for TZ5_30cm (no audio) and TZ7 (cap touch, audio)
- Web-based control panel for parameter management and device coordination
- Browser-based simulator (planned) for audio/visual demonstration and parameter tuning
- Mesh-first networking enabling multi-device synchronization
Folder Structure
TZEcosystem/
├── docs/ # Documentation
│ ├── architecture.md # System architecture
│ ├── protocol.md # Binary protocol specification
│ ├── configuration.md # Configuration parameters
│ └── roadmap.md # Future development plans
│
├── shared/ # Shared firmware code
│ ├── tz_config.h # Unified configuration structure
│ ├── tz_protocol.h # Message protocol definitions
│ ├── tz_ca_engine.h # Cellular automata engine
│ ├── tz_tonnetz.h # 13x13 grid mapping
│ ├── tz_led.h # FastLED abstraction
│ └── tz_network.h # Network layer abstraction
│
├── firmware/
│ ├── TZ5_30cm/ # TZ5 variant (no audio)
│ └── TZ7/ # TZ7 variant (cap touch, audio)
│
├── control-panel/ # Web control interface
│ ├── docker-compose.yml
│ ├── frontend/
│ ├── backend/
│ └── db/
│
└── simulator/ # Browser-based audiovisual simulator
├── index.html
├── js/
└── css/
Quick Start
Firmware Development
- Install PlatformIO
- Navigate to desired firmware variant:
cd firmware/TZ5_30cm # or cd firmware/TZ7 - Build and upload:
pio run -t upload
Control Panel
- Install Docker and Docker Compose
- Navigate to control-panel:
cd control-panel docker-compose up -d - Access at
http://localhost:3000
Simulator
See docs/simulator-requirements.md for scope and requirements. Implementation will live under simulator/.
Legacy Web Stack
The tonnetz_web_docker + TZ5_30cm_Hex pairing is the legacy PHP/MariaDB control pipeline.
The new control panel in control-panel/ supersedes it, but compatibility endpoints are documented
in docs/simulator-requirements.md for simulator parity testing.
Network Architecture
TZEcosystem uses a mesh-first architecture with graceful fallback:
- Mesh Mode (Primary): Devices sync via UDP broadcast on local network
- Server Mode (Optional): Central control panel for studio environments
- Standalone Mode: Single device, full local operation
- AP Mode: Device creates hotspot for configuration
Configuration
All configuration parameters are documented in docs/configuration.md. Key parameters include:
| Parameter | Type | Description |
|---|---|---|
| bpm | float | Tempo in beats per minute |
| max_pop | int | Maximum active cells |
| min_pop | int | Minimum active cells |
| rate | int | CA update rate (ms) |
| note_duration | int | Note length (ms) |
| update_pattern | enum | Cell selection pattern |
| arp_mode | enum | Arpeggiator mode |
Protocol
Binary protocol specification in docs/protocol.md. Magic bytes: 0x54 0x5A (“TZ”).
Packet types:
0x01: Configuration0x02: State update0x03: Sync message
License
[Specify your license here]
Contributing
[Contribution guidelines]
Recent Activity
18da50bbasic tonnetz web sim working, plan developing for new user interface, and integ (2026-01-19)d74be67basic tonnetz web sim working, plan developing for new user interface, and integ (2026-01-19)
Languages
- C: 34%
- JavaScript: 32%
- C++: 16%
- HTML: 10%
- CSS: 8%