// Źródła i podziękowania

Zbudowane na ramionach gigantów.

MelodyMatrix stoi na górze open-source'owej pracy społeczności Java, Kotlin i JavaFX. Ogromne podziękowania dla wszystkich, których biblioteki i narzędzia to umożliwiły.

Website

Apache Commons Validator
Apache Commons Validator provides building blocks for server-side data validation in the MelodyMatrix backend.
Flyway by Redgate
Flyway manages the database schema migrations for the MelodyMatrix backend.
Hugo, the static site generator
Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.
Line Awesome by Parttio
Line Awesome brings the Line Awesome icon set to Vaadin. It provides the icons used throughout my.melodymatrix.rocks.
MailerSend Java SDK
The MailerSend Java SDK sends transactional emails from the MelodyMatrix backend.
Spring Boot
Spring Boot is the Java framework behind the MelodyMatrix backend and its REST API at api.melodymatrix.rocks.
springdoc-openapi
springdoc-openapi generates the OpenAPI documentation and Swagger UI for the MelodyMatrix REST API.
Vaadin, the Java web framework used for my.melodymatrix.rocks
Business apps shouldn't suck. With Vaadin you can craft stunning full-stack web apps at lightning speed. Scaling from hobby projects to enterprise.

Logging & utilities

Apache Log4j
Apache Log4j is a Java logging framework. MelodyMatrix uses it across its desktop modules for structured, configurable log output.

UI & styling

AtlantaFX by mkpaz
Modern JavaFX CSS theme collection with additional controls.
BentoFX by Matt Coley
A docking system for JavaFX.
Charts by Gerrit Grunwald
A library for scientific charts in JavaFX.
FXGL by Almas Baim
JavaFX Game Development Framework. Almas created the first version of the piano view with FXGL.
Ikonli by Kordamp
Ikonli provides icon packs that can be used in Java applications. Currently Swing and JavaFX UI toolkits are supported.
Lottie4J
Lottie4J is a library for parsing Lottie animations as Java objects and playing them as JavaFX animations.
OpenJFX, the Java client application platform
JavaFX is a software platform for creating and delivering user interface applications that can run across a wide variety of devices. It is part of the OpenJDK project and is intended for use by Java developers to design graphical user interfaces (GUI).
PDFViewFX by Dirk Lemmermann
A custom control that allows an application to display PDF files. The control utilizes Apache's PDFBox project.

Machine learning

Basic Pitch by Spotify
Basic Pitch is a lightweight neural network from Spotify's Audio Intelligence Lab that detects the notes played by any instrument in a recording. MelodyMatrix uses it for the fast mode of the audio-to-MIDI converter.
ONNX Runtime by Microsoft
ONNX Runtime is a cross-platform engine for running machine learning models. MelodyMatrix uses its Java API to run the audio-to-MIDI transcription models fully locally on macOS, Windows and Linux, so your recordings never leave your computer.
Transkun by Yujia Yan
Transkun is a piano transcription model that combines a transformer with a neural semi-CRF to turn piano audio into notes, including velocity and sustain pedal. MelodyMatrix uses its pretrained model for the accurate piano mode of the audio-to-MIDI converter. The pretrained model was trained on the MAESTRO dataset, which is licensed CC BY-NC-SA 4.0.

Media & content

commonmark-java
Java library for parsing and rendering Markdown text according to the CommonMark specification (and some extensions).
javacv for FFmpeg integration
JavaCV uses wrappers from the JavaCPP Presets of commonly used libraries by researchers in the field of computer vision (OpenCV, FFmpeg,...) and provides utility classes to make their functionality easier to use on the Java platform.

Music & MIDI

Free Piano Soundfonts on Zanderjaz
SoundFonts are files that contain collections of audio samples used to play MIDI files, allowing for different instrument sounds in music production. They enable users to change the sound of MIDI compositions by swapping out the SoundFont being used, similar to changing fonts in a text document. A few free sound fonts from Zanderjaz are included in MelodyMatrix. You can get more from that or other websites who provide such .sf2 files.
Guitar Chord Fingers Dataset
Position of the fingers for 2633 guitar chords in standard tuning.
ktmidi by Atsushi Eno
ktmidi is a Kotlin Multiplatform library for MIDI Access API and MIDI data processing that covers MIDI 1.0 and MIDI 2.0.
Sheetmusic4J
Sheetmusic4J is a Java(FX) library for rendering and interacting with sheet music, including MusicXML and MIDI import/export. MelodyMatrix uses it for the sheet music view.

Build & distribution

JDeploy by Steve Hannah
Developer friendly desktop deployment tool. Distribute your Java app as a native bundle. Deploy to Mac, Linux, and Windows users without the usual hassles.

Hardware & I/O

jSerialComm by Fazecast
jSerialComm provides platform-independent serial port access for Java. MelodyMatrix uses it to drive the LED strip controller over a serial connection.

Languages & runtimes

Kotlin
Kotlin is a cross-platform, statically typed, general-purpose high-level programming language with type inference. Kotlin is designed to interoperate fully with Java.
OpenJDK, the Java programming language and runtime
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let application developers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.

I szczególne podziękowania dla pewnego 14-letniego pianisty za oryginalny pomysł, niekończące się testy i żądanie, by stać się "niesamowicie bogatym". Nad tym "bogatym" kawałkiem nadal pracujemy.