joliclic blog

Aller au contenu | Aller au menu | Aller à la recherche

mardi, juillet 2 2013

Music Toys: On recommence

this post is also available in english

Bon, visiblement j'étais trop pressé de vous montrer Music Toys, les installeurs marchaient pas bien...

Voici donc une nouvelle beta (0.9beta5) qui ce coup-ci devrait marcher ;) .

Pour rappel, Music Toys est une collection de petites applis orientées musique, basée sur l'intégration de FluidSynth dans Firefox, donc d'un synthétiseur utilisant des soundfonts.
Les applis sont:

  • un clavier temps réel, utilisant la souris ou le clavier physique
  • une boite à rythme
  • un lecteur de fichier midi

Comme nouveautés depuis la première publication (que vous n'avez donc pas pu essayé), il est possible d'enregistrer ce qu'on joue avec le clavier, puis de le rejouer, ou de l'exporter en fichier Midi. C'était une demande d'un lecteur de linuxfr ;) .
Et la boite à rythme peut également exporter le morceau en cours en fichier Midi.

Je vous remet la même vidéo que dans le premier billet:

liens directs vers la vidéo :
musictoys.mp4 | musictoys.webm | musictoys.ogv

Vous pouvez télécharger l'appli sur sa page dediée (deb/rpm/tar.gz pour Linux, des installeurs pour Windows et Mac OSX (avec inclus la lib FluidSynth et une soundfont par défaut).
C'est toujours en version beta, n'hésitez pas à me signaler tout bug/avis !

Music Toys: Start again

ce billet existe aussi en français

Well, it seems I have been too impatient to show you my last experiment, Music Toys, the installers did not work... So, let's try again, here is a new beta (0.9beta5) that should work this time .)

As a reminder, Music Toys is a collection of small apps music oriented, based on the integration of FluidSynth in Firefox, a synthesizer using soundfonts.
Current apps:

  • a realtime Keyboard, with the mouse or the physical keyboard
  • a Drum Machine
  • a Midi File Player

New since the first publication, the Keyboard has a mini sequencer, you can record when you play, then read it, or export it as Midi File.. It was a request from a reader of linuxfr ;).
The Drum Machine can export patterns as Midi Files also.

Here's the same screencast as in the first post:

direct links to the video:
musictoys.mp4 | musictoys.webm | musictoys.ogv

You can download the app from his dedicated page (deb/rpm/tar.gz for Linux, installers for Windows and Mac OSX (with the FluidSynth lib embedded and a default soundfont).
It's again a beta version, don't hesitate to report me all bug/opinion !

jeudi, mai 16 2013

Music Toys: un synthétiseur dans Firefox

this post is also available in english

Prenez Firefox, FluidSynth, js-ctypes, une sf2 soundfont, secouez tout çà, et hop... un vrai synthétiseur, utilisable en temps réel ou comme séquenceur, à l'intérieur de mon navigateur :) .

FluidSynth est une bibliothèque multi-plateforme en C qui utilise des soundfonts sf2.
Au début, c'était une expérimentation, ouvrir cette lib via js-ctypes dans Firefox, et jouer avec.

Mais çà a si bien marché, que j'ai créé 3 petites applis, combinées en une collection nommée Music Toys, qui peut être utilisée comme extension Firefox, ou comme une appli XULRunner autonome (lançable avec Firefox).
Ces applis sont entièrement en JavaScript, utilisant une partie de l'API FluidSynth à travers js-ctypes.


  • La première appli est un Clavier, temps réel et polyphonique, avec 128 instruments disponibles. Vous pouvez jouer avec votre souris, ou le clavier physique de votre ordinateur.


  • La seconde appli est Drum Machine, une boite à rythme. Elle consiste en une liste de pistes, divisées en mesures, temps par mesures, et divisions par temps, contenant des boutons pour allumer les notes (avec vélocité variable).
    47 instruments de percussions sont disponibles, et vous pouvez changer de jeu d'instruments.
    Changer le tempo, jouer votre morceau en temps réel dans une boucle. Et vous pouvez enregistrer/ouvrir vos morceaux dans des fichiers.


  • La troisième appli est un lecteur de fichier Midi. Il peut lire des fichiers mid standard (SMF), encapsulés RMI ou non, et les fichiers kar.
    Il est possible de se déplacer dans le fichier, mettre en pause, changer le volume, modifier la tonalité.

Une petite vidéo de tout çà :

liens directs vers la vidéo :
musictoys.mp4 | musictoys.webm | musictoys.ogv

Si vous souhaitez l'essayer, vous pouvez télécharger çà depuis sa page dédiée : Music Toys. Il y a des versions autonomes pour Linux, Windows, et Mac OSX (avec inclus la lib FluidSynth et une soundfont par défaut), et l'extension Firefox.
Tout le code source est MPL 2.

On peut imaginer plus pour la suite.

Il est envisageable de créer une extension pour Firefox qui exposerait seulement le wrapper vers la lib FluidSynth, et les auteurs d'extensions pourraient y accéder.
Et plus, on pourrait exposer certains objets de base comme un synthé Synth aux pages web (mais la sécurité est à prendre en compte).

Ensuite, il est peut être possible de compiler FluidSynth sur Android, quelques recherche sur la toile montre que certains y seraient arrivé, donc une extension pour Firefox Mobile devrait être possible.
Et peut être qu'on peut compiler FluidSynth pour Firefox OS également (FluidSynth dépend de glib) ?

Mais pour l'instant, faites moi savoir ce que vous en pensez, et si cette beta marche chez vous, j'ai testé principalement sur Linux, donc vos retours depuis divers Windows, 32 ou 64 bit, et Mac, sera précieux ;) .

Music Toys: a synthesizer inside Firefox

ce billet existe aussi en français

Take Firefox, FluidSynth, js-ctypes, a sf2 soundfont, shake all of that, tadaaa... a real synthetizer, usable in real-time or as a sequencer, inside my browser :) .

FluidSynth is a cross platform C library that uses sf2 soundfonts.
At the beginning, it was an experiment, opening this lib via js-ctypes in Firefox, to play with it.

But it worked so well, so I have created 3 little apps, combined in a collection named Music Toys, which can be launched as a Firefox extension, or as a standalone XULRunner application (launchable with Firefox).
These apps are all in JavaScript, using part of the FluidSynth API through js-ctypes.


  • The first app is a Keyboard, real-time and polyphonic, with 128 available instruments. You can play with your mouse, or the physical keyboard of your computer.


  • The second app is a Drum Machine. It consists in a list of tracks, divided in bars, beats per bar, and divisions per beat, containing buttons to switch on notes (with variable velocity).
    47 different percussion instruments are available, and you can change the drumkit.
    Change the tempo, play in real time your pattern in a loop. And you can save/open your patterns in files.


  • The third app is a Midi Player. It can read standard mid files (SMF), RMI encapsulated or not, and kar files.
    You can seek in the file, pause, change the volume, modify the tonality.

A little screencast of all of that:

direct links to the video:
musictoys.mp4 | musictoys.webm | musictoys.ogv

If you want to try it, you can download it from its dedicated page: Music Toys.
There's standalone versions for Linux, Windows, and Mac OSX (with the FluidSynth lib embedded and a default soundfont), and the Firefox extension.
All the source code is MPL 2.

We can imagine more.

It is conceivable to create an extension for Firefox which expose only the FluidSynth wrapper lib, and extension authors can access it.
More, why not expose some basic objects like a Synth to web page, it should be possible (but need to be careful with security).

Secondly, perhaps it's possible to compile FluidSynth on Android, some Web research reveals that some seems able to, so an extension for Firefox Mobile may be possible.
And perhaps FluidSynth can be compiled for Firefox OS too (Fluidsynth need glib)?

But for now, let me know what you think about that, and if this beta works for you, I've tested mostly under Linux, so your feedback from various Windows, 32 or 64 bit, and Mac, will be precious ;) .

vendredi, juin 15 2012

Boox 3.1 alpha 1 for Firefox 13

  • en version
  • version fr

english version

Dear Boox users, here's a first alpha version for Firefox 13. [edit]alpha 2 available ;)

This is a work in progress, don't expect to retrieve all the functionalities for now. And I have not made a lot of tests. But at least, you should retrieve some features ;) . By installing this alpha, you'll have automatic updates for the next alphas/betas.

What should work:

  • the rich tooltips over normal and live bookmarks
  • the feed entry summary in the rich tooltip for live bookmark children
  • The Locate search result in the bookmarks sidebar.
  • Export of an individual bookmarks folder
  • [edit alpha 2]Mark as read feeds and feed entries

What doesn't work yet (deactivated partially for the moment):

  • Boox style (bold) for Live Bookmarks with new entries. This will be a hard part, and I suppose the main missing feature. Hopefully, read/unread live entries are now styled natively in Firefox 13.
  • Number of unread entries in the Live Bookmark labels
  • Usage the Boox own History (to track unread feed entries independently of the native History) have not been tested
  • The Boox feed viewer (with Boox Styles) doesn't work also.

Nevertheless, I hope this first alpha will be useful for some of you ;) .

Ah, and note the new behavior of Firefox 13, feeds are no more updated when Firefox starts, but when you want to see the content of a live bookmark.

version française

Chers utilisateurs de Boox, voici une première version alpha pour Firefox 13. [edit] alpha 2 disponible ;)

C'est un travail en cours, n'espérer pas retrouver toutes les fonctionnalités pour l'instant. Et je n'ai pas fait beaucoup de tests. Mais au moins vous devriez retrouver quelques fonctions. En installant cette alpha, les alphas/betas suivantes devraient s'installer automatiquement.

Ce qui devrait fonctionner :

  • Les infobulles personnalisées sur les marque-pages normaux et dynamiques
  • Les résumés d'entrées de flux dans les infobulles pour les entrées de marque-pages dynamiques
  • La localisation des résultats de recherche dans le panneau de marque-pages.
  • L'export d'un dossier de marque-page individuel
  • [edit alpha 2] Marquer comme lu les flux et leurs entrées

Ce qui ne marche pas encore (désactivé partiellement pour le moment) :

  • Les styles Boox (gras) pour les marque-pages dynamique avec de nouvelles entrées. Ce sera une partie difficile, et je suppose la principale fonctionnalité manquante. Heureusement, les entrées lues/non lues sont maintenant stylées nativement dans Firefox 13.
  • L'indication du nombre de nouvelles entrées dans le label des marque-pages dynamiques.
  • L'utilisation de l'historique propre à Boox (pour connaître les entrées de flux non lues indépendamment de l'historique natif), n'a pas été testé.
  • Le lecteur de flux de Boox (avec les styles de Boox) ne marche pas non plus.

Néanmoins, j'espère que cette première alpha sera utile à quelques uns d'entre vous ;)

Ah, et prenez note du nouveau comportement de Firefox 13, les flux ne sont plus recharger au démarrage de Firefox, mais quand vous voulez voir le contenu d'un marque-page dynamique.

lundi, juin 11 2012

Boox is broken

  • en version
  • version fr

english version

A lot of people contact me about this, and yes, my extension Boox is really broken with Firefox 13.

I have to rewrite a big part. And I need to find time to do it. So please, be patient, follow this blog, I will announce here the next version, probably starting with a beta.

Sorry for the delay, I miss my extension too ;) .

version française

Pas mal de monde me contacte à ce propos, et oui, mon extension Boox est vraiment cassée avec Firefox 13.

Je dois réécrire une grosse partie. Et il me faut trouver du temps pour le faire. Soyez patient, suivez ce blog, j'y annoncerai la prochaine version, sûrement en commençant par une beta.

Désolé pour le retard, mon extension me manque également ;) .

- page 1 de 12