Compare commits

..

18 commits

Author SHA1 Message Date
sakrecoer
67fae774c8 fix time 2025-10-03 16:02:46 +02:00
sakrecoer
3329dc9171 add isocyantes 2025-10-03 14:50:49 +02:00
sakrecoer
d4cc891c23 nah... it was half assed 2025-08-16 13:59:43 +02:00
sakrecoer
1a5013f66b why no request right on the page? 2025-08-16 13:41:45 +02:00
05318debde Update themes/basspistol2025/layouts/partials/body/now.html 2025-07-24 18:47:46 +02:00
b686951ddb don't max out radio image 2025-07-16 14:10:53 +02:00
31843789cf fix borked script 2025-07-16 14:07:12 +02:00
sakrecoer
3a721ebf69 directlink is better 2025-07-16 12:34:51 +02:00
sakrecoer
9128399948 blank them links 2025-07-16 10:47:06 +02:00
sakrecoer
73aa49f7c2 kaboom 2025-07-16 10:45:43 +02:00
sakrecoer
fb55f64cf1 fuggen homegrown maddafaggin radio shiet
comming soon, on a URL near you
2025-07-16 01:06:58 +02:00
sakrecoer
e1ebc2fc18 no more html in titles 2025-07-11 14:12:00 +02:00
sakrecoer
b0b50a3ce3 even better with _blank 2025-07-11 14:09:12 +02:00
sakrecoer
f1f102ee74 links are good 2025-07-11 14:08:21 +02:00
sakrecoer
60cc0bc9b8 get donations going 2025-07-11 14:06:38 +02:00
369a690906 fix datalabel 2025-07-09 08:48:52 +02:00
b98fb46629 typo 2025-07-07 19:00:30 +02:00
49b910a9e8 fix timezone 2025-07-06 20:37:14 +02:00
10 changed files with 271 additions and 19 deletions

View file

@ -0,0 +1,28 @@
---
title: "Isocyanates by eardiod"
date: 2025-10-03T13:59:59+00:00
draft: false
image:
url: "/2025/images/isocyanates.webp"
alt: "Abstract Image with geometric patterns, in red and orange tones"
license: "CC-BY-NC-ND 4.0"
credits:
name: "eardiod"
url: "https://eardiod.basspistol.com/isocyanates/"
cta:
url: https://eardiod.basspistol.com/isocyanates/
label: "Get this 💎"
release: true
catalogue: "#BPIST-029"
license: CC-BY-NC-ND 4.0
recordlabel: "Basspistol"
---
Straight from Mongolian bogs comes a smell and its not a faint whiff of morning freshness. Its a dense, stout aroma of a dump electro-organic sonic mischief.
Youre not [wroong](https://s.basspistol.org/@wroong), its [eardiod](https://nosotros.app/nprofile1qqsrfk4gzq49g8gac4f7psmfvtkhr758gjkxeasc7pk8vjshr35ekjgy7dg7m) himself with his pumping silly rhythms and lush, saturated crescendos which are able to induce synesthesia after just a few bars.
The skill he possesses leaps beyond obtainable right into undiscoverable. Who knows how he was able to land his short hands on this inhuman knowledge? But the phenomenal result of it being applied will not leave you unchanged.
With [Isocyanates](https://eardiod.basspistol.com/isocyanates/), eardiod proposes a 6 tracks EP of gritty techno. Organic and unexpected, most of eardiod's work is sequenced on the go, by hand on a setup mixing hardware boxes and software synthesizers.
Echoing from the remnants of Stockholm's underground scene, this release takes you on a trip to basement-raves, where lasers pierce the smoke.

View file

@ -181,7 +181,7 @@ time {
font-size: .5em;
}
.section-headers {
margin: 2px 4px;
margin: 2px;
border-radius: 100px;
padding: 80px 20px;
border-style: double;
@ -210,7 +210,7 @@ time {
border-width: 10px;
flex: 1 1 100% !important;
border-radius: 0 0 100px 100px;
margin: 2px 4px;
margin: 2px;
}
.border {
@ -267,7 +267,27 @@ time {
flex: 1 1 100%;
background-position: center center;
background-size: cover;
margin: 2px 4px;
margin: 2px;
}
.support {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
h4, p {
flex: 1 1 100%;
}
p {
font-size: .75em;
}
img {
margin: 20px 0;
}
}
figure, div {
@ -344,7 +364,7 @@ justify-content: space-between;
img {
width: 100%;
object-fit: cover;
max-height: 200px;
height: 200px;
}
@ -364,12 +384,69 @@ justify-content: space-between;
#radio {
.radioplayer {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
#recordPlayer {
flex: 1 1 300px;
background-size: cover;
background-position: center center;
margin-top:40px;
img {
border-radius:7px;
transition: all linear 1s;
width: 100%;
height: auto;
object-fit: cover;
max-width: 600px;
max-height: 600px;
}
}
.legend-container {
align-content: center;
display: flex;
flex-wrap: wrap;
flex: 1 1 300px;
}
.spinner {
border-radius: 2000px !important;
animation: rotate 10s linear infinite;
border-style: double;
border-color: purple;
border-width: 10px;
}
.stop {
animation-play-state: paused;
}
.legend {
width: 100%;
}
.border {
margin: 2px 4px;
margin: 2px;
}
audio {
width: 100%;
}
#myBtn {
background: transparent;
border: none;
padding: 0;
margin: 0;
font-size: 3em;
}
}
@media screen and (max-width: 720px) {
@ -421,7 +498,35 @@ justify-content: space-between;
margin-right: 0px;
margin-bottom: 20px;
}
.support {
h4 {
font-size: 1em;
}
p {
font-size: .75em;
}
}
}
#radio {
#myBtn {
font-size: 4em;
}
}
}
/* ANIMATIONS */
@keyframes rotate {
0% {
transform: rotate(0deg)
}
100% {
transform: rotate(360deg)
}
}

View file

@ -7,7 +7,7 @@
<h4>𝕿𝖍𝖊 𝕾𝖔𝖚𝖓𝖉 𝖔𝖋 𝕱𝖗𝖊𝖊𝖉𝖔𝖒</h4>
<p>Basspistol's discography is a non-possessive aggregation of cuts recoreded by independent musicians. Getting your music from here implies 100% of your support being channeled straight to the artist. (Minus whatever fees charged by the monetization service they leverage.)
</p>
<p>The bellow selection is shuffled every 30 minutes. Anything pikcing your curiosity? The random gods may just have something to tell you... Check out the Tienda for more.</p>
<p>The bellow selection is shuffled every 30 minutes. Is anything picking your curiosity? The random gods may just have something to tell you... Check out the Tienda for more.</p>
</p>
@ -37,7 +37,7 @@
<img src="{{ . }}" />
{{ end }}
<figcaption>
<h4>{{ .title }}</h4>
<h4>{{ .title | safeHTML }}</h4>
<p>{{ .description | transform.Plainify | safeHTML | truncate 120 }}</p>
</figcaption>

View file

@ -1,4 +1,3 @@
<section id="gancio">
<div class="section-headers">
<h2>Agenda</h2>
@ -31,8 +30,8 @@
<figcaption>
<h4>{{ .title }}</h4>
<time datetime="{{ .start_datetime | int | dateFormat "2006-01-02T15:04" }}">{{ .start_datetime | int | dateFormat "2006-01-02 15:04 CET" }}</time>
<p><b>Organizer:</b> {{ .place.name }}</p>
<time datetime="{{ .start_datetime | int | dateFormat "2006-01-02T15:04" }}">{{ .start_datetime | int | dateFormat "2006-01-02 15:04 UTC" }}</time>
<p><b>Venue:</b> {{ .place.name }}</p>
<p><b>Address: </b>{{ .place.address }}</p>
<!-- <p>{{ range .tags }}#{{ . }} {{ end }}</p>-->
</figcaption>

View file

@ -29,10 +29,20 @@
<a class="button" href="{{ .Params.cta.url }}" target="_blank">{{ .Params.cta.label }}</a>
</div>
</div>
{{ end }}
<article class="border now">
<article class="border" id="newsletter">
{{ partial "body/newsletter.html" . }}
</article>
<article class="border support">
<h4>𝕾𝖚𝖕𝖕𝖔𝖗𝖙 𝖙𝖍𝖊 𝕮𝖆𝖚𝖘𝖊</h4>
<p>Basspistol doesn't really need your support, but it's always nice to soften the edges of the server costs. If you feel so inclined, you can contribute to the cause by donating in Bitcoin (Satoshis over Lightning) or Petro-Euros via Liberapay and Ko-Fi!</p>
<p>You know, get the sysadmins a root-beer or some shiet.</p>
<a target="_blank" href="https://getalby.com/p/thrilliridescent759578"><img src="/2025/images/Bitcoin-Logo.png" /></a>
<a target="_blank" href="https://liberapay.com/Basspistol"><img src="/2025/images/liberapay.png" /></a>
<a target="_blank" href="https://ko-fi.com/basspistol"><img src="/2025/images/kofi.png" /></a>
<p>Spank you very much! 💘</p>
</article>
<div class="section-footers"></div>
</section>

View file

@ -1,15 +1,125 @@
<section id="radio">
<div class="section-headers" style="background-image: url(/2025/images/radio.webp);">
<h2>RadioStation</h2>
<h4>𝕭𝖆𝖘𝖘𝖕𝖎𝖘𝖙𝖔𝖑 𝕽𝖆𝖉𝖎𝖔 𝕾𝖙𝖆𝖙𝖎𝖔𝖓</h4>
<p>777% music, without commercials! RobotDJ-sets and live interventions! This is the sound of freedom.</p>
<a class="button" href="https://radio.basspistol.com/">Request song 📻</a>
</div>
<div class="border">
<iframe src="https://radio.basspistol.com/public/basspistol/embed?theme=dark" frameborder="0" allowtransparency="true" style="width: 100%; min-height: 150px; border: 0;"></iframe>
<iframe src="https://radio.basspistol.com/public/basspistol/history?theme=dark" frameborder="0" allowtransparency="true" style="width: 100%; min-height: 480px; border: 0;"></iframe>
</div>
<div class="border radioplayer">
<div class="legend-container">
<div class="legend">
<button id="myBtn">▶️</button>
<div>
<h4 id="npTitle"></h4>
<p id="npArtist"></p>
<audio preload="none" id="radioAudio">
<source src="https://radio.basspistol.com/listen/basspistol/radio.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</div>
</div>
<div>
<br />
<a target="_blank" href="" id="supportButtonDelux" class="button player">🫰 Support this Artist</a>
<br />
<a class="button" target="_blank" href="https://radio.basspistol.com/public/basspistol">📻 Request song</a>
<br />
<a class="button" target="_blank" href="https://radio.basspistol.com/public/basspistol/schedule">🗓️ Schedule</a>
</div>
</div>
<div id="recordPlayer">
<img src="" id="coverArt" />
</div>
</div>
<div class="section-footers"></div>
</section>
<script>
console.log("Loading Basspistol Radio! Enjoy!");
// Logic to fetch URL of currently playing artist
const list = document.createDocumentFragment();
const supportUrl = 'https://radio.basspistol.com/api/nowplaying';
// Catch elements that need influece
// support button
let supportButtonDelux = document.getElementById('supportButtonDelux');
// record player
let coverArt = document.getElementById('coverArt');
coverArt.classList.add("btn");
// Title and Artist
let npArtist = document.getElementById('npArtist');
let npTitle = document.getElementById('npTitle');
function timeleyManner(){
fetch(supportUrl)
.then((response) => {
return response.json();
})
.then((data) => {
let supportClicker = data;
supportClicker.map(function(support) {
// set background image in record player
coverArt.src = `${support.now_playing.song.art}`;
// print text
npTitle.innerHTML = `${support.now_playing.song.title}`;
npArtist.innerHTML = `by ${support.now_playing.song.artist}`;
if(`${support.now_playing.song.custom_fields.support_url}` != "null") {
supportButtonDelux.href = `${support.now_playing.song.custom_fields.support_url}` + "?ref=radio.basspistol.com" + "&title=" + `${support.now_playing.song.text}`;
}
else {
supportButtonDelux.href = "https://www.urbandictionary.com/define.php?term=Anon";
}
});
})
.catch(function(error) {
console.log(error);
});
}
timeleyManner();
setInterval(function(){
timeleyManner();
}, 10000)
// player logic
var audio = document.getElementById("radioAudio");
var btn = document.getElementById("myBtn");
btn.onclick = function() {
if (audio.paused) {
audio.play();
btn.innerHTML = "⏸️";
coverArt.classList.add("spinner");
coverArt.classList.remove("stop");
} else {
audio.pause();
btn.innerHTML = "▶️";
coverArt.classList.add("stop");
}
};
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB