# ReWire

ReWire est un protocole d'échange d'informations entre plusieurs logiciels d'édition musicale. Il permet la synchronisation de la lecture et des évènements au sein du projet musical. Ce protocole a été créé en 1998 en collaboration entre Steinberg (créateur de Cubase), Propellerhead Software - créateur de Reason et Rebirth pour faire communiquer leur logiciel en temps réel. Cette norme au niveau driver existait déjà sous le nom de DirectWire.
Ce sont les sociétés implémentant le protocole ReWire qui paient une licence, et non pas le consommateur.
Ce protocole existe, comme DirectWire, essentiellement pour la plateforme Windows mais existe aussi sous OS X sous le même nom. Sous OS X, il existe d'autres solutions comme le portage de Jack audio serveur sous Linux et Soundflower.

## Spécifications

La version actuelle de ReWire est la version 2. Le protocole ReWire fonctionne en temps réel entre deux applications compatibles (client/serveur ou mixer/synth) :
* 256 canaux audio (64 avec ReWire 1)
* 4080 canaux midi (255 bus midi de 16 canaux chacun)
* synchronisation complète et précise sans le besoin de modifier des options ou des paramètres comme la latence sur les cartes audio
* support des fonctions de transport (stop play rewind)
* auto configuration dans le logiciel "host" des noms des instruments disponibles dans le client (rewire 2)

## Rewire ou VST ?

Dans les années 1970, un peu comme avec les ordinateurs IBM PC, le musicien en achetant un clavier devait acheter les sons qui allaient avec. Pour corriger ce problème, la norme MIDI est créée en 1983. Ce n'est qu'en 1972 que le premier synthétiseur utilisant l'ordinateur est construit. Dès 1972 commence le développement de clavier lié à l'ordinateur et ce n'est qu'en 1979 que les premiers synthétiseurs permettent de créer, modifier et enregistrer des sons sur disquette souple. L'enregistrement de musique était déjà possible en 1970 par utilisation de bande magnétique avec le mellotron. Au milieu des années 1980 apparaissent les premiers ordinateurs compatibles MIDI (Yamaha Msx, Amiga et Atari ST). En 1992, le logiciel Cubase alors compatible avec l'Atari et Apple, est porté sur le système d'exploitation Windows 3.1 de Microsoft sur PC grâce à l'explosion des ventes de compatibles PC de Taïwan. C'est aussi les débuts du « PC Multimédia » et de la disponibilité croissante des cartes son diverses (Sound Blaster, Turtle Beach, etc.) avec interfaces MIDI et possédant des banques de sons FM de qualités très variables. Yamaha vend alors un logiciel XG editor permettant de créer des sons comme un véritable synthétiseur. Des expandeurs externes (ROM) gérant des banques de sons seront commercialisés (Korg, Emu, Roland, Yamaha). Ceux-ci laissent place aux échantillonneurs matériels. Propellerhead n'est alors qu'une société fondée en 1994 qui commercialise un éditeur de boucle (Recycle), un émulateur de sons présent sur les TB-303 et TB-808 de Roland (Rebirth).
Ce n'est qu'en 1998 que ReWire apparait, tandis que VST 2.0 apparait en 1999, en même temps que la version 2 de la norme General MIDI plus indépendante des banques de sons de Roland et de Yamaha.
Reason sort en 2000 et permet d'ajouter, configurer, éditer des instruments, des effets de façon visuelle par utilisation de périphériques de contrôle (clavier, souris) en n'étant limité que par la seule puissance de l'ordinateur.
Reason permet de créer un morceau de batterie, mais ne permet pas l'enregistrement micro. Si ReWire n'existait pas, il faudrait exporter sous forme audio le morceau dans un logiciel audio. On perd alors les fonctionnalités de Reason (tempo et choix des instruments). Grâce à Rewire, le mixeur Cubase peut utiliser les capacités du logiciel Reason (synthétiseur, séquenceur, banque de son).
Donc ReWire et VST tous deux gèrent l'accès aux données audio (banque de sons, instruments virtuels, échantillons).
VST 2.0 permet à Cubase de gérer la synchronisation du tempo, l'édition en temps réel des effets par l'utilisation du clavier midi (automation) mais a permis grâce à une banque de son d'être utilisé comme une alternative aux synthétiseurs matériels (circuits électrique). Lors de la sortie de la version Cubase compatible VST 2.0 Steinberg commercialise alors des plugin d'instrument VSTi dont les premiers étaient basés sur le Minimoog.
Rewire nécessite d'implémenter un logiciel supportant la norme rewire et souvent VSTi, tandis que VSTi n'est qu'un accès à un type de sonorité implémenté sous la forme d'une simple dll. À noter que les VSTi de par leur nature ne sont accessibles que par logiciel compatible VST et ne peuvent pas être lancés en dehors du logiciel compatible VST (excepté si une version indépendante existe, ou si on utilise VASIVST ?).
Ce concept Rewire existe déjà de façon plus aboutie dans la suite de Microsoft avec COM/OLE/ActiveX qui permet en restant dans Word d'éditer une table en utilisant les menus/fonctionnalités d'Excel.
Pour la partie temps réel, cette notion est à relativiser car elle dépend de la puissance de la carte mère, des drivers et de la carte audio/midi. En effet il existe un temps de latence entre le moment où vous appuyez sur une touche d'un clavier midi et le moment où vous entendez votre son. Ceci est dû :
* au fait de l'utilisation de DSP/CPU puissant spécialisé pour l'audio
* à la quantité de mémoire RAM et l'algorithme d'accès aux échantillons
* à la gestion des échantillons par carte son (sf2 de creative, GM).
* driver optimisé provenant du fabricant de la carte son ou non (ASIO WMS KX ASIOx ASIOALL) par rapport à DirectSound et sound manager de Microsoft.
En 2008, la sortie des cartes mères à plusieurs cœurs (dual ou quad) et le début de l'utilisation des GPU et les disques durs de plus de 500 Go (banque de sons) suffisent à tout home studio. Le problème ne réside pas dans le logiciel, mais dans la qualité des banques de sons et des effets (arpégiateur par exemple).
À noter qu'il existe un adaptateur

## Utilisation de Rewire

D'une façon simple rewire permet la communication entre deux logiciels comme toutes architecture client serveur. Le serveur est appelé master, host ,"mixer application" , logiciel audio/midi et le client est appelé slave, device, "synth application", plug in . Pour simplifier L'utilisation de Rewire suit à la base toujours le même principe: l'application maître doit être ouverte en premier avant le lancement de application cliente qui reconnait la présence d'un hôte Rewire et se configure automatiquement. Il ne reste plus qu'à créer une piste MIDI dans le logiciel maitre, et choisir le(s) sons offert par le logiciel client.
Les pistes midi maître du logiciel envoient des informations par le protocole ReWire aux pistes des logiciels esclaves. Ceux-ci renvoient du son aux pistes du logiciel maître. Le routage des données en entrée sur le logiciel hôte peut différer selon les logiciels : Audio Mixdown, piste aux, mixer, port audio. Les canaux rewire peuvent être utilisés pour gérer des effets send-return.
À l'ouverture du logiciel maitre en mode "rewire host" certains logiciels maitre ouvrent les logiciels Synth compatibles rewire automatiquement. La fermeture du logiciel maitre nécessite de fermer le protocole ReWire et éventuellement de désactiver le protocole ReWire dans les logiciels « synth application ». Les logiciels récents s'occupent de faire cela pour vous de façon transparente.
Les logiciels hosts peuvent
* créer automatiquement (facilement) un canal audio du canal midi (adobe audition)
* limiter le support midi a un certain nombre de clients « Synth application » (ableton)
* connaitre les canaux des clients par leur nombre et parfois aussi leur nom (cakewalk sonar)
* supporter la norme CoreMIDI (Rewire MIDI ins et out) : pass through !! (motu)
* supporter la redirection MIDI vers un périphérique rewire Synth directement depuis un canal MIDI (cubase)

## Liste des logiciels supportant le protocole Rewire

Un logiciel compatible ReWire peut être (en reprenant la terminologie de propellerhead) ReWire "synth application" ou ReWire "Mixer application" c'est-à-dire serveur et client . Un logiciel compatible ReWire peut supporter les deux modes, mais un seul des modes ne peut fonctionner à la fois. De plus un logiciel ReWire 'Mixer application" ne peut se synchroniser/fonctionner qu'avec un logiciel "Synth application" .
Le site de propellerheads maintient une liste de logiciels compatibles ReWire classé selon la norme ReWire (1 ou 2) et le type de fonctionnalités supportés (mixer application, synth application)
On distingue dans les termes utilisés :
* les drivers d'accès aux matériels (Windows Driver Model, MME, ASIO) ;
* les plugins compatibles interlogiciels comme VST, VSTi, DirectX ou DXi ;
* les protocoles de communications interlogiciels Rewire.
* le type de piste : audio ou midi

## ReWire Host mixer

Les logiciels "hôtes" assurant le mixage audio sont dits "rewire host (mixer application)", ils ne proposent souvent que peu de son mais possèdent surtout des fonctionnalités d'éditions et de traitements (effets). Dans ce cas, ils doivent utiliser des banques de sons externes supportant les normes VSTi DXI rewire.
Liste non exhaustive :
* Ableton Live
* Adobe Audition supporte ASIO, VST, DirectX, Rewire(1.5), midi, il ne laisse pas passer les données midi dans le client (rewire audio seulement)
* Arturia (Storm)
* Cakewalk Sonar
* Cubase supporte ASIO, VST, Rewire (pas DirectX depuis la version 4)
* Digital Performer
* Fairlight (Xynergi)
* FL Studio
* GarageBand depuis la version 1.0.1
* Logic
* Pro Tools
* Samplitude supporte VST, VSTi, Rewire, midi
* Sibelius
* Sonar
* Soundtrack Pro
* Cockos Reaper
* Renoise

## Rewire synthétiseur

Les logiciels supportant le chargement de banque de sons (bibliothèque de son, instrument VSTi) sont en général des clients rewire (synth application).
* Reason de Propellerhead est un client Rewire depuis sa création.
reason est serveur/mixer pour rebirth seulement
* Arkaos logiciel d'animation vidéo sur plusieurs écrans pour les musiciens
* ReBirth RB-338
* Torq logiciel remplaçant les vinyls et les CD pour DJ
* VSampler 3
* Groove Agent (v3) :VST Instrument de batterie virtuelle de Steinberg,
* Halion player
* GigaStudio: sampleur

### Rewire synthéthiseur et mixer

* ACID Pro supporte Rewire (pro 4), ASIO, DirectX, VST, VSTI, , midi
* FL Studio supporte Rewire (v8), midi ASIO, DirectX (vers 8), VST (vers 8), VSTI,
* Ableton Live
* Reaper:supporte rewire VST, VSTi, DX, DXi, JS, rearoute MTC SMPTE LTC ASIO WDM directsound FX…
* Arturia’s Storm
* Bidule "rewire device"=rewire client slave
* podium supporte rewire

## Inconnu

Lorsque la documentation en ligne est imprécise, les noms des logiciels sont mis ici.
* Adobe Premiere supporte VST (CS2/3), Rewire (v1.5)
* Music Studio de Magix supporte VST, VSTi, DX, Rewire
* Tune
* dfh SUPERIOR
* Audiowarrior supporte rewire
* Hypersonic supporte rewire