à la une

Interview Laurent Colson

Suite à la sortie récente du StepPolyArp Unit, nous avons eu la chance de nous entretenir avec son créateur: Laurent Colson.

Les "développeurs de l'ombre", autrement dit, ceux qui contribuent de par leur génie, à développer le sens créatif de leurs utilisateurs, ont hélas un niveau de discrétion inversement proportionnel à la qualité de leurs applications. Mais parfois, certains acceptent de nous laisser entrevoir l'envers du décor. C'est le cas aujourd'hui avec Laurent Colson, créateur des applications StepPolyArp et ChrodPolyPad (pour n'en citer que quelques unes). Voici donc le fruit de notre entrevue avec celui qui pense nos outils de demain ;-)

PHS: Bonjour Laurent et merci d'avoir accepté notre invitation. Les fans d'applications musicales sur iOS te connaissent déjà depuis un moment, mais pourrais-tu nous parler un peu de toi et de ce qui t'a amené à te lancer dans le développement d'applications ?

Bonjour, et merci à toi ! Alors, le développement, c'est une très longue histoire puisque j'ai commencé à programmer quand j'avais 11 ans, à une époque où tout était à découvrir au niveau informatique. Les premières applications MIDI je les ai faites sur Atari ST en assembleur et en C, le tout premier logiciel que j'avais concrétisé était un éditeur de sons pour les synthés Roland D-5, D-10 et D-20 avec une interface graphique sur laquelle j'avais beaucoup travaillé, intégrant un petit créateur de patches aléatoire "intelligent". J'ai eu la chance de travailler quelques années plus tard comme développeur de jeux vidéos pour une petite boite à Paris. Je suis devenu développeur indépendant en 2000 en parallèle de la production musicale, et l'arrivée de l'iPad à relancé mon envie de revenir aux origines, à savoir le développement d'applications MIDI.

PHS: Tu as à ton actif un certain nombre d'applications à succès (StepPolyArp, ChordPolyPad, etc), mais une question m'intrigue : comment envisages-tu le développement d'une nouvelle appli ? Fais-tu une étude méticuleuse de la concurrence ou est-ce avant tout pour répondre à des besoins personnels ?

Chez moi le développement est un procédé créatif, je n'ai jamais été dans une démarche d'étude de marché, de rentabilité, j'ai une idée, je regarde juste que personne ne l'ai déjà réalisé sous une forme trop proche, et puis je me lance. La partie essentielle dans ma façon de travailler est l'interface utilisateur, l'idée est d'essayer de faire quelque chose qui va susciter l'envie de "jouer" avec.

PHS: Justement, le StepPolyArp est l'application qui t'auras fait franchir un pas supplémentaire en terme de notoriété. Qu'est-ce qui a fait naître l'idée de développer cette app ? Cherchais-tu à atteindre un but précis par rapport à ce qui était déjà disponible sur le marché ?

"StepPolyArp" est né avec l'arrivée du premier iPad, à l'époque d'iPhone OS 3 (qui ne s'appelait pas encore iOS), c'était quelque chose de nouveau, il n'y avait aucune fonction MIDI intégrée au système. L'idée d'un arpgégiateur proche d'un séquenceur tel que "StepPolyArp" n'existait pas, je trouvais que la façon de combiner les deux pouvait donner quelque chose d'inspirant pour trouver de nouvelles idées musicales. Pouvoir manipuler facilement et en temps réel une partie séquencée de la même manière qu'un arpégiateur me paraissait intéressante.

PHS: Après un certain nombre d'années d'existence, le StepPolyArp a franchi une étape supplémentaire avec une version "Unit". Pourrais-tu nous en parler un peu plus en détails ?

Vouloir porter l'application sous forme de plug-in était très compliqué. L'architecture de l'application n'était pas du tout adaptée à un portage Audio Unit. Sans entrer dans les détails, dans un plug-in les données sont traitées dans des buffers, et dans ces buffers aucune fonction système susceptible de retarder ou de bloquer de quelques millisecondes son traitement ne doit être exécuté. Malheureusement, "StepPolyArp" était développé entièrement en Objective C, et le traitement des objets dans ce langage peuvent engendrer des retards ou blocages en multithreading. Il fallait donc tout re-développer dans un langage de plus bas niveau, soit du C ou du C++. Il a fallu repartir d'une feuille blanche. Même si les presets sont compatibles avec la version précédente, ils peuvent cependant donner des résultats légèrement différents d'une version à l'autre. D'autre part, le fait de repartir de zéro a permis de gérer dès le départ la compatibilité iPhone, la version précédente ne fonctionnait que sur iPad. Cette nouvelle version intègre aussi un mode "Séquenceur", la précision du timing à l'échantillon, l'intégration d'Ableton Link 3, ainsi qu'une interface modernisée.

PHS: Justement, parlons un peu de l'Audio Unit v3. Beaucoup en parlent mais assez peu d'informations filtrent sur le sujet. Comment s'est passé le développement du StepPolyArp sur ce tout nouveau format ?

La version 3 de l'Audio Unit a surtout été adoptée sur iOS, puisque c'est le seul format de plug-in existant sur cette plateforme. Jusqu'à iOS 11, l'Audio Unit sur iOS était réservé aux instruments virtuels et effets audio. Depuis iOS 11, les plug-ins MIDI ont pu voir le jour. Cependant, la documentation des effets MIDI en Audio Unit 3 d'Apple est quasi inexistante, parfois les fonctions répertoriées dans la documentation n'ont aucune description. Il n'existe aucun exemple pour le format des effets MIDI, et les exemples fournis pour les instruments virtuels et effets audio sont souvent incomplets.

PHS: Pourquoi avoir intégré l'Audio Unit v3, et quel est selon toi son intérêt majeur ?

La version 3 de l'Audio Unit est un changement majeur de format. D'ailleurs, il ne s'agit plus vraiment de plug-ins, mais d'extensions d'applications. Les extensions n'ont pas besoins d'être installées dans le système contrairement aux plug-ins. Un Audio Unit version 3 est distribué sous forme d'application, il suffit de lancer l'application pour que le ou les plug-ins embarqués dans celle-ci soient utilisables dans tout le système. Mais l'intérêt majeur réside surtout dans le fait que chaque plug-in est désormais instancié dans son propre espace mémoire, comme une application, ce qui implique que si un plug-in plante, il ne fera pas planter son hôte, il suffira de ne relancer que le plug-in fautif dans une session sans perdre tout le travail en cours.

PHS: Si l'Audio Unit v3 existe depuis déjà un bon moment, qu'est-ce qui en a freiné le développement auprès des éditeurs ?

Contrairement à iOS, les plug-ins Audio Unit 3 sont inexistants sur macOS. Le seul séquenceur à pouvoir utiliser ce format sur macOS est Logic X. Ensuite vient le problème du manque de documentation, ce qui n'aide pas non plus à l'adoption du format. Enfin, sur macOS, l'Audio Unit 3 n'est pas vraiment stable et semble encore assez buggé. Tous ces facteurs font qu'aucun développeur ne trouve un réel intérêt sur macOS à développer pour ce format spécifique.

PHS: Quand on rencontre le succès sur plateforme iOS, on se dit qu'il n'y aurait qu'un pas (enfin j'imagine), pour passer tes applications sur Mac non ?

Une bonne partie du système de bas niveau partage les mêmes fonctions. Par contre, il manque UIKit sur macOS, ça concerne toute l'interface utilisateur et graphique. AppKit, l'équivalent d'UIKit sur macOS, est assez ancien et vient tout droit de NeXTSTEP datant du milieu des années 90 ! J'ai effectué le portage de musicMath d'iOS vers macOS pour me familiariser avec AppKit, mais ça reste un gros travail, même pour une petite application.

PHS: Peut-on espérer un portage du StepPolyArp Unit sur Mac dans un futur proche ou est-ce beaucoup trop de boulot en terme de développement ?

Aujourd'hui, c'est faisable, il y a deux possibilités. Porter l'application comme je l'ai fait pour musicMath en re-développant toute l'interface utilisateur et graphique pour AppKit. Il existe un seconde alternative, Apple venant d'annoncer le portage d'UIKit pour macOS l'année prochaine, il serait donc beaucoup plus judicieux d'attendre, sachant du coup qu'AppKit risque de devenir plus ou moins obsolète à terme. Autre point non négligeable, il faudrait que l'Audio Unit 3 se développe un peu plus sur macOS, parce que dans le cas actuel, le portage de "StepPolyArp" limiterait son utilisation au seul séquenceur acceptant le format Audio Unit 3, à savoir, Logic X.

PHS: Le ChordPolyPad suivra-t-il le même chemin que le StepPolyArp, en d'autres termes, peut-on envisager une version compatible Audio Unit v3 et pourquoi pas une version macOS ?

Je vois "ChordPolyPad" plus comme un contrôleur, et j'avoue avoir bien du mal à en saisir l'intérêt sous forme de plug-in. Pour moi, c'est un peu comme demander à Novation de porter ses contrôleurs Launchpads sous forme de plug-ins. Mais, c'est peut-être moi qui ne voit pas la chose sous le bon angle, je ne sais pas.

PHS: Encore un grand merci à toi pour avoir partagé ce moment avec nous et longue vie au StepPolyArp ainsi qu'à ses petits frères ! Vivement la suite ! ;-)

Merci à toi pour ton intérêt, longue vie et prospérité à Planet Home-Studio ;o)

Site web de Laurent Colson cliquez ICI.