<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The First Hearth &#8211; BARD RECORDS</title>
	<atom:link href="https://bardrecords.co.uk/tag/the-first-hearth/feed/" rel="self" type="application/rss+xml" />
	<link>https://bardrecords.co.uk</link>
	<description>Independent music. No algorithms required.</description>
	<lastBuildDate>Sat, 24 Oct 2026 16:29:32 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://bardrecords.co.uk/wp-content/uploads/2026/07/cropped-BR-32x32.jpg</url>
	<title>The First Hearth &#8211; BARD RECORDS</title>
	<link>https://bardrecords.co.uk</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>The First Hearth</title>
		<link>https://bardrecords.co.uk/the-first-hearth/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 22:07:10 +0000</pubDate>
				<category><![CDATA[Content]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Instrumental]]></category>
		<category><![CDATA[Single]]></category>
		<category><![CDATA[The First Hearth]]></category>
		<category><![CDATA[Time Sink Th3ory]]></category>
		<guid isPermaLink="false">https://bardrecords.co.uk/?p=3791</guid>

					<description><![CDATA[Every settlement starts somewhere. Usually with a fire and a few hopeful plans.]]></description>
										<content:encoded><![CDATA[
<!-- =========================================================
BARD RECORDS - LYRIC PAGE DATA
EDIT THIS BLOCK FOR EACH NEW SONG
========================================================= -->

<div id="br-song"
    data-artist="Time Sink Th3ory"
    data-artist-class="artist-th3ory"
    data-track="The First Hearth"
    data-album="Foundation Project"
    data-album-acoustic=""
    data-image="https://bardrecords.co.uk/wp-content/uploads/2026/10/The-First-Hearth.png"
    data-audio="https://bardrecords.co.uk/wp-content/uploads/2026/10/The First Hearth.mp3"
    data-product="https://bardrecords.co.uk/product/the-first-hearth/"
    data-album-url="https://bardrecords.co.uk/the-first-hearth/"
    data-album-url-acoustic=""
    data-artist-url="https://bardrecords.co.uk/time-sink-th3ory/"

    data-audio-acoustic=""
    data-product-acoustic="">

<!-- =========================================================
END LYRIC PAGE DATA
========================================================= -->


<!-- =========================================================
EDITORIAL
========================================================= -->

<div class="br-artist" id="brArtist"></div>

<div class="br-editorial">

<p class="br-intro">
    Every settlement starts somewhere.<br />
    Usually with a fire and a few hopeful plans.
</p>

<p class="br-body">
    <em>The First Hearth</em> captures the quiet beginnings of a medieval settlement, before the roads, markets and grand buildings arrive. Gentle folk melodies, warm acoustic instruments and an unhurried pace evoke the first homes taking shape, the surrounding countryside and the promise of a village yet to grow. Inspired by the world of <em>Foundation</em>, it&#8217;s music for building something from nothing, or simply enjoying the peace before the work begins.
</p>

</div>



<!-- =========================================================
COVER
========================================================= -->

<img decoding="async" class="br-cover" id="brCover" src="" alt="">


<!-- =========================================================
VERSION SELECTOR
Automatically hidden when no alternate recording exists
========================================================= -->

<div id="br-version-selector" style="display:none;">

    <button type="button"
        class="br-version-button active"
        data-version="original">
        ORIGINAL
    </button>

    <button type="button"
        class="br-version-button"
        data-version="acoustic">
        ACOUSTIC
    </button>

</div>


<!-- =========================================================
AUDIO PLAYER
========================================================= -->

<div id="br-player"
    data-version="original"
    data-recording="">

    <div id="br-player-row">

        <span id="playButton">

            <span id="playIcon">►</span>

            <span id="trackText"></span>

            <span id="duration"></span>

        </span>

        <a id="buyButton" href="">
            BUY
        </a>

    </div>

    <div id="progressBar">
        <div id="progressFill"></div>
    </div>

    <audio id="player"></audio>

</div>


<!-- =========================================================
LYRICS
========================================================= -->

<div class="br-section">
    TEXT
</div>

<div class="br-lyrics">

<p> INSTRUMENTAL</p>

</div>


<hr class="br-divider">


<!-- =========================================================
FOOTER
========================================================= -->

<div class="br-footer">

    <a id="brAlbumLink" href=""></a>

    <a id="brAcousticAlbumLink"
       href=""
       style="display:none;"></a>

    <a id="brArtistLink" href=""></a>

</div>


<!-- =========================================================
PAGE AUTOMATION
DO NOT EDIT BELOW THIS LINE
========================================================= -->

<script>

const song = document.getElementById("br-song");

const artist = song.dataset.artist;
const artistClass = song.dataset.artistClass;
const track = song.dataset.track;

const album = song.dataset.album;
const acousticAlbum =
    song.dataset.albumAcoustic || album;

const image = song.dataset.image;

const originalAudio = song.dataset.audio;
const originalProduct = song.dataset.product;

const acousticAudio = song.dataset.audioAcoustic;
const acousticProduct = song.dataset.productAcoustic;

const albumUrl = song.dataset.albumUrl;
const acousticAlbumUrl = song.dataset.albumUrlAcoustic;
const artistUrl = song.dataset.artistUrl;


/* Artist theme */

song.classList.add(artistClass);


/* Artist name */

document.getElementById("brArtist").textContent = artist;


/* Cover */

const cover = document.getElementById("brCover");

cover.src = image;
cover.alt = artist + " - " + track;


/* Player */

const button = document.getElementById("playButton");
const icon = document.getElementById("playIcon");
const player = document.getElementById("player");
const playerContainer = document.getElementById("br-player");
const duration = document.getElementById("duration");
const progress = document.getElementById("progressFill");
const trackText = document.getElementById("trackText");
const buyButton = document.getElementById("buyButton");

const versionSelector =
    document.getElementById("br-version-selector");

const versionButtons =
    document.querySelectorAll(".br-version-button");


/* =========================================================
RECORDING VERSION
========================================================= */

let currentVersion = "original";


function loadVersion(version){

    player.pause();

    player.currentTime = 0;

    icon.textContent = "►";
    progress.style.width = "0%";
    duration.textContent = "";

    currentVersion = version;

    if(version === "acoustic"){

        player.src = acousticAudio;

        buyButton.href = acousticProduct;

        trackText.textContent =
            artist + " • " +
            track + " (Acoustic) • " +
            acousticAlbum;

        playerContainer.dataset.version = "acoustic";
        playerContainer.dataset.recording =
            track + " (Acoustic)";

    }else{

        player.src = originalAudio;

        buyButton.href = originalProduct;

        trackText.textContent =
            artist + " • " +
            track + " • " +
            album;

        playerContainer.dataset.version = "original";
        playerContainer.dataset.recording = track;

    }

    player.load();

    versionButtons.forEach(versionButton => {

        versionButton.classList.toggle(
            "active",
            versionButton.dataset.version === version
        );

    });

}


/* Show selector only when acoustic exists */

if(acousticAudio && acousticProduct){

    versionSelector.style.display = "flex";

}


/* Version buttons */

versionButtons.forEach(versionButton => {

    versionButton.addEventListener("click",()=>{

        loadVersion(versionButton.dataset.version);

    });

});


/* Load original by default */

loadVersion("original");


/* =========================================================
FOOTER
========================================================= */

const albumLink =
    document.getElementById("brAlbumLink");

albumLink.href = albumUrl;
albumLink.textContent = album;


const acousticAlbumLink =
    document.getElementById("brAcousticAlbumLink");

if(
    acousticAudio &&
    acousticAlbumUrl &&
    acousticAlbum !== album
){

    acousticAlbumLink.href = acousticAlbumUrl;
    acousticAlbumLink.textContent = acousticAlbum;
    acousticAlbumLink.style.display = "";

}


const artistLink =
    document.getElementById("brArtistLink");

artistLink.href = artistUrl;
artistLink.textContent = artist;


/* =========================================================
AUDIO
========================================================= */

function formatTime(seconds){

    const mins = Math.floor(seconds / 60);
    const secs = Math.floor(seconds % 60);

    return mins + ":" +
        secs.toString().padStart(2,"0");

}


player.addEventListener("loadedmetadata",()=>{

    duration.textContent =
        formatTime(player.duration);

});


button.addEventListener("click",()=>{

    if(player.paused){

        player.play();
        icon.textContent = "❚❚";

    }else{

        player.pause();
        icon.textContent = "►";

    }

});


player.addEventListener("timeupdate",()=>{

    if(!player.duration){
        return;
    }

    const percent =
        (player.currentTime / player.duration) * 100;

    progress.style.width =
        percent + "%";

});


player.addEventListener("ended",()=>{

    icon.textContent = "►";
    progress.style.width = "0%";

});

</script>


</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
