folkrnn

generate a folk tune with a recurrent neural network

RNN Properties
Tune Properties

About Folk RNN

This website lets you generate music using an artificial intelligence called a “recurrent neural network” (RNN). It's called “folk-rnn” because the RNN is trained on transcriptions of folk music. Each press of the ‘compose’ button will create a new tune, shaped by your initial input. For example, raising ‘temperature’ will make the algorithm more adventurous. Or if a generated tune has a feature you like, you can copy that back into the ‘Initial ABC’ field and generate new tunes led by that feature.

Folk music is part of a rich cultural context that stretches back into the past, encompassing the real and the mythical, bound to the traditions of the culture in which it arises. Artificial intelligence, on the other hand, has no culture, no traditions. But it has shown great ability: beating grand masters at chess and Go, for example, or demonstrating uncanny wordplay skills when IBM Watson beat human competitors at Jeopardy. Could the power of AI be put to use to create music?
— ‘Machine folk’ music composed by AI shows technology’s creative side. The Conversation, March 2017

Why do this? As that article goes on to say, the original folk-rnn was developed, and its developers composed music using its successes and failures. This website aims to make that possible for everyone. It’s a tool anyone can use.

Demonstration

Frequently Asked Questions

How might I co-create with folk-rnn?

To get started, you might want to simply download a generated tune and import it into your composition app of choice. For each generated tune this site exports MIDI. The downloaded files have successfully been imported into e.g. Logic. It's worth noting that site is not, and never will be, a composition app where you can then hand-edit the tunes generated by folk-rnn. That's already well served elsewhere.

Explore the generation parameters. The ‘about’ section mentioned raising ‘temperature’. 1.0 is normal, 2.0 is more wild, and 0.5 more cautious. It also mentioned copying back into the ‘Initial ABC’ field features in the generated tune you like; to make this easier clicking on notes in the staff notation will highlight the associated note in the generated ABC. Or, take some of your favourite tunes and set ‘Initial ABC’ with a snippet of ABC from there.

See these useful links:

  • Getting ABC - JC's ABC Tune Finder
  • Getting ABC - The Session, a community website dedicated to Irish traditional music
  • Transposing ABC - Mandolin Tab's ABC Converter

You can see a winning example of co-creation here, and more on The Machine Folk Session.

What is ABC Notation?

The transcriptions are in ABC format, which is a way of writing music with plain text. “In basic form it uses the letters A through G to represent the given notes, with other elements used to place added value on these - sharp, flat, the length of the note, key, ornamentation.” – more on wikipedia. We also transposed everything into the key of ‘C’ so folk-rnn learnt the patterns in the music rather than the differences in key.

For more on ABC itself:

  • Getting started with ABC
  • Understanding ABC
  • ABC format standard

What's the difference between the models?

The style of the generated music comes from the model chosen. Each model is the result of training the network on source material, in this case all of the tunes archived in thesession.org or all of the tunes in folkwiki.org. For tunes modelled on (mostly) celtic folk music, choose one of ‘thesession.org’ models – one variant has the repeat signs preserved (w/ :||:) and the other has the repeats unrolled (w/o :||:). For tunes modelled on swedish folk music, choose ‘folkwiki.se’.

Are there issues with playback on this site?

Sometimes, yes. The same goes for the staff notation. The open source library abcjs is used to render the tunes that folk-rnn generates, which includes the audio playback. It’s an amazing library, but is not always perfect. And sometimes this site asks the impossible, given folk-rnn doesn't always output entirely valid ABC. In these cases, try downloading the MIDI and playing back on your device of choice.

Your generated tune

The RNN properties were with seed and temperature .

The prime tokens were .

Requested on .

Generated on .

Hear it

See it

Save it

The Machine Folk Session is a community website dedicated to folk music generated by, or co-created with, machines. Give your generated tune a title, hit 'Archive', and it will become part of the collection there. You'll be taken to its page on the machine folk session site, where you can hand-craft settings of the tune and discuss it with others.

Credits

folk-rnn is a project funded by the UK Arts and Humanities Research Council, grant no. AH/R004706/1: "Engaging three user communities with applications and outcomes of computational music creativity". The generated tunes and the patterns of use that generated them may be used for research purposes, such as this grant.

The original folk-rnn project page, where the algorithm and models were developed, is here: https://github.com/IraKorshunova/folk-rnn. It links to several compositions created by folk-rnn that have been performed live, analysed and so on.

Web application by Toby Harris. Please report any issues here.