Quoi ?

Les bases

JACK

JACK est un serveur audio à faible latence, écrit pour les systèmes d'exploitation POSIX tels que GNU/Linux ou Mac OS X. Il permet à de nombreuses applications de se connecter à un même périphérique audio ainsi que de s'échanger des données entre elles.

Dans la Marmite, le serveur JACK servira de couche basse à l'émission et l'acquisition de données audio depuis un périphérique audio ou d'autres applications.

http://jackit.sourceforge.net

LADSPA

LADSPA ( Linux Audio Developers Simple Plugin Architecture ) est une API standard conçue pour le developpement de plugins audio. De nombreux plugins LADSPA ont déjà été développés.

La Marmite permet de se servir de ces nombreux outils de traitement audio déjà existants et de les interfacer simplement entre eux ou avec des clients JACK.

http://www.ladspa.org

Qt

Qt est une librairie principalement destinée à la création d'interfaces graphiques portables. L'environement de bureau KDE se base sur cette librairie.

Les classes de bases de la Marmite sont basées sur le modèle objet de Qt qui rajoute des fonctionnalités intéressantes au modèle C++. Notamment la gestion des évenements par "signals" and "slots".

http://www.trolltech.com

La structure

Les ingrédients de la marmite sont ( ou seront ) de trois type :

noyau ( core )

Le noyau de la Marmite comporte les éléments de base du framework. Il propose pour l'instant un ensemble d'abstractions permettant d'utiliser les fonctionnalités élémentaires de JACK et de LADSPA.

Les clients JACK comme les plugins LADSPA sont considérés comme des modules traitant de données audio. Chaque module possède des ports qui peuvent être audio ou de contrôle et d'entrée ou de sortie. Les ports de ces modules sont connectables, tant que possible, entre eux de manière transparente.

outils ( tools )

En se basant sur ce noyau, un certains nombre d'outils réutilisables peuvent être à leur tour être developpés. Il peut s'agir de processus élémentaires de traitement audio qui pourront être assemblés pour former, par exemple, le processus d'un client JACK ou encore de modules prêt-à-l'emploi pour des tâches courantes comme la lecture ou la capture de fichiers sur disque, etc.

inferfaces ( interfaces )

Des éléments d'interfaces utilisateur également réutilisables peuvent ensuite être imaginés ( interfaces graphiques ou en mode texte ) pour créer soit des interfaces génériques permettant d'accéder aux classes du noyau soit des interfaces spécifiques pour un outil ou une application en particulier.

L'avancement

version 0.0

La version 0.0 de la Marmite est un peu une publication du code juste histoire de publier quelque chose et de montrer l'idée du projet. Le code est néanmoins consistant et utilisable - au moins pour essayer les examples.

version 0.1

La version 0.1 de la Marmite proposera une version du noyau correspondant à toutes les principales fonctions de JACK et LADSPA et quelques outils génériques. Des éléments d'interfaces Qt sont en cours de développement ...