Skip to content

watson-music/watson-beat

 
 

Repository files navigation

The Watson Beat Workshop

AGENDA

Step 1: Download the project

Step 2: Set up for development and install dependencies

Step 3: Choosing a song (MIDI file)!

Step 4: Choose how Watson interpretes your song (ini file!)

Step 5: Create a folder for music and run terminal command with MIDI and ini selected

Step 6: You now have a song from Watson. Open the auio editor

Step 7: Import MIDI files from Watson to audio editor

Step 8: Apply virtual instruments to the song

Step 9: Export the file as a .wav or .mp3

Step 10: Listen to it 800 thousand times, email it to friends & fam or put on your resume "made music with Watson DBN"!

If you are a beginner - I will provide guidance for Windows and Mac OS. If you have Linux, I am going to make a vote of confidence and assume you know where your terminal is.

Using machine learning to spur human creativity is so 2018! Watson has used a combination of reinforcement learning and neural networks to create the Watson Beat.

What is Watson Beat and how does any of this happen?

This repo, is all the code for the The Watson Beat. It all runs locally using the terminal. To run it, there are a few things you need set up on your local computer first, like python 🐍!

Inputs

  • a simple 10-20 second melody file in midi format
  • parameters for the creativity engine

Outputs

  • Several layers of music in midi format that Watson created using your input as inspiriation

Start Here!

Step One: Download the Watson Beat Project

  1. Go to the top of this page for the Watson Beat repository, and download it. Images of how to do this are below.

Press the green button, then press "Download ZIP"

Do you have anything to unzip ZIP files on your computer?

If not, you can find one on FileHippo like 7Zip.

Please unzip the project folder from here using what program you have to perform this extraction.

image

image

  1. If you know terminal commands for the operating system you are working on, cd into the project folder you downloaded.

If you do not know terminal commands, you are about to learn them! Open this following link in a new tab (right-click the link and select "Open in new tab"): Instructions on calling the directory


Step Two: Set up for development

Here are some directions to get your machine set up to run code

Step Three: Choose a song (MIDI file)

  1. In your terminal where you are in your project directory, cd src.

  2. If you are on Windows, now dir, for UNIX (Mac & Linux, etc), ls

    NOTE: See the directory called Midi? MIDI stands for Musical Instrument Digital Interface. It is a protocol (not an audio file) designed for recording and playing back music on digital synthesizers that is supported by many makes of personal computer sound cards. AKA, these are the songs we are telling Watson to translate. If you already know this, you have used audio editors before, and you have Reaper or audio editors that can modify MIDI files already, you can use whatever MIDI files you have on your system, or from here https://freemidi.org/ and modify the file down to about 10-30 seconds for Watson to consume. If you want an entire song past 10-30 seconds, you will have to do this in batches.

  3. Pick a song! It might be hard to do without knowing what the song sounds like though.

    So look into this MIDI directory outside of your terminal! Since we have already established where this is on your system by going through this via your terminal, it should be fairly easy for you to find in your file system! If not, you can likely search for it by the keyword 'midi'. When you click on them, do they play? If not, no worries, I will show you how to play them.

  4. [TO PLAY MIDI FILES]: Open up Soundtrap or Soundation for Chrome or Firefox!

image

Soundtrap is shown in the above image. I find this a better and easier audio editor - though I am fairly sure this requires you to share your email address to start with it.

It is a browser-based audio editor as well, what I like is the diversity in assigning the virtual instruments is a ton easier and more intuitive than Soundation for beginners.

In using Soundtrap, all you need to do is drag-and-drop a MIDI file into your editor and press the play button at the bottom of your screen.

For Soundation folks, follow this image below. Open File and "Import MIDI file". Then press the PLAY icon at the bottom of the screen to play your file.

image

Have in mind which song you want to choose yet? Record this as a note of which MIDI file you want Watson to interprete!

Step Four: Choose how Watson interpretes your song (ini file)

There are two main ingredients to prepare to create your song with The Watson Beat. First, you need a midi file with a simple melody. Best results come when you keep this short, about 10 seconds. Also, leave some space between your notes to give the creativity engine some wiggle room.

The second ingredient is the ini file. The ini file give the creativity engine all of the spices to use, including time signature, "mood," and tempo. Reference to advanced usage of ini that is not a part of tutorial

For now, choose by keyword from the different ini files in your project directory for sake of simplicity! The folder with ini files is within the src directory.

image



Make a note on the ini file you have selected!!!

Step Five: Create a folder for music and run terminal command with MIDI and ini selected

  1. Go back to the terminal that has your project directory we went into in regards to Step One.

Windows: type cd only. This shows you where you are right now in regards to directories. Are you in the /src directory? If not, cd src.

UNIX people: type pwd to see your path. Are you in the /src directory? If not, cd src within your project directory.

From here, you are going to make a directory for your own music Watson processes! Then from there, you make your own jams with Watson in the audio editors!

For every operating system in this tutorial, mkdir [PICK A NAME FOR YOUR MUSIC DIRECTORY].

For example, my music directory is creatively called music

2. Now, cd [NEW MUSIC DIRECTORY]. You might have a few songs you want to do with Watson. So what I did was made folders per the output Watson gives me for each song. So you can do what I did and make another directory for your first song!

mkdir [FIRST SONG NAME]

My first song's directory is called first_song.

UNIX NOTE: If you want whitespace in your directory's name, for UNIX you can Tab after using a few of the letters of the directory's name when in the terminal or you can escape the whitespace via terminal with a backspace \ for the whitespace.

Okay so we are all set for neatly output of files from Watson!

3. MAKING YOUR SONG!!!!




Here is the command from the terminal we will be entering with your selected `MIDI` and `ini` and output folder you made!
python wbDev.py [-i INIFILE] [-m MIDIFILEPATH] [-o OUTPUTPATH]

In your /src directory, you should see this wbDev.py file. You should be in the directory in which if you dir (for Windows) or ls for UNIX, you should see this file.

Now lets formulate your command here. Here is an example of what I did.

python wbDev.py -i Ini/Space.ini -m Midi/reaper_ellie.mid -o /Users/jrnash/Documents/watson-beat-master/src/music/song-three/

Using the example above, formulate your own command! Remember to see the full path of your output folder, you can cd on Windows per where that folder is located, or pwd the path per where that folder is located.

Now go look in that output folder you specified in your command? See a bunch of files?!!

Step Seven: You now have a song from Watson. Open the audio editor per your operating system or Soundtrap / Soundation!

You should have a slew of files like this now.

Let this list below be a guide as far as the virtual instruments you apply to make your songs in the next steps!

image

Step Eight: Import MIDI files from Watson to audio editor

All Operating Systems can use Soundtrap or Soundation in the browser as long as they can use Firefox or Chrome

Others...

Mac: Garageband

Windows: Mixcraft

Linux: Soundtrap, Soundation, online DAWs. LMMS has a learning curve.

SOUNDTRAP

Highly recommended.

Soundtrap

image

SOUNDATION

Using the image from Soundation above in Step Three, you can import several MIDI files into Soundation

Open up Soundation for Chrome or Firefox!

GARAGEBAND

Mac: Download Garageband

You can drag and drop your MIDI files from Watson into Garageband!

This is for Mac users only: Go to App Store and search for Garageband, its a free download. :)

image

MIXCRAFT

(Download: 7 minutes)

You can drag and drop your MIDI files into Mixcraft as well!

Download Mixcraft

Step Nine: Apply virtual instruments to the song

Soundtrap You see the lefthand side, the image of possibly a piano on your MIDI track?

Let's see how we change this.

image

Click on the icon as shown.

image

Now click on the name of the instrument it currently is set to. In my case, it is "Strings".

image

Now we have a bunch of free virtual instruments to assign to the track!! You can remain on this screen actually, and press the play button and also go through the track while assigning different instruments to hear how they sound with your music!

Soundation

Here is an image to show how to add new instruments

image

Mixcraft, this is the "keyboard icon" per your track, example image

Garageband, Its in the library on the lefthand side of your screen. Then you can even download new instruments too.

Step Ten: Export the file

.... and make your mark on Watson music history!

Soundtrap

Go to the navigation bar and select Export to export your song as an mp3 or WAV file.

image

Soundation: Export by going up to File in the navigation bar and click Export to .wav file

Garageband: Go to Share in your navigation bar and click Export Song to Disk or any of the other options

Mixcraft: Go to File in your navigation bar and click Mix Down To and select with audio file you want to do this.

HAPPY COMPOSING!

Video Tutorials

How to Change the Length of a Composition

Importing MIDI Files

How to Customize Moods Part 1

How to Customize Moods Part 2

License

See LICENSE.txt

Original Authors: Janani Mukundan, Jeremy Hodge, and Richard Daskas
Assign Pull Requests to: amchaney

About

Watson Beat - Helping others make their own music!!!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%