Journal BeatNitPicker

Posté par (page perso) . Licence CC by-sa
20
14
août
2013

Quand on fait de la musique, on a souvent besoin d'un ptit player rapidos pour "auditer" vite-fait des sons, on est souvent pas sur sa machine, ou à explorer des CDs donc exit les gros trucs genre Amarok ou Clementine qui marchent avec une DB. Je suis rentré bredouille de la recherche d'un petit player rapide, qui ferait ce que je veux comme je le veux dans les deux termes qui m'importent à part égale : Le son et l'ergonomie. C'était le WEnd pre-dernier, Ramadan s'éternisait, et je me suis dit que ce petit coin de nature était l'endroit idéal pour enfin se mettre sérieusement à Python. Enter BeatNitPicker.

BeatNitPicker screenshot

Features

  • Joue sans barguigner tout ce qu'on lui jette
  • Visualise les .wav (amplitude / temps)
  • Pilotable entièrement au clavier (MIDI-Learn un jour, pkoi pas)

Backends

Je les ai tous éssayés. Pygame, Pyglet, PyAudio, PyMedia, et le plus complexe est aussi le plus robuste (stable et dimensionnable) et puissant (décodage / encodage, états, lecture des meta-datas, etc.).

Premiers mètres en Python

Ayant passé maintes nuits à réciter du Lisp, je me suis trouvé plutôt à l'aise avec la syntaxe de Python, ses formats (print 'child %i of parent %i' % (child, parent)) ses procédures (lambda w: gtk.main_quit()) et certaines de ses idiosyncrasies, mais pas toutes.
Heureusement ce n'était pas mon premier player, donc la logique play / pause / stop? / oui mais rien n'est sélectionné / c'est quoi ce fichier pourri / WTF ne m'était pas étrangère. Je tiens à louer la patience de mes amis et parents, qui ont enduré mes nombreux tests à l'aide de toujours le même fichier test-encodé / décodé différemment du générique de Happy Tree Friends (nanani, ninina, hihihihi ♪) et plus tard plein d'oggs de metal nordique pour tester les metas (groaor ┼).

Visualisation

C'est toujours sympa de voir quel place occupe l'échantillon dans l'espace sonore, et puis c'est zoli :) Sur ce front, BeatNitPicker va probablement bouger pas mal. Voici quelque liens sympas collectés lors de mes pérégrinations :

Évolution

Mais le projet le plus prometteur est largement Timeside, et je dis pas ça parce que ce sont des potes. Donc bientôt visualisation stereo, spectrogrammes, FFT, détection de tempo, découpation de beats et Arabica mouture moyenne. Correction des bugs, aussi. Mais tu verras, y'en a pas ;)

Bonnes "vacances" à toutses

  • # Deps

    Posté par (page perso) . Évalué à 2.

    J'ai oublié les dépendances

    python python-gtk2 python-scipy python-matplotlib python-gst0.10
    

    Ça devrait le faire.

  • # Et python 3 ?

    Posté par . Évalué à 2.

    Y a-t-il une raison technique qui t'ai poussé a ne pas utilisé python3 ou simplement un manque d'information sur python ?

    Parce qu'il est temps, développeurs de tout bords de lâcher python2, ça rendras le monde meilleur, si si j'y crois :).

    • [^] # Re: Et python 3 ?

      Posté par (page perso) . Évalué à 2.

      simplement un manque d'information sur python ?

      Yep. Du coup j'ai décidé de finir le code en Python2 / GTK2 avant de le refaire en 3 / 3 afin de bien comprendre ce que ça implique. Apparemment et en l'occurence, pas grand' chose en termes de dev. GTK3 semble marcher mieux, d'après mes tests. Bon, mais il y a HTML5

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.