OnKey: Leer de liedjes die je leuk vindt zingen

OnKey is een gratis, open-source zangtrainer voor de Mac. Je kunt een nummer afspelen in Spotify, Apple Music of YouTube via een browser en hierop meezingen. De eerste keer krijg je de songtekst te zien en OnKey leert de melodie van de zanger zodra het nummer eindigt. Daarna scrollen de noten naar je toe, wordt jouw toonhoogte over de noten getekend en ontvang je een score met een rapport per regel.

OnKey biedt, streamt of downloadt zelf geen muziek; je eigen muziek-app speelt de audio af.

Installatie

Systeemvereisten:

  • Een Mac met Apple Silicon (M1 of later).
  • macOS 14.2 of later.

Stappenplan:

  1. Download OnKey.dmg (vanuit de nieuwste release).
  2. Open het bestand en sleep OnKey naar de map Applicaties.

Tijdens de installatie vraagt de software om toegang tot de microfoon (om je te horen) en tot het opnemen van systeemaudio (om de muziek-app te horen). Daarnaast wordt gevraagd of OnKey Spotify en Apple Music mag volgen; kies voor "Listen only" als de app nummers uitsluitend op basis van het geluid moet herkennen.

Voor meer informatie kun je de 'Getting started'-gids volgen of de FAQ raadplegen.

Hoe het werkt

Wanneer een nummer eindigt, leert OnKey dit op je Mac via het volgende proces:

  • Een model scheidt de leadzang van de muziek.
  • CREPE volgt de toonhoogte van de zanger.
  • Het GAME-notenmodel zet dit om in één maat per lettergreep.

Bij volgende afspeelbeurten vindt de app automatisch de juiste plek via de muziek zelf en volgt deze jouw stem live. Het zingen van een octaaf lager wordt geaccepteerd en een kleine vertraging in timing wordt niet bestraft.

Privacy

OnKey bewaart de muziek die het analyseert nooit; het geluid wordt in het geheugen geanalyseerd terwijl het wordt afgespeeld. Jouw opnames en de nummers die de app leert, blijven op je Mac staan (houd er rekening mee dat een opname via luidsprekers ook delen van de muziek kan bevatten). Er is geen account, er is geen analytics en er is geen crash-rapportage.

De volgende externe verzoeken worden wel verzonden:

  • Shazam (Apple): Een korte signatuur van het geluid van de muziek-app (niet de volledige audio en nooit via de microfoon) om een nummer te benoemen dat OnKey nog niet kent wanneer de muziek-app deze informatie niet verstrekt.
  • LRCLIB: De artiest, titel, album en lengte van het nummer om de songteksten op te halen.
  • iTunes Search and Lookup (Apple): De artiest en titel, of de ID die door Shazam is teruggegeven, voor hoesjes en de lengte van het nummer. Hoesjes worden geladen via de image-hosts van Spotify, Apple of YouTube.
  • GitHub: Een controle op een nieuwe versie één minuut na het opstarten en vervolgens eenmaal per dag, inclusief de download daarvan.

In de instellingen staat een schakelaar voor Shazam, voor songteksten en voor de update-controle. Een volledig overzicht van wat OnKey bewaart en verzendt is te vinden bij Privacy, en alle webadressen in een release staan vermeld in scripts/release-hosts.txt.

OnKey eerlijk gebruiken

OnKey is bedoeld om thuis te oefenen met muziek die je gerechtigd bent af te spelen. We vragen je om het volgende in acht te nemen:

  • Houd geleerde data privé: De transcriptie van de melodie van elk nummer is bedoeld voor eigen oefening; deel of publiceer deze niet.
  • Het delen van opnames: Om een take te delen, gebruik je de functie 'Share' op de betreffende pagina. Hiermee wordt een korte video gemaakt van je stem en je toonhoogte-lijn, zonder muziek. Je kunt vervolgens het nummer toevoegen via de muziekbibliotheek van Instagram, die hiervoor gelicenseerd is. Opnames met een koptelefoon werken het best; bij opnames via luidsprekers kan een deel van het originele nummer in je opname terechtkomen. Plaats geen schermopnames waarbij de muziek meespeelt.
  • Professioneel gebruik: Gebruik een gelicenseerde karaoke-service voor een bar of evenement. De songteksten van OnKey komen uit een gratis community-database.
  • Geen aanpassingen: Pas OnKey niet aan om muziek op te slaan.

Rechtenhouders kunnen contact opnemen via hello@singonkey.app (zie LEGAL.md).

Help

Gebruik de functie 'Report a problem' in de app (via Instellingen, het Help-menu of de pagina van een opname). Hiermee wordt een zip-bestand met logs en cijfers op je Mac opgeslagen, zonder audio of opnames van jou, zodat je dit eventueel aan een 'issue' kunt toevoegen.

Veelvoorkomende problemen worden behandeld in de 'Troubleshooting'-sectie. Voor vragen of meldingen van nummers die niet synchroon lopen, kun je terecht in de Discord van OnKey of mailen naar hello@singonkey.app.

Bouwen vanuit broncode

Voor wie liever een eigen build maakt, is dat mogelijk. Je hebt een Mac met Apple Silicon nodig, inclusief de Xcode command line tools, Rust, Node en Python 3.

Instructies:

git clone https://github.com/dsmurrell/onkey && cd onkey
npm install && npm --prefix ui install
python3 -m venv .venv && .venv/bin/pip install -r scripts/requirements-models.txt
PYTHON=.venv/bin/python scripts/fetch-models.sh   # downloadt de modellen en controleert deze via SHA-256
npx tauri build

Je eigen build draait op je eigen Mac. Het enige dat deze versie niet kan, is Shazam vragen om een nieuw nummer te benoemen, aangezien hiervoor mijn Apple-signatuur nodig is. Spotify en Apple Music geven zelf door wat er wordt afgespeeld, dus dit heeft alleen invloed op YouTube en de "Listen only"-modus. Details, tests en informatie over het controleren van checksums van releases staan in CONTRIBUTING.md. De officiële releases zijn ondertekend met mijn Apple Developer ID en genotariseerd door Apple (spctl -a -vv /Applications/OnKey.app toont wie de app heeft ondertekend).

Licentie en credits

De software valt onder de MIT-licentie. Zie LICENSE. Gemodificeerde versies mogen niet de naam OnKey dragen of het icoon gebruiken. Als je voortbouwt op de code van OnKey, wordt een credit met een link naar dit project gewaardeerd.

OnKey leert nummers met behulp van:

  • CREPE
  • GAME
  • wav2vec 2.0
  • UVR's MDX-Net Karaoke 2

De volledige lijst met credits is beschikbaar in de credits-sectie, en de volledige kennisgevingen en licentieteksten staan in THIRDPARTYNOTICES.md.

OnKey is gemaakt door Daniel Murrell.