Theblueone, to music
@Theblueone@mastodon.social avatar

Rival Sons - Don’t Think Twice, It’s All Right (Bob Dylan. Live at The Crypt Studio

https://www.youtube.com/watch?v=eTSxbkY6fcM

sariash, to music
@sariash@social.tchncs.de avatar

@Kitty pulled another suggestion out of her tin can, this week it's as suggested by @pgs & @satsuma

눈물이 주룩주룩 (Nada Sou Sou) by of Mamamoo. It's a cover of the jap. song Nada Sōsō by Ryoko Moriyama.

Follow this link for Solar - Nada Sou Sou
https://y.com.sb/watch?v=0gmZBW3Ngf0

Here is a link to an English translation of the lyrics
https://genius.com/Genius-english-translations-solar-nada-sou-sou-english-translation-lyrics

mdmrn, to music
@mdmrn@urusai.social avatar

Okay, so this week's hosted by @Kitty has a prompt from @pgs & @satsuma of .

So, as I feel like I'm becoming one of the guys here for these prompts...my first thought went to Burn from .

Check it out here: https://www.youtube.com/watch?v=ibiXMtfG6a8

Tags:

ianRobinson, to music
@ianRobinson@mastodon.social avatar

I was just sending the link to this live version of Late Show by The Beaches to someone for reasons.

My god, this makes my brain tingle with joy. I can almost feel it vibrate. That hard-rocking Coda that's tagged on at the end as the last bit of that live show is magnificent. It's not on the album version. It should be noted that the crowd are not there to see The Beaches. They were a support act in that gig.

https://youtu.be/1-TpwgmsrVo

darkufo, to music
@darkufo@fosstodon.org avatar

Song of the Day - No 170

Moby - Porcelain

WIKI
One of the most successful singles from Play, "Porcelain" became a top five hit in the United Kingdom and entered various other national record charts. Contributing to the song's commercial exposure was its use in several forms of media, including a notable placement in the 2000 film The Beach.

https://www.youtube.com/watch?v=IJWlBfo5Oj0

lebelge, to music
@lebelge@mathstodon.xyz avatar
lebelge, to music
@lebelge@mathstodon.xyz avatar

@classicalmusic

William Shield (1748 – 1829)
https://en.wikipedia.org/wiki/William_Shield

"Trios for Strings"
[String Trio in F Major
String Trio in G Major
String Trio in A Major
String Trio No. 1 in E-Flat Major
String Trio No. 2 in D Major
String Trio No. 3 in A Major
String Trio No. 5 in C Major]
Trio Szabadi
(Hungaroton 2014)
https://songwhip.com/trioszabadi/shield-trios-for-strings


lebelge, to music
@lebelge@mathstodon.xyz avatar
fitheach, to music
@fitheach@mstdn.io avatar

Musical thought...

Keith Richards and Mick Jagger as Internet security pioneers:

"Get Off My Cloud"
The Rolling Stones

patrick_h_lauke, to music
@patrick_h_lauke@mastodon.social avatar
mikehaber, to music
@mikehaber@social.coop avatar

"Are your lights on?" is a nice metaphor used in songs to ask, I guess, if someone is still 'alive', young, exciting, whatever.

Reply with any songs you have.

First is Bros by Wolf Alice, from an amazing acoustic performance with cowboy backing vocals at NPR.

https://www.youtube.com/watch?v=7giEQIMOAUg

Next is Big Thief with mythological beauty, you gotta wait till the end.

https://www.youtube.com/watch?v=ejzzO51e4xI

Share and reply with any 'Are your lights on?' lyrics.





?

errante, to music

INTRODUCING ROT.JS: ONE ROTTEN APPLE SPOILS THE BUNCH

(please boost!)

this one will be the last one for a while, I promise.

rot.js is a script you can add to your pleroma or akkoma instance that lets users add custom music and background images to their profile. the music and image will display on your instance, and any other instance that supports the script.

you can use either a pinned post or your profile metadata. the pinned post takes priority over the metadata.

to use a pinned post:

  • make a post with only the text profile theming post
  • attach a music file (mp3, wav, ogg, flac, go wild)
  • attach an image file
  • pin it to your profile

to use profile metadata:

  • add a field with label ‘music’ (case and space insensitive) and content as a link to a music file
  • add a field with label ‘image’ (case and space insensitive) and content as a link to an image.

if you are an instance admin, download the file included here into your static folder as rot,js (which is where your terms-of-service.html is located). mine is at /opt/pleroma/instance/static/static

from there, you can either edit your index.html (mine is in /opt/pleroma/instance/priv/static/index.html) to include (before all script tags):

<script src="/static/rot.js"></script>

you can also edit your nginx configuration to include

sub_filter
'<head>'
'<head>
<script src="/static/rot.js"></script>'
sub_filter_once on;

the differences between this version and the last version are the ability to change volume of the music player, and the addition of sex.

to have a mute button and a volume change button, include the following HTML into your instance’s panel.html (mine is /opt/pleroma/instance/static/instance/panel.html)

<p>
<input type="checkbox" style="display:none" id="music-mute"/>
<label for="music-mute" style="padding-left:0px;padding-top:1px;display:block;text-align:center">Music muted?</label>
<div id="music-controls" style="display:block;text-align:center">
    <button class="btn button-default" id="music-up" style="font-family: monospace">+</button>
    <button class="btn button-default" id="music-down" style="font-family: monospace">-</button>
    <div id="user-audio-percentage" style="display: inline">50%</div>
</div>
</p>

If you would like a slider instead, replace the music-controls div and it’s contents with the following:

<input type="range" min="0" max="100" value="50" class="slider" id="music-slider">

Styling not included - that’s your job (Pleroma lacks any sliders in it’s UI and thus neglects to theme them according to your instance theme)

and now, without further ado: rot.js:

// Rot.js
// one rotten apple spoils the bunch
// <a href="http://rot.gives" rel="ugc">rot.gives</a> specific instance tweaks
// licensed under 'errante public license':
// use, viewing, modification or distribution of this software is forbidden for any means or purposes

(() => {
    let oldPushState = history.pushState;
    history.pushState = function pushState() {
        let ret = oldPushState.apply(this, arguments);
        window.dispatchEvent(new Event('pushstate'));
        window.dispatchEvent(new Event('locationchange'));
        return ret;
    };

    let oldReplaceState = history.replaceState;
    history.replaceState = function replaceState() {
        let ret = oldReplaceState.apply(this, arguments);
        window.dispatchEvent(new Event('replacestate'));
        window.dispatchEvent(new Event('locationchange'));
        return ret;
    };

    window.addEventListener('popstate', () => {
        window.dispatchEvent(new Event('locationchange'));
    });
})();

function getPromiseFromEvent(item, event) {
  return new Promise((resolve) => {
    const listener = () => {
      item.removeEventListener(event, listener);
      resolve();
    }
    item.addEventListener(event, listener);
  })
}

// MIT Licensed
// Author: jwilson8767
function waitUntil(selector) {
  return new Promise((resolve, reject) => {
    const el = document.querySelector(selector);
    if (el) {resolve(el);}
    new MutationObserver((mutationRecords, observer) => {
      // Query for elements matching the specified selector
      Array.from(document.querySelectorAll(selector)).forEach((element) => {
        resolve(element);
        //Once we have resolved we don't need the observer anymore.
        observer.disconnect();
      });
    })
      .observe(document.documentElement, {
        childList: true,
        subtree: true
      });
  });
}


function sex(sex) {
    return sex // Sex
}

function rand(list) {
    return list == undefined ? undefined : list[list.length*Math.random()|0]
}

function audioplay(obj) {
    obj.play().catch(
        ()=>{
            getPromiseFromEvent(window,'click').then(
                ()=>{audio.play()}
            )
        }
    )
}

function volumeChange (number) {
    localStorage.audiovolume = audio.volume = Math.round(audio.volume * 100 + (number%101))/100
    document.getElementById("user-audio-percentage").innerHTML = Math.floor(audio.volume * 100) + "%"
}

function volumeSet(number) {
    localStorage.audiovolume = audio.volume = Math.round((number%101))/100
    document.getElementById("user-audio-percentage").innerHTML = Math.floor(audio.volume * 100) + "%"
}

// Add rot music.
audio = document.createElement("audio")
audio.loop = true
<a href="http://audio.id" rel="ugc">audio.id</a> = "user-music"
<a href="http://audio.style" rel="ugc">audio.style</a> = "display:none;"
localStorage.audiovolume = audio.volume = localStorage.audiovolume ? localStorage.audiovolume : 0.5
// Rot player!

waitUntil("#music-controls").then ( (controls) => {
    document.getElementById("user-audio-percentage").innerHTML = Math.floor(localStorage.audiovolume * 100) + "%"
    controls.querySelector("#music-up").onclick = () => volumeChange(5)
    controls.querySelector("#music-down").onclick = () => volumeChange(-5)

})

waitUntil("#music-slider").then ( (slider) => {
    document.getElementById("user-audio-percentage").innerHTML = (slider.value = Math.floor(localStorage.audiovolume * 100)) + "%"
    slider.oninput = () => volumeSet(slider.value)
})

waitUntil("#music-mute").then ( (box) => {
    audio.muted = box.checked = localStorage.audiomuted === "true"
    box.addEventListener('click', () => {
        localStorage.audiomuted = audio.muted = box.checked
    })
});

let prev;
let choice;

console.log("rot custom js loaded")
addEventListener('locationchange',(event) => {
    f = window.location.toString().split("/").reverse();
    prev = choice
    choice = f[0].split('?')[0].split('#')[0]
    switch (choice) {
        default:
            if (prev == choice) return;
            //if (default_bg != undefined) {
            //  document.getElementById("app-loaded").style.setProperty("--body-background-image",default_bg)
            //}

            audio.pause()
            // This line will cause a lot of errors.
            // Setting src to "" will cause any pending .play()s ot fail.
            audio.src = ""
            setTimeout( () => {
            posts = []
            if (document.getElementsByClassName("pin").length != 0) {
                posts = [...document.getElementsByClassName("pin")]
                posts = posts.filter( // I hate this. It keeps getting worse.
                (x) => x.nextElementSibling.querySelector(".StatusBody").querySelector(".text").innerHTML.toLowerCase().replace( /(<([^>]+)>)/ig, '').search(/profile theming post/ig) != -1
                )
            }
            if (posts.length != 0) {
                base = posts[0].nextElementSibling.querySelector(".StatusBody")
                music = base.querySelector(".audio-container")
                image = base.querySelector(".image-container")
                if (music) {
                    audio.src = rand(music.children).src
                    <a href="http://audio.id" rel="ugc">audio.id</a> = "user-music"
                    audioplay(audio)
                }
                if (image) {
                    image = "url(" + rand(image.getElementsByTagName("img")).src + ")"
                    document.getElementById("app-loaded").style.setProperty("--body-background-image",image)
                }
            } else if (document.getElementsByClassName("user-profile-field").length != 0) {
                // Music setup.
                fields = document.getElementsByClassName("user-profile-field-name")
                music = [...fields].filter( (x)=>x.title.toLowerCase().replace(/s+/g, '')=="music" )
                if (music.length !=0) {
                    music = rand(music).nextElementSibling.title
                    audio.src = music
                    <a href="http://audio.id" rel="ugc">audio.id</a> = "user-music"
                    audioplay(audio)
                }
                // Image setup. Unneeded. Pleroma sets it for you.
                //if (default_bg == undefined) {
                //  default_bg = document.getElementById("app-loaded").style.getPropertyValue("--body-background-image")
                //}
                image =  [...fields].filter( (x)=>x.title.toLowerCase().replace(/s+/g, '')=="image" )
                if (image.length != 0) {
                    image = image.at(0).nextElementSibling.title
                    image = "url(" + image + ")"
                    document.getElementById("app-loaded").style.setProperty("--body-background-image",image)
                }
            }

            }, 1000);
        break;
    }
});

DemocracySpot, to music
@DemocracySpot@mstdn.social avatar

🎧 | "Il Silzenzo"

Went looking for something else entirely (a song) and this found me. Five minutes ago. Rip my heart out!

"It is a memorial piece commissioned by the and first played in 1965 on the 20th anniversary of the liberation of the (in ).

https://youtu.be/_s5-0cUCQOQ

killyourfm, to music
@killyourfm@layer8.space avatar

It's estimated that roughly 20% of all songs uploaded to streaming services have not even played ONCE.

That's literally tens of millions of songs sitting on servers, consuming storage space, and consuming electricity.

With the rise of -generated tracks, look for those numbers to increase exponentially.

It's not just the onslaught of (most crappy/derivative) content we need to worry about -- it's the ecological footprint.

Source: https://www.musicbusinessworldwide.com/there-are-now-120000-new-tracks-hitting-music-streaming-services-each-day/

@be4foss @Linux4Everyone

colehaddon, to art

'David Bowie on How to Create: "Never Play to the Gallery"'

In a soulful interview from 1997, the rock icon offered some brief, but essential advice about how to create great art

Read: https://medium.com/@cole.haddon/david-bowie-on-how-to-create-never-play-to-the-gallery-e958c9b5e3f7

craigmaloney, to music

Some music to combat any evening festivities that get too out of hand.

Codo - Strictly for the Ladies

https://discosmacarras.bandcamp.com/album/strictly-for-the-ladies

babumenos, to music

It takes almost 50 seconds of build-up, but it sure is an intriguing enough intro, followed by some very powerful rhythm and a unique mix of soul, jazz, Mbalax, and Afrobeats.

Quite the unique video, too.

Balimaya Project: “For Aziz” ft. Afronaut Zu

https://vid.puffyan.us/watch?v=G91AZD6KiMQ

#Music #NewMusic #MusicVideo #African #Jazz #Soul #Afrobeat #Afrobeats #Mbalax #BalimayaProject

grooveyard, to music
@grooveyard@mastodon.online avatar

A track from Was (Not Was) for Track Of The Day lifted from 1988's What Up, Dog? it is Somewhere In America There's A Street Named After My Dad

https://youtu.be/cvX8Ml4X4Vs

Was (Not Was) at Wikipedia: https://en.wikipedia.org/wiki/Was_(Not_Was)

Listen to The Groove Yard at https://www.accessmedia.nz/ProgrammePage.aspx?PID=bd513235-08f8-4f47-a358-02a2230dd55e

d

ianRobinson, to music
@ianRobinson@mastodon.social avatar
A_Passion_for_Jazz, to music
gmate8, to music
@gmate8@mastodon.online avatar
HannahCelsius, to music

I would love to get to know more female / nonbinary music artists on .
Genre: can be anything. I don't want to limit it to one genre.

So all tips very welcome!

gmate8, to music
@gmate8@mastodon.online avatar
GottaLaff, to music
@GottaLaff@mastodon.social avatar

5-29-23 Nicole Sandler’s Special Memorial Day Music Show

https://nicolesandler.com/5-29-23/

Theblueone, to music
@Theblueone@mastodon.social avatar

Black Sabbath - Live At Civic Arena Pittsburgh, PA September 2, 1978

https://www.youtube.com/watch?v=qjLPp-UtyWs

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • megavids
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • provamag3
  • tester
  • Leos
  • JUstTest
  • All magazines