Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

Imprimer

Qui suis-je ?

Je suis un développeur, principalement sous Linux. Mais j'aime aussi la musique, je fais quelques DJ mixs quand j'ai le temps : http://www.mixcloud.com/julienr/
Je suis l'auteur principal de Digital-Scratch, une application libre permettant de mixer des fichiers audio en utilisant de bonnes vieilles platines vinyles.

Digital-Scratch

Le site et le wiki de Digital-Scratch décrivent ce que c'est et comment cela fonctionne, alors ici je vais plutôt parler un peu du cheminement qui m'a poussé à le développer et aussi des choix que j'ai fait ou que j'ai en tête.

Historique

Lorsque j'étais dans mes années d'études, un camarade et moi voulions apprendre à mixer sur des platines vinyles qu'on avait pu acquérir par notre école dans le cadre d'un club. Seulement voila, les disques vinyles, c'est cher pour un étudiant. Résultat : soit on mixait les vinyles des autres, soit on mixait des mp3 sur PC avec un logiciel de lecture à piloter au clavier et à la souris.
L'idée est venue alors de faire un système permettant de détecter le mouvement d'un disque sur une platine et de piloter un logiciel de lecture avec les infos de vitesse et de sens de rotation. Après élimination de toutes les solutions à base de mécanique, on a eu l'idée de créer un disque vinyle avec un son caractéristique que l'on pouvait analyser via un logiciel pour déterminer le mouvement.

On a fait plusieurs tentatives de gravures et pressages de disque : le succès n'était pas toujours au rendez-vous, en effet le signal que l'on cherchait à graver n'était pas franchement bon à la lecture. Ca ne nous a pas empêché de faire un prototype fonctionnel en C qui pilotait AlsaPlayer .

Après avoir présenté notre prototype à l'école, un logiciel a fait son apparition : Stanton Final Scratch. Le concept était exactement le même et visiblement Stanton avait réussit à presser correctement un signal (timecode) sur leur disque.

L'école terminée, j'ai décidé de reprendre le logiciel à zéro en utilisant le disque de Stanton car le signal était presque le même que celui qu'on cherchait à produire. Alsaplayer étant très limité en terme de fonctionnalités, j'ai regardé du côté de Mixxx qui est un logiciel libre très complet de mix (double lecteur, table de mixage et tout le toutim). J'ai alors écrit un composant logiciel en C++ permettant de faire la détection de mouvement et modifié Mixxx un peu de partout pour pouvoir le piloter. C'était sympa, ça ne marchait pas trop mal, mais je passais un temps fou à modifier Mixxx pour l'adapter à ce que je cherchais : un simple double lecteur pilotable (pas de table de mixage, etc...). J'ai un peu perdu la motivation (il y avait très peu d'utilisateurs), un type m'a contacté pour continuer. Comme je n'étais pas très réactif, il a créé sa solution : Xwax qui est d'ailleurs maintenant bien intégré à Mixxx.

Plus tard, j'ai cherché à apprendre le Qt d'un point de vue professionnel. Sur quoi s'entraîner ? Digital-Scratch évidemment ! J'ai donc écrit un lecteur en C++/Qt comme je me l'imaginais, en réutilisant la détection de mouvement que j'avais déjà écrite pour Mixxx. Cette fois ci, j'en ai profité pour suivre le manuel du petit développeur : site web, mailing list, projet sur github, wiki, bug tracker, package d'installation, mix de démo, etc... Bon, il n'y a toujours pas beaucoup d'utilisateurs, mais ça viendra ;-)

Entre temps, un tas de sociétés ont produit des logiciels du même type : Traktor, Mixvibes,... et surtout Serato que l'on voit vraiment partout.

Fonctionnalités et choix

Technologies

  • Pourquoi C++ ?
Parce que c'est orienté objet (et j'aime bien ça), que ça peut être très rapide à exécuter et parce qu'on peut facilement utiliser des librairies écrites en C (à la louche 99% des libs audio sont écrites en C/C++)

  • Pourquoi Qt ?
Parce que j'avais envie de l'apprendre, et avec le recul c'est en plus très pratique car cela étend vraiment le C++. L'autre argument c'est la portabilité, j'ai toujours eu en tête de faire tourner le logiciel sous Windows, c'est maintenant fait depuis la version 1.2.0

  • Pourquoi Linux ?
Tout les développeurs ayant déjà développé sous Windows et sous Linux savent pourquoi ;-)
L'autre argument, c'est JACK qui est simple et efficace. Je ne trouve pas que cela soit équivalent sur les autres OS.

  • Quelles sont les fonctionnalités, pourquoi celles-ci ?
Autant le dire tout de suite, si l'objectif est d'obtenir l'équivalent de toutes les fonctionnalités de Serato ou Traktor, ce n'est pas pour tout de suite, il faudrait d'abord que je recrute :-)
Ceci dit, j'ai essayé jusqu'à présent de me concentrer sur les fonctionnalités et l'ergonomie de base en essayant de reproduire les fonctionnalités que l'on a avec une installation à l'ancienne : platines vinyles + table de mixage. Les disques utilisables sont : le timecode serato, final-scratch ou mixvibe.

Pour que tout ça s'utilise facilement, il y a :
- une vue représentative de la lecture d'une musique sur une platine (début, fin, wavefom)
- un sélecteur de fichier audio
- des raccourcis clavier permettant de s'affranchir de la souris pour presque tout

Ca c'est la base, et ça permet de reproduire ce qu'on avait avant sans l'ordinateur et sa détection de mouvement.

Ensuite j'ai étudié ce qui me paraissait être un petit plus pour mixer :
- jumper facilement sur des cue points (des points de lecture), ou simplement au début de la musique
- pouvoir lire des petits samples, notamment utile pour certaines transitions
- avoir une aide au choix des musiques via leur "tonalité musicale" principale (music key), ce qui est utilisé notamment par Mixed in Key.

Ce qui ne m'a finalement pas semblé important :
- détecter les bpms : caler le tempo d'une musique sur l'autre fait parti du "job" du DJ, et j'y tiens :-)
- faire un affichage/recherche/tri de sa collection de musique suivant les tags ou autres : je ne vois pas franchement comment on peut avoir pas mal de titres à mixer s'il ne sont pas correctement rangé, bref, en 2 clicks dans des répertoires je trouve ce que je cherche (peut être une vieille habitude du bac de vinyl avec ses intercallaires ?)
- détecter la position ou l'on vient de poser la cellule : ma principale utilisation en serait la préécoute rapide d'un titre, et la je trouve le click dans une barre de progression bien plus efficace.
- faire des boucles sur 2/4/8 temps, je ne m'en suis jamais servit, ça n'existait pas avec les bonnes vieilles platines, bref j'en ai jamais eu l'usage (mais ça peut être sympa)

Les choses qui me parraissent indispensable (amélioration ou nouveauté) :
- détecter de manière plus précice les vitesses lentes pour pouvoir scratcher de manière plus précise (là il y a un temps de retard par rapport aux solutions propriétaires)
- enregistrer les cue points pour ne pas avoir à les redéfinir à chaque lecture
- enregistrer automatiquement la "tracklist" du mix en cours
- peut être intégrer une boite à effets

Puisque c'est un logiciel libre, tout le monde est aussi libre d'apporter ses idées. J'espère que Digital-Scratch évoluera en fonction de celles ci !

Collaborateur(s) de cette page : jrosener et utilisateur_anonyme .
Page dernièrement modifiée le Vendredi 23 août 2013 00:10:12 par jrosener.
Le contenu de cette page est licencié sous les termes licence.

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]

sibfactory
qube


Mégaphone [Afficher / Cacher]

olinuxx, 14:33, mer. 18 Sep 2019: Bonjour et bienvenu à Knard cool
olinuxx, 13:17, dim. 15 Sep 2019: Bonjour et bienvenue à wwp et à Kraod cool
sub26nico, 22:18, sam. 14 Sep 2019: Salut et bienvenue à Gretsh56 :-)
olinuxx, 13:44, sam. 14 Sep 2019: Bonjour et bienvenue à T-Yo cool
PenZyh, 16:09, mar. 10 Sep 2019: Merci ^^
olinuxx, 16:08, mar. 10 Sep 2019: Bienvenue e bonjour également à PenZyh cool
olinuxx, 14:47, mar. 10 Sep 2019: Bonjour et bienvenue à SKUNKLOAD cool
sub26nico, 10:29, lun. 09 Sep 2019: Salut et bienvenue à aldepr :-)
olinuxx, 09:01, dim. 08 Sep 2019: Bonjour et bienvenue à nuka cool
sub26nico, 20:21, jeu. 05 Sep 2019: Salut et bienvenue à smo :-)
olinuxx, 10:31, jeu. 05 Sep 2019: Il est tout beau, il est tout chaud, c'est l'édito de linuxmao ! [Lien]
olinuxx, 20:15, dim. 01 Sep 2019: Bonjour et bienvenue à Gordus cool