MT5, a multitrack player for musicians

De $1

Current version of MT5

Version 1.0 is running at http://mt5demo.gexsoft.com right now, and its source code is available (under GPL licence) on https://github.com/squallooo/MT5).

Introduction

MT5 is a multitrack player based on the Web Audio API. It’s open source, runs on multiple devices (all recent desktop browsers except IE, all IOS browsers based on Safari Mobile, Android Chrome, Opera and Firefox mobile). It has been entirely developed in a web browser using the Cloud9 online JavaScript IDE.

Michel Buffa (main coder and designer, @micbuffa on twitter and github) and Amine Hallili (HTML GUI), authors of this webapp, are involved in several teaching activities related to Web Audio, are amateur musicians –rock guitarists who play in bands, and have been taking guitar lessons in public music schools for years. In 2012, The W3C proposed a number of online training courses on key technologies. One of the authors (Michel Buffa) is in charge of the HTML5 course , and has to cover the different APIs that come with this standard, including the Web Audio API. The writing of MT5 – a multitrack player in a web browser- started as a small hack to learn how this technology worked.

Several multitrack datasets were available on the net, such as MedleyDB , which was primarily developed to support research on melody extraction (and included 122 multitrack songs), or The 'Mixing Secrets' Free Multitrack Download Library made for practicing mixing. Writing a web application that could play multiple tracks in sync was kind of a challenge back in early 2013. A proof of concept quickly worked and we used it as a theme for a master student course (in french) at the Polytech Nice engineer school  in France.

In addition to the free, legal, multitrack datasets, our students rapidly found multiple bittorrent/mega files  packed with hundreds of rock classics songs played by original artists such as the Rolling Stones, Metallica, Guns’n’Roses, etc. We found out that these songs came from different sources: most have been ripped from the video game series Rock Band and Guitar Hero (that included songs with 3-16 tracks depending on the version of the games), some came from sites like hdtracks.com that propose high quality, master multitrack songs (Queen, David Bowie) for sale, some have been released officially on collector compact disc editions -this is the case of a few Led Zeppelin songs- and finally some had tracks separated from the original stereo mix using audio editing software (this is the case of some songs by “The Police” where we can hear the other instruments on each separate tracks, if we listen carefully). Being able to play and mix in a browser these classic rock songs by original artists led MT5 to become popular in private circles such as students from our web technology courses, musician friends or musician students from the rock class in our public music school.  People started to install MT5 on their laptop or on private servers at home, with restricted access for friends.The music school's rock band played rock classics, and most of the songs the members had to learn were available in a multitrack format in these bittorrent archives. Along with Guitar Pro and YouTube, MT5 found its place. You want to learn Aerosmith, ok, but what if Steven Tyler sang along with you instead of a midi generated melody? You think this guitar tab is not faithful, you think this is not how Angus Young from AC/DC really plays its guitar solo in Back in Black? Isolate his track and listen carefully! Then mute the track and try yourself. Just with your web browser.

The current version  is rather stable and runs on any recent browser except Internet Explorer that will support Web Audio in version 12. It also runs on Safari, Chrome and Firefox mobile. It is open source and available on Github at https://github.com/squallooo/MT5. A demo is online at http://mt5demo.gexsoft.com but it's easy to set it up on your server. Just go to github and follow the instructions in the readme. A NodeJS server is required.

How to use the online version

Load and Play a song

Just go to http://mt5demo.gexsoft.com, and click on the drop down menu:

 mt5_1.jpg

Select a song, it will load asynchronously the different tracks and when they are all loaded the play button will be enabled.

You can click it to play the song.

Set the song master volume, mute the whole song

The master volume is the blue ring on the right of the control buttons. It can be easily used on a touch device too. The speaker icon in the middle of the blue circle can be used to mute the whole song. Unmuting it will keep the previous value of the master volume.

mt5-6.jpg

Jump to any part of the song

Just click anywhere on the wave forms of any track. This will jump automatically to the given position.

Mute, Solo or change volume of any track

You can use for that the sliders and buttons on the right of each track.

Mute:

Click the small icon that looks like a speaker. More than one track at a time can be muted.

mt5-2.jpg

mt5-3.jpg

Solo one or more tracks:

mt5-4.jpg

Mute and mix can be useful:

mt5-5.jpg

Loop mode

Loop mode is very useful for musicians. You can select a loop area using the "start loop" and "end loop" buttons, or you can click and drag on the wave shapes directly. Setting a loop region will do nothing unless loop mode is engaged by pressing the "loop button" on the right. The "reset loop" button will clear the loop region.

mt5-7.jpg

mt5-8.jpg

mt5-9.jpg

Record a mix of the song as a .wav file on your hard disk or on your phone SD card

This is useful to make backtracks that can be used outside of MT5. This feature is still experimental and works only with Google Chrome Desktop or Mobile (or any future browser that implements the FileSystem and FileWriter APIs from HTML5).

Just select the "record mix button", set volumes or mute/solo tracks, play, listen and stop or unpause the song. When the sound stops, a file will be written. Filenames change if you do this more than once, a number will be incremented at the end of the filename.

 mt5-10.jpg

mt5-11.jpg

What is this button for ?

mt5-12.jpg

It's for a future "record" mode....

How can I add new songs ?

You can't with the current version. But if you install it on one of your machines/servers, just add tracks to the client/multitrack directory. A song is a directory (name of dir = name of song), and tracks are files inside (name of file = name of track).

Get the source at the github repository and follow the instructions to run it. You will need a nodeJS server and the express module.

I found a bug, what can I do ?

Use the Issue report tool from the github repository of MT5 (https://github.com/squallooo/MT5/issues), or just send a message on twitter (@micbuffa) or to the admins of the project on github. If you propose a fix it's even better !

I would like new features ?

You can always ask Michel Buffa on twitter (@micbuffa). A forum should appear one of these days for discussing MT5.

How can I contribute ?

Get the sources, improve or fix ! 

What will the new version propose ?

For sure: guitar pro tab display in sync with songs that have an associated tab. Video tutorials in sync with music + tabs too. It will be available when it's ready !

You can watch some videos of the prototype we're working on. Early drafts...