À propos du projet

Omi Piano est une application de piano web construite avec le framework Omi et Omi Snippets. Elle combine les 7 touches numériques, 5 touches alphabétiques du clavier ainsi que les quatre touches de fonction Shift, Control, Option et Command pour produire 60 notes de piano (35 tons pleins et 25 demi-tons), couvrant une tessiture allant de la double octave grave à la double octave aiguë. Le projet fournit un processus complet de développement et d'installation. Il est possible d'installer le paquet omi-piano via npm, ou de cloner le dépôt puis d'exécuter npm start pour le lancer localement. L'interface utilise une mise en page flex et des ombres CSS pour dessiner les touches noires et blanches. Un clic sur une touche ou l'appui sur la touche de clavier correspondante permet de jouer la note, accompagné d'une animation de surbrillance de la touche. L'application intègre deux partitions, « La promesse du pissenlit » et « La lune représente mon cœur », avec prise en charge de la lecture automatique. La logique de lecture automatique contrôle les pauses entre les notes par récursion et Promise, et synchronise la surbrillance de l'affichage des notes en bas pendant la lecture. Le projet présente également la correspondance entre la notation simplifiée et les touches du clavier, ainsi que la manière d'écrire des partitions personnalisées. Sur le plan technique, le projet n'utilise pas de frameworks courants comme React, Vue ou Angular, mais adopte la solution JSX et Web Components d'Omi, combinée au chargeur de composants monofichiers Omil et à un mécanisme de communication entre composants basé sur Proxy. La lecture audio repose sur la balise audio de HTML5, en obtenant le nœud via ref et en contrôlant la progression de la lecture. Ce projet convient aux développeurs intéressés par la composantisation front-end, la gestion des événements clavier et la lecture audio, ainsi qu'aux amateurs de musique souhaitant l'utiliser comme un simple outil de piano web.