Faircamp 2.0 Docs
On this page ☰

Artist settings

Artists are automatically determined by Faircamp by reading your audio file metadata, and their names will show up alongside your tracks and releases automatically.

Besides this automatic attribution of artists, Faircamp allows you to explicitly define artists as their own entities on your site, and this is almost exclusively what this reference page is about.

Explicitly defining an artist gives you additional possibilities with fine-grained control, such as:

  • Rendering a dedicated page for an artist
  • Linking the artist's name to an external page wherever it appears
  • Making the artist discoverable through your site's browse/search navigation

To expliclity define an artist, create a directory for it in your site directory and put a (plaintext) manifest file with the name artist.eno inside it. The artist name will be automatically derived from the directory name, but it's generally recommended to use the name option to specify it inside the manifest.

An example artist.eno file:

name: Alice
permalink: alice-artist

aliases:
- Älice
- Alice2k

false_aliases:
- Alice (feat. Bob)

image: example.jpg

-- image_description
Alice with her guitar collection
-- image_description

-- more
Alice is a classic recording artist from the 70ies.

Over the years she has appeared in various collaborations, most notably with Bob.
-- more

The remainder of this page alphabetically lists all available settings for artists.

aliases
Local-only This artist setting can not inherit default values from other manifests

aliases:
- Älice
- Alice2k

aliases should be used when an artist uses different names/pseudonyms on different releases and the following things apply:

  • You want the artist to appear under its respective name/pseudonym on each release
  • You want the artist (with all its aliases) to appear on a single artist page only

Besides aliases there is also the artist.false_aliases setting, which can be used to normalize the naming/spelling of an artist across different releases – see artist.false_aliases.

copy_link
Default-able Use the prefixed form artist.copy_link outside of artist manifests

copy_link: disabled

To disable the "Copy link" button (by default it's enabled) you can use the copy_link option, with either enabled or disabled as value.

external_page
Local-only This artist setting can not inherit default values from other manifests

external_page: https://example.com

Artists that have their own website outside of the faircamp page can be linked to their own page with this setting. In that case the artist, wherever it appears, is always linked to that external page, and no local page is generated at all, or rather: It becomes a redirect to the external page.

false_aliases
Local-only This artist setting can not inherit default values from other manifests

false_aliases:
- Älice
- Alice feat. Bob

If, as often happens, different audio files use slightly different versions of an artist name (e.g. "Älice" vs. "Alice"), or the artist appears in collaborations (e.g. as "Alice feat. Bob"), you can specify false_aliases that will be replaced with the artist's name on all matching releases/tracks.

Note that it is possible to replace an artist attribution that mentions multiple artists with multiple artists, e.g.: "Alice feat. Bob" can be specified as a false alias both for the artist Alice and the artist Bob, which will associate the release/track with both artists.

Also see the related aliases setting, which can be used to associate an artist with different names/pseudonyms while retaining these different names/pseudonyms across different releases.

Further examples

Correcting the naming/spelling of the artist to Alice on releases/tracks where the artist is varyingly spelled as Älice or alice:

name: Alice

false_aliases:
- Älice
- alice

Attributing releases/tracks to the artist Alice when it is listed with other artists in collaborations:

name: Alice

false_aliases:
- Alice feat. Bob
- Bob × Alice

feeds
Default-able Use the prefixed form artist.feeds outside of artist manifests

Heads up: You need to set site.base_url so that faircamp can generate feeds.

By default faircamp provides two feeds that your visitors can subscribe to: An Atom feed and a plain RSS feed (RSS 2.0 without media or podcast extensions), both of which are simple "blog-like" (purely text and image based) feeds that provide updates linking to your new releases so that people can listen to new material on your site only (this is the textual feeds setting).

If you are publishing (a) podcast(s) on your faircamp site, set the feeds option to either podcast (to provide only a single, Podcast RSS based feed), to media (to provide only Media RSS and Podcast RSS feeds) or to all(to provide all textual and media feed types), for instance:

feeds: podcast

Note that the Podcast RSS feed for an artist will include all tracks of all multitrack and track releases of the artist mixed together in a single feed. You can also enable feeds at the multitrack release level – that is the recommended setup for hosting podcasts (where each multitrack release is a podcast).

If you want to disable all feeds you can use this option:

feeds: disabled

If you need a very specific feed configuration, you can also use the discrete atom, media_rss, plain_rss and podcast_rss options in a list. For instance to provide only an atom feed:

feeds:
- atom

Or, to provide only plain RSS and Podcast RSS feeds:

feeds:
- plain_rss
- podcast_rss

homepage
Local-only This artist setting can not inherit default values from other manifests

homepage

Makes the artist's page the homepage of your site. There is only one homepage, so this setting can only be used in one place at a time.

image
Local-only This artist setting can not inherit default values from other manifests

image: example.jpg

Specify the path of the image, relative to the directory the manifest is in (so if the image "example.jpg" is in the same folder, just write "example.jpg", if it's in the parent folder write "../example.jpg", and so on).

Safe area

The artist's image is shown in different ways depending on the screen size and browser viewport of a visitor's device. If you include e.g. a logo in the image, parts of it might be invisible due to the automated cropping done by faircamp. This section describes how to include content within the image in such a way that it never gets cropped away:

The least wide the image is shown is at an aspect ratio of 2.25:1 (corresponding e.g. to a resolution of 225x100, 675x300, etc.), that's on very wide and very narrow screens. The widest it is shown (when the browser is just below 960px wide) is at an aspect ratio of 5:1 (corresponding to a resolution of 500x100, 1500x300, etc.). If you create your image with an aspect ratio of 5:1, so e.g. at 1500x300, and place the text that should be not cropped within a rectangle of 2.25:1, so within a 675px wide rectangle at the center of the example 1500x300 image, the text should always be fully visible, uncropped, and only the parts to the left and right will get cropped off.

|<-------  5:1 (e.g. 1500×300)  ------->|
┌─────────────┬───────────┬─────────────┐
│             │           │             │
│   CROPPED   │ LOGO SAFE │   CROPPED   │
│             │           │             │
└─────────────┴───────────┴─────────────┘
              |<--------->|
           2.25:1 (e.g. 675×300)

image_description
Local-only This artist setting can not inherit default values from other manifests

-- image_description
Alice with her guitar collection
-- image_description

If you use an artist image, make sure to include an image_description so that visually impaired people can also make sense of it (this description is used as the alt text for the image).

You can either provide a multiline or inline value according to your preference and required length for the description. A multiline example:

-- image_description
A photograph separated into two planes:
In the foreground, an old lady, smiling into the camera.
In the background, an unrecognizable mechanical contraption.
-- image_description

An inline example:

image_description: A photograph of a cat, tiptoeing over modular synthesizer panels

links
Local-only This artist setting can not inherit default values from other manifests

links:
- The artist elsewhere https://example.com/my/music/elsewhere/
- Social media https://social.example.com/@account-a
- Discography #discography
- https://example.com/something/else/

You can supply any number of links, these are prominently displayed in the header/landing area of your artist page. Links can be full urls (e.g. "https://example.com") or references to anchors within the page (e.g. "#about").

For each link you can supply either just the bare link (e.g. - https://example.com, or (more commonly) add a label for the link, which can be put before or after the link itself (- Example Label https://example.com or - https://example.com Example Label).

m3u
Default-able Use the prefixed form artist.m3u outside of artist manifests

This controls the generation of an M3U playlist for the artist - it is disabled by default.

To enable the M3U playlist for an artist:

m3u: enabled

To disable the M3U playlist for an artist:

m3u: disabled

more
Local-only This artist setting can not inherit default values from other manifests

-- more
Alice is a classic recording artist from the 70ies.

Over the years she has appeared in various collaborations, most notably with Bob.
-- more

This field lets you provide long-form content of any kind to augment the artist's page with: A biography/discography, list of upcoming shows, personal message, further links to the artist, etc. When provided, this content appears right after the releases on an artist's page.

The more field supports Markdown.

more_label
Default-able Use the prefixed form artist.more_label outside of artist manifests

more_label: Biography

If you provide long-form additional content for the artist (which can be anything you want, content-wise) through the more field, by default there will be a link with the label "More" on the artist page, leading to the section containing that content. If you want to customize that label so it specifically refers to the type of content you are providing there, the more_label field allows you to do that. Some typical examples of custom labels one might use in the context of an artist: "Details", "Shows", "Discography", "Bio", "About" etc.

name
Local-only This artist setting can not inherit default values from other manifests

name: Alice

The name you assign is how the artist is represented everywhere, including in the tags in your downloadable files (unless you enable copy in the track.tags.mode setting or use aliases` for the artist).

Very importantly, the name is also used to match your explicit definition of the artist (by you in the manifest) to any implicit definition (through audio file metadata), so pay close attention that they are spelled exactly the same in all places - including casing (lower-/uppercase). If the artist is frequently spelled in different ways (e.g. in one audio file the artist is tagged as "Alice", in another "alice", and in yet another "Älicë"), a simple way to still correctly associate it with your single explicit definition is to use the aliases option, e.g.:

name: Alice

aliases:
- alice
- Älicë

Note that the name is automatically derived from the artist directory name if you don't use this option, but it's generally still recommended to use this option.

permalink
Local-only This artist setting can not inherit default values from other manifests

permalink: example-artist

The permalink is a short, unique text fragment (for instance: example-artist) that forms a part of the permanent address of an artist page. For an online faircamp site, the permalink is appended to the site.base_url to construct the full address of the page.

For instance: https://example.com (the site.base_url) + example-artist (the permalink) = https://example.com/example-artist – this is the link that you can share with your visitors to point them to the artist page.

Permalinks may only contain the following characters:

  • a-z (lowercase letters only)
  • 0-9
  • - (dash)

If you don't specify your own permalink, faircamp auto-generates one from the name (for instance the name Example Artist becomes the permalink example-artist then). Note that in this case when the name changes, the permalink does too. This can lead to other people's bookmarks or links to your site becoming invalidated. Therefore it's generally recommended to specify your own permalinks – at least for the most important things on your site.

If you set/enable either external_page or homepage for your artist, the permalink is still relevant: The page address (part of which is the permalink) then becomes a redirect to either the external page or the homepage. Furthermore, the permalink is always part of the address of your RSS feeds, M3U playlists, etc. – even if your artist page is set as the homepage.

platform_integration
Default-able Use the prefixed form artist.platform_integration outside of artist manifests

Facebook's Open Graph metadata (and other adjacent protocols) are used by platforms to crawl and harvest content from (linked) websites in order to present them using a uniform "card" design pattern inside social feeds and timelines.

By default, faircamp only renders metadata that is used to generate link previews whenever someone links to things on your faircamp site. This can be disabled with:

platform_integration: disabled

Open Graph properties that get rendered (when link previews are enabled) are the mandatory og:title, og:image (including alt, height and width), og:type (always as website) and og:url properties, as well as og:locale and og:site_name. Where present, the synopsis field is rendered as the og:description property additionally.

In the near future faircamp will also gain support for rendering content embeds, that is, metadata and embed code that allows platforms to directly integrate a media player for your audio material in user timelines. You can already configure this with the setting below, but until it's implemented this will act identically to the link_previews setting.

platform_integration: content_embeds

The factory setting (in case you need to reset your own inherited default) can be set with:

platform_integration: link_previews

podcast.categories
Default-able Use the prefixed form artist.podcast.categories outside of artist manifests

podcast.categories:
- History
- Arts > Design

Use this to set podcast categories for your artist feed. You can either set a top level category only, or separate top-level and subcategory with a greater-than sign (>), for example Arts > Design for the top-level category Arts and subcategory Design.

podcast.explicit
Default-able Use the prefixed form artist.podcast.explicit outside of artist manifests

podcast.explicit: yes

Set this to yes if the artist's podcast feed contains explicit language or adult content.

published
Local-only This artist setting can not inherit default values from other manifests

published: 2024-12-19T16:39:57-08:00

A date/time specifying when this artist was first published on the faircamp site. This will be primarily used in your Atom/RSS feeds as metadata for feed consumers.

Also see the related updated setting – Date/time when this artist was last updated on the faircamp site.

synopsis
Local-only This artist setting can not inherit default values from other manifests

-- synopsis
A mysterious artist of many talents.
-- synopsis

A short (256 characters max), plaintext introduction text for the artist.

theme.dark
Default-able Use the prefixed form artist.theme.dark outside of artist manifests

theme.dark:
accent_brightening = 85
accent_chroma = 50
accent_hue = 23
base_chroma = 34
base_hue = 180
background_alpha = 23
background_image = simple_texture.jpg

Adjusts the colors and/or background image of the dark theme. Note that theme.mode needs to be either adaptive or dark for this to have any effect, otherwise the dark theme is never displayed.

Tip: With the --theming-widget CLI option you can interactively explore the theme.dark and theme.light theme settings. Build your site with this option enabled and every page will contain the theming widget (don't forget to turn it off before deployment).

Dynamic range

theme.dark:
dynamic_range = 24

At the highest dynamic_range (100%) the dark theme is darkest and the least colorful (depending on chroma settings, see below). The lower the dynamic_range (0% being the default) the more it will have a differentiated dark grey feeling and become more colorfully tinted with rising base_chroma levels.

Tip: By interatively exploring different values with the --theming-widget option you can get a good feeling of what this does and how you want to set it.

Base and accent colors

theme.dark:
base_chroma = 34
base_hue = 180
accent_brightening = 85
accent_chroma = 50
accent_hue = 23

The theme is initially monochromatic (without color).

With base_chroma (0-100 (%)) you control the colorfulness of the theme, while the base_hue (0-360 (degrees)) setting sets the shade of the color.

Some elements on the page are accentuated (prominent buttons and the "timeline" of the audio player). The colorfulness of the accentuation is customized with the accent_chroma (0-100 (%)) setting, while the accent_hue (0-360 (degrees)) setting adjusts its shade. The accent_brightening (0-100 (%)) setting allows you to brighten or darken this color accent (it's at 50% by default), which allows for stronger and deeper colors still.

Background image

theme.dark:
background_alpha = 23
background_image = simple_texture.jpg

The previously described theme.dark settings can be handled carefree - no matter the settings, your site will stay readable (at worst it may look funny). When you set a background image however, choose carefully what image you use and how opaque you make it. Sharp details and strong contrasts within the image and against the text of the site will render the site hard to read or even unreadable. That said, background_image lets you reference the image to use, and with background_alpha (0-100 (%)) you can optionally control its opaqueness.

theme.font
Default-able Use the prefixed form artist.theme.font outside of artist manifests

By default, faircamp bundles and uses the Barlow font on a generated site, but alternatively you can also configure your site to only use your visitors' system font(s):

Using the standard sans serif font from the system of the visitor:

theme.font: system-sans

Using the standard serif font from the system of the visitor:

theme.font: system-serif

Using the standard monospace font from the system of the visitor:

theme.font: system-mono

To reset to faircamp's bundled default font:

theme.font: bundled-default

Usage of custom fonts entails complexities and responsibilities that faircamp can not generically automate away, therefore this requires manual integration through the site.assets and site.metadata options - this also gives a great amount of flexibility, including the possibility to use multiple fonts and tweak their integration down to the last detail where needed.

theme.light
Default-able Use the prefixed form artist.theme.light outside of artist manifests

theme.light:
accent_brightening = 85
accent_chroma = 50
accent_hue = 23
base_chroma = 34
base_hue = 180
background_alpha = 23
background_image = simple_texture.jpg

Adjusts the colors and/or background image of the light theme. Note that theme.mode needs to be either adaptive or light for this to have any effect, otherwise the light theme is never displayed.

Tip: With the --theming-widget CLI option you can interactively explore the theme.dark and theme.light theme settings. Build your site with this option enabled and every page will contain the theming widget (don't forget to turn it off before deployment).

Dynamic range

theme.light:
dynamic_range = 24

At the highest dynamic_range (100%) the light theme is the most bright and the least colorful (depending on chroma settings, see below). The lower the dynamic_range (0% being the default) the more it will have a differentiated light grey feeling and become more colorfully tinted with rising base_chroma levels.

Tip: By interatively exploring different values with the --theming-widget option you can get a good feeling of what this does and how you want to set it.

Base and accent colors

theme.light:
base_chroma = 34
base_hue = 180
accent_brightening = 85
accent_chroma = 50
accent_hue = 23

The theme is initially monochromatic (without color).

With base_chroma (0-100 (%)) you control the colorfulness of the theme, while the base_hue (0-360 (degrees)) setting sets the shade of the color.

Some elements on the page are accentuated (prominent buttons and the "timeline" of the audio player). The colorfulness of the accentuation is customized with the accent_chroma (0-100 (%)) setting, while the accent_hue (0-360 (degrees)) setting adjusts its shade. The accent_brightening (0-100 (%)) setting allows you to brighten or darken this color accent (it's at 50% by default), which allows for stronger and deeper colors still.

Background image

theme.light:
background_alpha = 23
background_image = simple_texture.jpg

The previously described theme.light settings can be handled carefree - no matter the settings, your site will stay readable (at worst it may look funny). When you set a background image however, choose carefully what image you use and how opaque you make it. Sharp details and strong contrasts within the image and against the text of the site will render the site hard to read or even unreadable. That said, background_image lets you reference the image to use, and with background_alpha (0-100 (%)) you can optionally control its opaqueness.

theme.mode
Default-able Use the prefixed form artist.theme.mode outside of artist manifests

theme.mode: light

This controls the overall theme appearance – dark, light or adaptive.

The default setting is adaptive, which means that a dark or light theme will be displayed automatically, based on browser/system preferences of each site visitor.

With dark and light you can instead opt for a fixed dark or light appearance for all visitors.

theme.round_corners
Default-able Use the prefixed form artist.theme.round_corners outside of artist manifests

To give a softer feel to your page, set the round_corners option to enabled, this will add a round corner to your cover images:

theme.round_corners: enabled

By setting it to disabled you can restore the default behavior:

theme.round_corners: enabled

theme.waveforms
Default-able Use the prefixed form artist.theme.waveforms outside of artist manifests

By default, the width of each track's waveform on a multitrack release page will render at a different length, reflecting the duration of the track in relation to the longest track on the release - for instance if the longest track on a release is about two minutes long, that one will span the full width, but another track that is only about one minute long will span only half of that width. If you publish releases whose tracks have wildly varying lengths, shorter tracks might get very narrow in the interface. If this is a concern to you, or you just generally want all tracks to be full-width as an aesthetic choice, you can enable this alternative behavior with this setting:

theme.waveforms: absolute

You can also disable waveforms altogether, resulting in a more compact layout:

theme.waveforms: disabled

With relative you can restore the default waveform behavior:

theme.waveforms: relative

updated
Local-only This artist setting can not inherit default values from other manifests

updated: 2024-12-19T16:39:57-08:00

A date/time specifying when this artist was last updated on the faircamp site. This will be primarily used in your Atom/RSS feeds as metadata for feed consumers.

Also see the related published setting – Date/time when this artist was first published on the faircamp site.

visibility
Default-able Use the prefixed form artist.visibility outside of artist manifests

visibility: featured

Controls the visibility level of this artist (default: featured).

Available options:

  • featured (default) – The artist is openly accessible, listed and linked to everywhere and included in the browse/search navigation
  • public – The artist is openly accessible, listed and linked to everywhere, but excluded from the browse/search navigation
  • unlisted – The artist is not linked to anywhere, visitors need to know and directly enter the URL to get to its page. If the artist appears on multitracks or tracks, it is still publicly listed, but just by name, not as a link.
  • offline – The artist is entirely omitted when generating the site and does not appear anywhere on it