This project is currently in a state of heavy development and is not yet intended for deployment
-
Listen uses Jekyll to generate a (mobile-friendly) static website that can be served locally or online using GitHub pages
-
The theme includes different interfaces for conducting listening tests, via the Web-Audio API. At present, interfaces are limited to a soundboard and a MUSHRA-inspired slider interface. Expected additions include:
- MUSHRA with vertical sliders
- N-Alternative Forced Choice
- Method-of-Adjustment
- AB Test
- Likert Scale
-
For online tests, Staticman is used to process results (submitted by participants) as data files and uploaded to your GitHub repository
-
Listen includes a Python package for parsing, compiling and analysing these data
Listen has been used in the following projects:
- Perceptual evaluation of source separation algorithms
- Perceptual Evaluation of Source Separation for Remixing Music
-
Install
rbenv
to manage Ruby. You may need dependencies forrbenv
, see heregit clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc
-
Install
ruby-build
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
-
Install Ruby and set the default global version
rbenv install 2.4.1 rbenv global 2.4.1
-
Install the bundler gem
gem install bundler
-
Install Jekyll
gem install jekyll
Note: You can install the pre-built Node.js
(with npm
bundled) installer
here
You can install Node.js
and npm
locally as follows (based on this
example):
mkdir ~/local
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
git clone https://github.com/nodejs/node
cd node
git checkout v9.8.0
./configure --prefix=~/local
make install
cd ../
git clone https://github.com/npm/npm
cd npm
make install
The following assumes that your static site will live on the gh-pages
branch
of your website
-
Clone this repository
git clone https://github.com/deeuu/listen
-
Change the remote URL, e.g.
git remote set-url https://github.com/USERNAME/REPOSITORY.git
-
Edit the following files:
./site/_config.yml
: set thetitle
of your site../site/_config.yml
: replace theurl
item, i.e.https://USERNAME.github.io/REPOSITORY
-
Add Staticman to your repository:
- Go to your GitHub repository and hit the Settings page
- Go to the Collaborators tab and add the username
staticmanapp
- Accept the invitation at
https://api.staticman.net/v2/connect/{your GitHub username}/{your repository name}
-
Update the homepage
./site/index.md
, e.g.--- layout: page title: Welcome next_url: /mynewpage/ --- # Welcome to Listen
-
Create a new page under a new subdirectory in the
./site/_pages
folder:mkdir ./site/_pages/mynewpage touch ./site/_pages/mynewpage/index.md
-
Add the following frontmatter and text to
./site/_pages/mynewpage/index.md
:--- layout: page permalink: /mynewpage/ title: Greetings --- Welcome to my new page!
-
Replace the contents of
./site/_data/menu.yml
(or delete this file if you don't want a navigation menu) with:- title: Welcome url: / - title: My new page url: /mynewpage/
-
Install the needed Gems from inside
./site
:bundle install
-
Install npm dependencies under
node_modules
(you make run into installation/build errors if python 2.7.x is not in your PATH (e.g. switch the local environment if using pyenv)):cd ./site npm install
-
Still inside the
./site
directory, build your site and push it togh-pages
:npx gulp deploy
-
Visit
https://USERNAME.github.io/REPOSITORY
- Build and serve locally with
npx gulp
(inside./site
). This will generate the static site inside./site/_site
which will be served atlocalhost:4000
.