In progress
harmonova-core
The deterministic music-theory and beat-generation core is the center of the system and is kept free of Spring, AI, and audio dependencies.
Project
Production-oriented intelligent music-system architecture
Harmonova explores how deterministic domain models, retrieval, AI orchestration, and specialized analysis services can work together in a production-oriented intelligent system.
Music theory stays inside a pure Java core, while AI components handle interpretation, planning, and recommendations around verified facts instead of becoming the source of musical truth.
LLMs are helpful for conversational composition workflows, but they are unreliable for exact scale spelling, chord progressions, or deterministic beat-generation rules on their own.
At the same time, audio, DSP, and ML workloads can quickly pollute an otherwise clean domain core unless their boundaries are enforced deliberately.
Harmonova keeps theory and beat logic inside a deterministic domain core, then exposes that core through MCP tools and service APIs where orchestration is useful.
A Spring Boot layer coordinates tutor and beat-maker flows with retrieval, provider routing, and tool use, while a separate Python service handles audio-analysis workloads behind a narrow boundary.
The system is organized around four codebases: harmonova-core, harmonova-mcp-server, harmonova, and harmonova-audio-analysis-service.
The web application and MCP server depend on harmonova-core, while the Python audio-analysis service stays outside that dependency graph and is reached through a thin HTTP boundary.
Agent workflows are designed around a PLAN -> FACTS -> RAG -> COMPOSE -> VERIFY -> EMIT pipeline so model output can be checked against deterministic tools and retrieved context.
In progress
The deterministic music-theory and beat-generation core is the center of the system and is kept free of Spring, AI, and audio dependencies.
In progress
The MCP server wraps deterministic core operations so model-facing orchestration can use tools without polluting the domain layer.
In progress
The Spring Boot application carries REST endpoints, agents, retrieval, provider routing, and the user-facing orchestration layer.
In progress
The Python and FastAPI audio-analysis service contains the DSP and ML workload that intentionally sits outside the pure domain core.
Music theory, beat composition parameters, and fact verification remain in the pure Java core so the AI layer cannot invent exact musical facts.
Tool definitions stay in the MCP server, which makes the domain core reusable without dragging web or AI concerns into it.
The tutor and beat-maker flows use retrieved material to ground prompts rather than relying on unconstrained model generation.
Keeping audio analysis outside the Java core reduces domain pollution at the cost of another service boundary.
Polyrepo ownership, MCP transport, vector storage, and the Python service make the system more modular, but also more operationally involved.
Ollama, pgvector, reranking, and observability can stay self-hosted, but that local-first posture still brings setup overhead that a simpler demo would avoid.
The design deliberately prevents the LLM from becoming the source of musical truth, which improves correctness but can slow down rapid prototyping.
Active development centers on a pure Java core for scales, chord progressions, melody analysis, seeded beat composition, and MIDI-oriented domain operations.
The tutor and beat-maker flows are being built so Spring AI agents plan and explain around deterministic tools instead of inventing theory facts.
RAG, local retrieval components, and MCP tools provide the grounding layer around the core domain model.
Audio-analysis and ML workloads are being kept in a separate Python service so the core and orchestration layers stay focused.
The roadmap includes moving beyond heuristic genre and mood analysis toward a stronger classification path.
Harmonova is an active experimental system. This page distinguishes the deterministic core, the services being developed around it, and the roadmap still ahead.