mardi 4 décembre 2012

Installer la station de travail audio Reaper et le driver Wineasio sous Linux (qui utilise Jack)

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

aujourd'hui je vous propose d'installer Reaper de Cockos un DAW (Digital Audio Workstation) du monde windowsiens mais qui fonctionne très bien avec l'émulateur windows de linux (wine). Comme quasiment tous les softs Audio pro sous windows, il utilise les drivers à la norme ASIO de steinberg.

Il existe sous linux, un driver ASIO qui fait une redirection vers le serveur de son jack. Son nom est wineasio disponible actuellement en version 0.9.0.

Je vous propose dans cet article, de compiler ce driver ASIO pour linux sous Ubuntu et par la suite d'installer Reaper pour vérifier que tout fonctionne correctement.

Pour ceux qui ne veulent pas passer par l'étape de compilation manuelle

Pour ceux qui ne veulent pas passer par l'étape de compilation, il existe maintenant un installateur de REAPER et Wineasio proposé par cockos, vous trouverez la description ainsi que la référence à la dernière version ici.

Sinon en installant les dépôts de kxstudio, vous aurez accès à une version compilée de wineasio.
$ sudo apt-get install wineasio

Compilation et installation de wineasio

Pour compiler le driver wineasio, il vous faudra passer par les étapes suivantes:

1) Vous inscrire sur le site de Steinberg en tant que développeur et télécharger le SDK ASIO. Pour vous inscrire, c'est par ici.

2) Une fois que vous avez récupéré le SDK ASIO,

Décompressez-le:
~$ unzip asiosdk2.2.zip
Récupérez également les sources du driver wineasio en version 0.9.0 dans la section download http://wineasio.sourceforge.net.

Décompressez les sources du driver wineasio:
~$ tar xvfz wineasio-0.9.0.tar.gz 
Ceci créé le répertoire ./wineasio contenant les sources du driver.

3) copier le fichier asio.h qui se trouve dans le SDK ASIO dans le répertoire contenant les sources du driver wineasio.

4) Installer les librairies nécessaires à la compilation du driver
~$ sudo apt-get install wine1.4-dev libjack-jackd2-dev gcc-4.5

5) Aller dans le répertoire contenant les sources du driver wineasio et compiler le driver:
~$ make 

6) Installer la dll sur Ubuntu:
~$ sudo cp wineasio.dll.so /usr/lib/i386-linux-gnu/wine

Installation wine-rt version de wine avec un patch realtime


Pour installer cette version de wine, configurer les dépôts KXStudio puis installez le package wine-rt:
$ sudo apt-get install wine-rt

Vous pourrez par la suite (une fois reaper installé), optimiser les deux variables suivantes: WINE_RT et WINE_SVRT spécifiques au patch temps réel (pour plus d'infos c'est par ici).

Installation de Reaper


Pour télécharger Reaper soit vous pouvez utiliser la ligne de commande ci-dessous (version 4.3.1), soit rendez-vous dans la section download de  www.reaper.fm pour télécharger la dernière version disponible.
Comme wineasio est disponible uniquement en 32bits, vous devrez télécharger la version windows 32 bits de Reaper.

~$ wget http://www.reaper.fm/files/5.x/reaper525-install.exe
~$ wine reaper525-install.exe

Configuration de votre environement wine avec wineasio

Même si vous avez installez wineasio à partir de kxstudio, il vous faudra configurer la dll dans votre environement wine.

Enregistrer la DLL auprès de l'environnement wine que vous utilisez pour votre application audio pro:
~$ regsvr32 wineasio.dll 

Si vous utilisez un environnement spécifique (par exemple: ~/asioapp):
~$ env WINEPREFIX=~/asioapp regsvr32 wineasio.dll

vous devez obtenir le message: Successfully registered DLL wineasio.dll

Configuration de wineasio

Dans le fichier README contenu dans les sources de wineasio, vous trouverez l'ensemble des clés de registre windows pouvant influer sur le comportement de wineasio au cas où vous auriez besoin d'un comportement différent.

Pour modifier ces clés, il suffit d'exécuter la commande suivante en la faisant précéder de
env WINEPREFIX=~/monenv si vous utilisez un environnement windows spécifique:
~$ wine regedit

Vous pouvez aussi utiliser cadence qui se trouve dans les dépôts KXStudio pour configurer Wineasio.
$ sudo apt-get install cadence
$ cadence

Configuration du patch wine-rt pour REAPER


Une fois reaper installé, éditez le lanceur de votre application audio:
$ cd  ~/.local/share/applications/wine/Programs/REAPER
$ gedit REAPER.desktop 

Modifier la ligne (vous remarquerez que l'environnement windows de reaper est dans /home/user/.wineReaper dans cet exemple):
Exec=env WINEPREFIX="/home/user/.wineReaper" wine C:\\\\windows\\\\command\\\\start.exe
 /Unix /home/laurent/.wineReaper/dosdevices/c:/users/Public/Start\\ Menu/Programs/REAPER/REAPER.lnk

en:
Exec=env WINEPREFIX="/home/user/.wineReaper" WINE_RT=28 WINE_SVRT=15 wine C:\\\\windows\\\\command\\\\start.exe
 /Unix /home/laurent/.wineReaper/dosdevices/c:/users/Public/Start\\ Menu/Programs/REAPER/REAPER.lnk

Pour tester votre fichier .desktop dans un terminal:
$ xdg-open ~/.local/share/applications/wine/Programs/REAPER/REAPER.desktop

Vous devez voir au tout début des logs dans le terminal, des lignes comme celle-ci:
WINE realtime scheduling hack enabled, realtime base priority has been set to 28
wineserver running SCHED_NORMAL

Optimisation de l'environnement wine


Nous allons optimiser l'environnement wine.

Tout d'abord si vous avez plusieurs Disque durs (un système avec /opt et un pour l'audio par exemple /audio), mettez votre environnement wine sur le disque dur système. Cela répartiera la charge sur ces deux disques (un disque pour les applications, l'autre pour les données).

Dans la suite de commande ci-dessous, remplacez username par votre nom d'utilisateur et ~/.wineAsioApp par votre $WINEPREFIX à vous.
$ sudo mkdir /opt/wineEnvs
$ sudo chown username:username /opt/wineEnvs
$ mv ~/.wineAsioApp /opt/wineEnvs/wineAsioApp
$ ln -s /opt/wineEnvs/wineAsioApp ~/.wineAsioApp 


Ensuite, si vous avez appliquer les optimisations du système indiqué dans cet article et plus particulièrement le montage du répertoire temporaire en RAM, nous allons indiquer à wine d'utiliser ce répertoire temporaire:

$ rm -rf /opt/wineEnvs/wineAsioApp/drive_c/users/username/Temp
$ mkdir -p /tmp/wineEnvs/wineAsioApp/username/Temp
$ ln -s /tmp/wineEnvs/wineAsioApp/username/Temp /opt/wineEnvs/wineAsioApp/drive_c/users/username/Temp
$ rm -rf /opt/wineEnvs/wineAsioApp/drive_c/windows/temp
$ mkdir -p /tmp/wineEnvs/wineAsioApp/windows/temp
$ ln -s /tmp/wineEnvs/wineAsioApp/windows/temp /opt/wineEnvs/wineAsioApp/drive_c/windows/temp


Si vous avez monté /tmp en RAM, il faut créer un script shell (ex: ~/bin/reaper.sh) que vous appelerez pour démarrer le logiciel.
#!/bin/bash
rmdir /tmp/wineEnvs/wineAsioApp/username/Temp  /tmp/wineEnvs/wineAsioApp/windows/temp
mkdir -p /tmp/wineEnvs/wineAsioApp/username/Temp  /tmp/wineEnvs/wineAsioApp/windows/temp 
&& xdg-open ~/.local/share/applications/wine/Programs/REAPER/REAPER.desktop

Autoriser l'éxecution du script:
$ chmod 755 ~/bin/reaper.sh


Avant de démarrer Reaper, démarrez le serveur de son jack.
Pour démarrer reaper:
$~/bin/reaper.sh

Note : si votre disque dur système est un disque SSD, il sera préférable de migrer le répertoire c:\users vers un disque dur non SSD et d'en faire un lien.
$ mkdir -p /home/username/wineEnvs/wineAsioApp/drive_c/users
$ cp -r /opt/wineEnvs/wineAsioApp/drive_c/users /home/username/wineEnvs/wineAsioApp/drive_c/
$ rm -rf /opt/wineEnvs/wineAsioApp/drive_c/users
$ ln -s /home/username/wineEnvs/wineAsioApp/drive_c/users /opt/wineEnvs/wineAsioApp/drive_c/users

Vous pouvez également faire un raccourci sur le script reaper.sh avec l'icône REAPER en vous basant sur ~/.local/share/applications/wine/Programs/REAPER/REAPER.desktop (je vous laisse le soin de le faire mais ne modifiez pas directement ce fichier puisqu'il est utilisé par le script reaper.sh).

Lorsque vous démarrez Reaper n'oubliez pas, dans les préférences, de sélectionner le driver ASIO puis wineasio (voir ci-dessous).

Si vous n'avez pas encore installé le serveur de son jack, je vous suggère de lire cet article.

Documentation sur reaper ...


Le guide utilisateur de reaper est disponible ici (v5.25 à ce jour en anglais) et une proposition de traduction du guide utilisateur v4.25 en français ici (voir le sujet sur le forum reaper francophone).  



Amusez-vous bien !

Vous serez peut-être intéressé par l'installation de Kontakt Player 5 un sampler commercial gratuit (+ une librairie de sons également gratuite) !

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

3 commentaires:

  1. Cet article est peut-être un peu dépassé maintenant, mais il a le mérite de rappeler que Wineasio préfère le 32 bits ! Cela explique sans doute plusieurs de mes mésaventures avec des systèmes récents.
    Merci !

    RépondreSupprimer
  2. Je pense que ce sont les étapes de compilation qui sont à adapter si besoin (version du sdk, de gcc et de wine). Initialement, cet article a été écrit pour Ubuntu 12.04. Le plus simple est d'installer KXStudio pour obtenir facilement wineasio déjà compilé et l'enregistrer auprès de l'environnement Wine qui doit accueillir l'application Asio compatible comme indiqué dans l'article. Si une version 64 bits de wineasio est disponible, elle le sera sûrement dans kxstudio sinon il vous faudra vous contenter de la version 32 bits.

    RépondreSupprimer