Add your music

How an album goes onto a site you own, starting from nothing. It takes no code and there is nothing to configure.

Before you start

You need a WordPress site. WordPress is free software that runs on a web host. Most hosts set it up in a few clicks, and any host will do as long as it runs WordPress 7.2 or newer. Once it is up, you sign in at your site's address followed by /wp-admin. That is the dashboard, where everything below happens.

Then install Riff. In the dashboard, go to Plugins, then Add New Plugin, then Upload Plugin, choose the zip, and activate it.

Get Riff

No site yet? The demo is a WordPress site running in your browser with Riff already installed. Its dashboard is at /wp-admin too, so you can follow every step here without a site of your own.

Make your Listen page

The Listen page is where your music lives: every album as a cover, browsing by album, artist and track, and one search box. The music keeps playing while visitors move around it.

After you activate Riff, the Dashboard shows a notice. Press Create Listen page and it's done. To make it yourself:

  1. Go to Pages, then Add Page, and title it Listen, or whatever you like.
  2. Click the empty line, type /riff and choose the Riff block.
  3. Press Publish.
The editor with a page titled Listen holding the Riff block, which shows the library as it will be on the site: Home, with the demo's four albums under Recently added
The Riff block on a page, showing the library as it will be on the site: every album as a cover.

To make it the front page of the site, go to Settings, then Reading, choose A static page, and pick it as the homepage.

Add app/ to the page's address, for example /listen/app/, and the same page opens as a player on its own, in Riff's dark look and without your theme. A browser can install that address as an app.

Upload your music

  1. Go to Media, then Add New Media File.
  2. Drag in an album's tracks, all at once. MP3, M4A, FLAC, WAV and OGG all work.

That's it. Open your Listen page and the album is there, with its cover, ready to play. Tap a track and the player bar appears along the bottom. It keeps playing while you scroll, open another page, or lock your phone. Tap the bar for Now Playing.

Titles, artists and covers come from the files

Riff reads the title, artist, album and cover art from the tags inside each file, the same tags your music app uses. It also shows each track's quality, such as MP3 · 320 kbps or FLAC · 24-bit 96 kHz.

If a file has no tags, or the wrong ones, go to Media, then Library, click the file and fix them there. The same screen has two fields Riff adds. Artwork is a cover for that track. Video version is a video in the library, for a song that has one; listeners can switch between the song and the video while it plays. A video file has a Captions field of its own, for a WebVTT file in the library, which listeners can turn on in Now Playing.

The attachment details for an audio file: Title, Artist and Album fields filled in from the file, then Riff's Artwork and Video version fields
A file's details. WordPress filled in the title, artist and album from the file. Artwork and Video version are Riff's.
A drawn cover: a grey record with a lemon-yellow label on charcoal, the title Carols of the Season in serif type, and the singers' name beneath

If an album has no cover at all, Riff draws one: a record with one groove per track, each groove as long as the track. The demo's albums wear them.

Give an album its own post

To write about an album, or to play it on its own page with the rest of your site around it, put it in a post:

  1. Go to Posts, then Add Post, and type the album's name as the title.
  2. Click the empty line below it, type /playlist and press Enter.
  3. Choose the tracks from the Media Library, or upload them here. Drag them into order.
  4. Press Set featured image in the sidebar to give it a cover, then Publish.
A new post titled Songs of the Republic with an empty Playlist block offering Upload and Media Library
A new post with its Playlist block, ready for the files.
The WordPress editor with a post titled Compositions: a line of text and a Playlist block listing ten numbered tracks, with the cover shown as the featured image in the sidebar
An album in the editor: the title, a line about the band, and one Playlist block holding the tracks. The featured image on the right is the cover.

An Audio block for each track works too: type /audio instead.

Make the post private, a draft, or password protected, and its tracks stay off the Listen page for visitors until you publish it.

Many albums at once

Most albums arrive as a zip. Upload the zip to the Media Library, as you would any file, and Riff unpacks it in the background and gives each album in it a private post, with each track Protected, and attaches the zip to it. A cover image beside the tracks becomes the artwork. A zip still unattached a while later could not be imported; wp riff import on it says why.

A zip is private because it is how a store's download arrives. Music you bought, from Bandcamp say, is for your own listening: you and the site's editors and administrators hear it, and the open web doesn't. For listeners who sign in to hear it too, turn on Private site under Settings › Reading and publish the posts. If the music is yours, your own releases, publish the posts. The zip itself stays at its public address in uploads, so delete it from the Media Library once the album is in. A track already in the Media Library is skipped and stays as it was.

If you have a folder per album and your host gives you WP-CLI, wp riff import with the path to the folder uploads everything and gives each album a published post, or a private one with --private. With the path to a zip it imports it privately, or publicly with --no-private. Run it again and it skips what it already imported; add --dry-run to see what it would do first.

Your own tracks from SoundCloud

If your catalogue is on SoundCloud, bring the files you uploaded there: the masters you made them from, or the copies you downloaded from your own SoundCloud tracks. Put each album's tracks in a folder of its own, and singles each in their own, with the artwork beside them named cover.jpg, then zip the folders and upload the zip to the Media Library, or give the folder to wp riff import. Publish the posts, and your catalogue lives on your own site.

Titles come from the files' tags, and a WAV file usually has none, so name each file the way it should read, such as 01 - First Song.wav. AIFF files aren't imported, as only Safari plays them: export WAV or FLAC instead. Only your own tracks: other people's download only where their artist allows it, and tools that pull them from SoundCloud break its terms. Riff can't sign in to SoundCloud and fetch your uploads for you yet (#824).

From a public archive

Archives publish recordings for anyone to reuse. With WP-CLI, wp riff archive loc imports the Library of Congress's, starting with the Edison companies' sound recordings, or a collection or an item you name by its address. wp riff archive europeana "gramophone" --key=yourkey searches Europeana, with a key it gives anyone who asks.

Rights are per recording, so Riff reads each one's rights statement and imports only what is marked public domain or under CC0, CC BY or CC BY-SA, or, from the Library of Congress, what its statement says it knows of no U.S. copyright in, credited as just that. It lists what it skipped and why. Check the rights where you are, too: the Library speaks only for the U.S. Each track keeps its source, licence and credit in its caption and description, the About panel shows the credit, and each album's post opens with it. Your site credits the archive; it doesn't present itself as the archive. Add --dry-run to see what it would take first.

Stuck? Open an issue and say what you tried. If something here is wrong or unclear, that is a bug in this page too.

Edit this page on GitHub