# Travaux futurs

Cette section décrit les fonctionalités de &arts; en cours de développement.Le développement de aRts progresse rapidement, donc plutôt que d'essayer de documenter les choses nouvelles ici, qui risquent très vite de ne plus être à jour, je vous propose de consulter les fichiers TODO et les archives de la liste de discussion pour voir quelle nouvelle fonctionnalité est planifiée. N'hésitez pas à vous investir dans le développement de nouveaux design et implantations.

Ce document tente de vous donner une vue d'ensemble de la façon dont les nouvelles technologies vont s'intégrer dans &arts;. Pour être plus précis, elle traite des sujets suivants :

- Comment fonctionne l'interface

- Codec - décodage des flux mp3 ou wav vers un format de données exploitable.

- Video.

- Synchronisation

- Composition dynamique

- Interfaces graphiques

- &MIDI;

Ce travail est en cours. Cependant, ce peut être une base si vous voulez voir les nouvelles technologies de &arts;, et devrait vous donner une idée générale de la façon dont les problèmes vont être abordés. N'hésitez pas à corriger les erreurs que vous pourriez détecter.

Éléments qui utiliseront la technologie de &arts; (veuillez coordonner vos travaux) :

- KPhone (téléphone par IP)

- &noatun; (lecteur video / audio)

- &artscontrol; (programme de contrôle du serveur sonore, par affichage graphique)

- Brahms (séquenceur)

- Kaiman (lecteur multimédia de &kde;2 - compatible kmedia2)

- mpglib/kmpg (technologie de lecture des données mpg audio et video)

- electric ears (l'auteur m'a contacté - état inconnu)

## Comment fonctionne l'interface

Les interfaces &MCOP; sont à la base du concept de &arts;. Elles sont l'équivalent des classes C++ avec la transparence réseau. Chaque fois que c'est possible, utilisez les interfaces. Elles sont constituées de quatre parties :

- Des flux synchrones

- Des flux asynchrones

- des méthodes

- des attributs

##

    interface Codec {
      in async byte stream indata;
      out async byte stream outdata;
    };

    interface ByteAudioCodec {
      in async byte stream indata;
      out async byte stream outdata;
      readonly attribute samplingRate, bits, channels;
    };

    interface VideoCodec {
      in async byte stream indata;
      out video stream outdata;      /* note: video streams do not exist yet */
    };

##

##

##

##

## Interfaces graphiques

## &MIDI;

    struct MidiEvent {
      byte b1,b2,b3;
      sequence<byte> sysex;
    }