GithubHelp home page GithubHelp logo

alastairhmoore / test-jacktrip-wsl Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 31 KB

Test audio generation on wsl played back using host windows

License: GNU General Public License v3.0

PowerShell 100.00%

test-jacktrip-wsl's Introduction

test-jacktrip-wsl

Test audio generation on wsl played back using host windows with jack/jacktrip as a backend.

We will be using the command line to interact with the windows host and the windows subsystem for linux (WSL) "guest". Also, some windows commands need to be run with elevated permissions ('As Administrator'). This can get confusing so take care to enter the commands into the specified shell.

These instructions are organised as follows:

  • Prerequisites
    • Enable scripts to run on Windows
    • Setup WSL2
    • Install and configure linux tools
    • Install and configure windows tools
  • Test
    • Clone this repository
    • Unblock scripts
    • Start jack & JackTrip on WSL
    • Start jack & JackTrip on Windows
    • Test audio pathway using metronome
  • Integrate TASCAR
    • Install
    • Test

Prerequisites

Enable scripts to run on Windows

By default, Windows won't allow you to run scripts on the command line. We need to modify the 'ExecutionPolicy' to something more liberal. More information on the available values for ExecutionPolicy is can be found in this Microsoft article

PowerShell As Administrator:

Set-ExecutionPolicy RemoteSigned

One time setup of WSL2

Setting up WSL2 is pretty well documented so the bare-minimum instructions are given here, based on this site. If you encounter problems or for more information about system requirements have a look there.

Activate WSL2

PowerShell As Administrator:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

PowerShell As Administrator:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

PowerShell:

wsl --set-default-version 2

Install Microsoft Terminal

Microsoft Terminal is a new interface for interacting with the command line. It looks and feels much nicer than PowerShell even when it is actually running PowerShell. One can also setup profiles to make running other shells easier and also run with certain configuration options. The default configuration of PowerShell is fine for running 'normal' PowerShell commands. Apparently it can't be used for PowerShell As Administrator commands.

Get it using this Microsoft Store link

Install Ubuntu

These instructions use Ubuntu 20.04.

Get it using this Microsoft Store link

Initial setup

  • Open the Ubuntu terminal from the start menu shortcut
  • Choose a username and password. N.B. These are independent of your Windows login details
  • Make sure everything is up to date

Ubuntu terminal

sudo apt update
sudo apt upgrade

The rest of these instructions assume you only have one WSL distribution installed or that you are using your default distribution. Using PowerShell check the name and then set the default.

PowerShell:

wsl --list --verbose
wsl --set-default Ubuntu-20.04

Install Linux tools

All commands in this section are run from the Ubuntu terminal

Install jack

sudo apt install jackd2

When prompted to allow real-time priorities, choose "yes".

Check it's been installed to /usr/bin/jackd

which jackd

Check that you can run it

jackd -d dummy -r48000 -p128

Once you have confirmed it is running, press ctrl+c to kill it.

Install jacktrip

Compile from source - latest

sudo apt install -y --no-install-recommends build-essential librtaudio-dev qt5-default autoconf automake libtool make libjack-jackd2-dev
git clone https://github.com/jacktrip/jacktrip.git
cd jacktrip/src/
./build
cd ../builddir
sudo cp jacktrip /usr/local/bin/
sudo chmod 755 /usr/local/bin/jacktrip

Check you have it installed

cd ~
jacktrip -v

If you see something like this, you have successfully installed Jacktrip:

JackTrip VERSION: 1.xx
Copyright (c) 2008-2020 Juan-Pablo Caceres, Chris Chafe.
SoundWIRE group at CCRMA, Stanford University

Install windows tools

This section follows the JackTrip installation instructions from CCRMA which are up to date as of 5-Aug-2020 (v1.2.1 stable).

N.B. The scripts distributed in this repository assume that jackd.exe and jacktrip.exe are installed in particular locations.

Briefly, the steps are...

Install asio4all

This is the audio driver that jack will use to ingest/output audio from the sound card and is the only known working driver on windows).

Download the installer from here and run it.

Install jack

Download the installer from here and run it.

The installer for jack should put the jack executable at C:/Program Files (x86)/Jack/jackd.exe. If it is not, please let me know and I will make the scripts more intelligent.

Install JackTrip

  • Create a new folder at C:\jacktrip_v1.2.1
  • Download the jacktrip.exe executable directly from here and place it in the newly created folder.

You should now have the JackTrip executable at C:\jacktrip_v1.2.1\jacktrip.exe

Test that everything works

Clone this repository

It shouldn't matter where you put it, but generally it is wise to avoid spaces in the path. For simplicity these instructions use the Windows root directory

PowerShell:

git clone https://github.com/alastairhmoore/test-jacktrip-wsl.git C:\test-jacktrip-wsl

The remaining commands assume that you are in the folder you just cloned, i.e., in our case

PowerShell:

cd C:\test-jacktrip-wsl

Unblock the scripts

As part of the prerequisites the ExecutionPolicy was set so that scripts you create yourself can now be run. However the scripts in this repository were downloaded and so need to be specifically unblocked.

PowerShell As Administrator:

dir C:\test-jacktrip-wsl\*.ps1 | Unblock-File

Start the WSL processes...

Note that JACK on WSL needs root privileges. The script runs processes on WSL as the root user (of the distribution). This is safe enough as long as you run this script from a normal shell in windows (i.e. don't do a 'run as administrator')

PowerShell:

.\start_wsl.ps1

Start the local processes...

Spawn two more windows - one each for jack and JackTrip on windows

PowerShell:

.\start_local.ps1

Test that audio works...

Start a metronome on WSL and connect it up to the left speaker, then disconnect/stop whilst leaving the jack/JackTrip processes running for future use.

PowerShell:

.\test_metronome.ps1

Integrate TASCAR

Install

Follow instructions from tascar.org

For Ubuntu 20.04 these are

Ubuntu terminal:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7D6CDF547DA4ABD
sudo apt-add-repository 'deb [arch=amd64] http://apt.hoertech.de/ focal universe'
sudo apt update
sudo apt install tascarpro

Test

PowerShell:

.\start_wsl.ps1
.\start_local.ps1
.\test_tascar.ps1

You should hear

  • a harmonic complex (tone) to the left
  • pink noise to the right
  • a click train circling your head on the horizontal plane

test-jacktrip-wsl's People

Contributors

alastairhmoore avatar

Watchers

Mike Brookes avatar  avatar

test-jacktrip-wsl's Issues

[OSB] Update installation instructions for `jacktrip`

I ran the following command instead:

./build nogui install

Without the nogui option, it tried and failed to build the GUI for it. The install option means not having to manually copy the binary after building.

I should say that I was doing this with Ubuntu 22.04, rather than 20.04, which also meant I had to apt install some slightly different packages. I can give more info if you'd like to update the README for Ubuntu 22.04.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.