WORK IN PROGRESS!
Microtonalist is a microtuner application that allows tuning musical keyboards and synthesizers in real-time for playing music with microtones. It is build as a stand-alone multi-platform desktop application that runs on JVM.
The application is composed of the following modules:
appwith packageorg.calinburloiu.music.microtonalist: assembles all modules into an application with GUI.cliwith packageorg.calinburloiu.music.microtonalist.cli: command line tool application with various utilities.uiwith packageorg.calinburloiu.music.microtonalist.ui: application UI, mainly GUI, but can also contain some TUI assets.commonwith packageorg.calinburloiu.music.microtonalist.common: common assets, utilities and helpers to be shared between application modules.compositionwith packageorg.calinburloiu.music.microtonalist.composition: domain model of the application around which other modules revolve.configwith packageorg.calinburloiu.music.microtonalist.config: configuration infrastructure based on HOCON.tunerwith packageorg.calinburloiu.music.microtonalist.tuner: module responsible to tune output instruments by using standard Java MIDI library.formatwith packageorg.calinburloiu.music.microtonalist.format: module responsible for reading / writing compositions and other things related to a musical composition to persistence storage. Right now, only files are supported by using JSON and Scala application formats, but in the future we might support cloud storage. Application configuration is handled inappmodule via HOCON files.
Other reusable libraries, not specifically related to the application, are also defined as modules:
businessyncwith packageorg.calinburloiu.businessync: library responsible for providing communication and synchronization between application modules by providing an easy-to-use threading model based on a business logic thread and a UI thread.intonationwith packageorg.calinburloiu.music.intonation: Assets for handling microtonal intervals.sc-midiwith packageorg.calinburloiu.music.scmidi: Scala utility / wrappers over standard Java MIDI library to provide a more idiomatic usage in Scala.
The application is configured via HOCON configuration file
stored in a standard location based on the operation system. On Mac the location is
~/.microtonalist/microtonalist.conf.