Category Archives: Music

Music players

Note: I love everything streamable from my own servers.
So if its music or movies i tried the lot.
(Another post about movie streaming using Jellyfin,Phpmytube and more)

I’ve got music in mp3, flac and ogg and I have been using below players for a long time

If you have any other suggestion mentioned below, let me know!

MPD – A linux terminal mp3 player (using ncmpc)
XMMS/XMMS2 – Linux gui music player ( The winamp for linux)

Then i moved to

VLC – Sporadic music file playing
Clementine – Linux gui player

For a while Audacious, Rhythmbox and Amarok

And later spotify (Btw you CAN use spotify with local files)

Clementine was not updated very much, so I went with Strawberry Music Player (which is a maintained clone of Clementine)

Tagging mp3s I did using Kid3, Picard and Mp3tag (with wine)
Now with Strawberry

Strawberry in which i play and edit tags.

Strawberry

Webplayers

For a while I used some webbased mp3 players.
I like it when I can stream my music from another location.
But none were to my liking.
It really has to have a Android client, and a secure connection.

  • Ampache
  • Funkwhale
  • Emby
  • Subsonic ( android client is $$ and broken)
  • Volumio
  • Koel
  • Jellyfin

In the old days i used even a simple php streamers

  • Turnstyle andromeda
  • A own written mp3 streamer
  • kplaylist

Movie stabilisation and music suggestions

Some suggestions/answers for some friends.

Movie stabilisation from action cams:

Mostly I use kdenlive, but if you have an actioncam which also records movement (pan, tilt, zoom, and rotation) use a tool like Gyroflow!
This will use the motion data to correct the movement!

https://userbase.kde.org/Kdenlive/Manual/Clip_Menu/Stabilize

I’ve tried Davinci Resolve also. But I’m not sure which i’ve used for below movies.

Using blender : https://www.youtube.com/watch?v=oCHjdEODrpM
OR https://www.youtube.com/watch?v=982RL4a899g

Me flying a Cessna 172
Arja on the Death Road in Bolivia (8x speed and stabilzed)

If you want even an easier way, upload to YT, stabilise and download you movie. 🙂

Something else, what music to listen to? Any suggestions?

I had to name some (most by heart), I will edit/alter this list.
The folk/pipes artists will be in a next post.

Heavier stuff:
The prodigy, nightwish, in extremo, tanzwut, after forever, faun, gathering, therion, withintemptation

Folky
Trolska polska, dervish, gaelic storm, lunasa, michael mcgoldrick, peatbog faeries, beoga

Jazzy folk
Borne and mcleod, Bees Knees (Hamish moore and dick lee)

Film music
Akira, Vangelis (bladerunner), Kill Bill music (all kinds of sources)

Electro
Junky-xl, Trentemoller, Alt-j, Avcii

Classical
Einaudi, ennio morricone, Paganini,Rondò Veneziano

Easy listening
Aereda, Andreas Vollenweider,Anuna, Clannad, Dead can danve, enya, Era, Lais, kitaro, Moya Brennan,omnia

Blues
BB King

Divers
Alva Noto and Ryuichi Sakamoto, Buddha bar, Buena Vista Social Club, Cafe del mar, Mark Knopfler, Easy Alohas

Indie
Kensington, Imagine Dragons, 77 bombay street, Mumford and Sons, Lumineers, Of monsters and men,

Scottish Rock
Runrig

Find other music/genre’s

Musescore bagpipe music workaround

I really like musescore, and mainly I use it for multistaff typesetting.
(In the past i’ve been using Cakewalk for this)

https://www.henriaanstoot.nl/2023/05/04/planxty-irwin-concertina-notation/

https://www.henriaanstoot.nl/2023/02/02/eleanor-plunkett-for-harp/

I still use ABC notation and Bagpipe Music Writer.
In abc multistaff can be done, but not perfect, the latter can’t.

So i was playing with Musescore to import BWW files and make it multistaff.

But Musescore kept messing things up, let me explain.

Part 1 – importing the bww file

Import works, but in the mixer part you don’t see an instrument.

Part 2 – try changing the instrument (fails)

Now i’ve got the instrument, but i’ve got 4 sharps, the notes are messed up.
(Tried transposing and turning on/off concert pitch)

Part 3 – creating empty sheet with two staffs and setting the instrument then copy paste the notes (fails)

Incorrectly pasted the b in the wrong octave.

I could not find anything helpful online. Maybe it can be fixed? But how?

My workaround

  • Import bww file, export as musicXML
  • Import harmony, export also
  • Create new sheet, with two staffs
    (file new, assign instrument, press F7 and add staff)
  • Open exported musicXML in a new file
  • Select all with ctrl-a OR first note and ctrl-end
  • Copy with ctrl-c and past into newly created score.
  • Same with harmony part
Instrument/staff add line

Example of this workaround

Music for movies

We like to listen to movie scores. Those are underappreciated most of the times.

That’s why we go to concerts like

  • Evening of the Film Music
  • Hans Zimmer in Concert
  • The Star Wars Suite

We also do a quizes on YT, general movie knowledge, guess the movie by the scene, and guess the movie by musical scores.

We have a spotify playlist with random movie music. Sometimes very hard.

But sometimes we know the movie by its track before we had seen the movie. (Requiem of a Dream)

A lot of the time we make mistakes with Spielberg movies, there are a lot similar sounding moviescores!

See also John Williams remark at
https://www.henriaanstoot.nl/2022/12/07/i-admire-people-who-excel-at-things-they-do/

I’ve got some 5.1 surround music from movies, very nice to hear another dimension.

Some original soundtracks I have in mp3

  • Akira !
  • Interstellar
  • Pirates of the Caribbean
  • Ghost in the Shell
  • Appleseed
  • Titanic
  • Lord of the Rings
  • Blade Runner (Vangelis)
  • Godfather – ( although i’m not a fan of the movies )
  • Lawrence of Arabia
  • Amélie
  • Requiem for a Dream

Ludovico Einaudi – Composer of amazing piano music
https://www.henriaanstoot.nl/2019/08/31/best-of-einaudi-lying-down/
Ennio Morricone – Composer of many Spaghetti westerns

Although not original music written for the movie, because Tarantino likes to pick out tunes to fit the scenes.
3/4 Of the music of Kill Bill is amazing!

The rest is on streaming services

By the scene example

Soundtrack guessing game

Enjoying music

I will add to this in time

Folk:

  • Shooglenifty – Celtic Fusion
    ( The recordings with Angus )
  • The Sidh
  • Ross Ainsley
    Partners in Crime (with Jarlath Henderson)
  • Fred Morrison
    All of his CD’s
    His tunes played others
    Breizh by Claymore pipes and Drums, I will put my version online also.
  • Gordon Duncan
    Thunderstruck, bellydancer, fourth floor, Pressed for time, Sleeping tune and many more
  • Manran
  • Kyle Warren
    Sampled
  • Fraser Shaw
    Air Chall (I play this one on tinwhistle)
  • Martyn Bennett
    Mackay’s Memoirs (Based around the theme and first variation of the piobaireachd ‘Lament For Mary MacLeod’)
  • Callum Armstrong ( Branschke/Armstrong Duo )
    Like his tune Burrito Hurricane on a Triple Chanter!

Tunes:

  • Jutland by Tommy O’Sullivan (We play this one with our Folkband, I play this on Uilleann)
    Versions I like:
    Paddy Keenan and Tommy O’Sullivan
    Michael McGoldrick and John McSherry
  • Bellydancer by Gordon Duncan
    Tape on B and F sound holes to produce the Middle-Easterny, B-flat phrygian scale.
    Gordon Duncan – Thunderstruck CD
    Session A9

Balalaika
https://www.youtube.com/watch?v=41_d4D7T6uI&pp=ygUJQmFsYWxhaWth

Some old skool CD’s

I’ve got many, some can’t be found online in a streaming service

(Maybe i’ll add some track info)

One of the first I bought because I had some cassette tapes with the Corries. Legends in Scottish Folk

PM of the Shotts and Dykehead. I’ve met the guy on a contest on the mainland, and got to speak to him and his mate Jimmy Killpatrick.
Liked his melodies, some easy to play but always interesting.
On of the first tunes I played with a natural C was Ebb-Tide.

Great piper, one of the most brilliant technical pipers. Met the guy in Scotland 1992. Got his autograph on this CD.
Mostly of his March, Strathspey and Reel playing.
(Got his MSR book somewhere)
https://pipetunesearch.henriaanstoot.nl/?select=listbook&book=ALGI

One of the gold old oldies folk.

I fell in love with this CD (got this somewhere in ’93-94)
Amazing fusion of pipes mixed with other styles and instruments.
I still play Death of a space piper.
https://www.henriaanstoot.nl/2006/12/09/death-of-a-space-piper/

Another amazing composer

This CD made me fall in love with “Cauld wind pipes”
(Not mouth blown)
There are many kinds of pipes on this CD.
It made me want to have a set of smallpipes.

Dick Lee’s Book

Again amazing stuff, fusion of instruments and styles.
Dick Lee plays clarinets, saxes and melodicas. But composed as a non-piper amazing tunes!
With the amazing playing of Hamish Moore, a joy for your ears!
https://pipetunesearch.henriaanstoot.nl/?select=listbook&book=DICKLEE

He died far to young, this amazing musical wonder.
Hard to explain his style. From Classical piping to electronical music.




Pipes played

  • Lying down
  • In a trucks cabin
  • Elevator
  • Phonebox
  • Cruise ship to England
  • While riding a bicycle without holding the handlebars
  • Motor tricicle
  • Parking garage .. amazing echo
  • Churches
  • Toilets
  • Trainstation hal at night
  • Standing in a back of a bus ( drones through the sunroof )
  • In the back of a car
  • Upside down

Some funny pictures I found

Python Spotify Genre Cube v2

Spotify version

Next to do: Lasercut a wooden cube with better lettering.

Run the python part on a server

and

First export some API credentials

export SPOTIPY_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export SPOTIPY_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export SPOTIPY_REDIRECT_URI="http://localhost:8080/callback"

Code below:

from flask import Flask, request, redirect
from requests_oauthlib import OAuth2Session
from requests.auth import HTTPBasicAuth
import requests
import json
import spotipy
from spotipy.oauth2 import SpotifyOAuth
from pprint import pprint
from time import sleep
import spotipy.util as util
import sys
import paho.mqtt.client as mqttClient
import time
import os
import subprocess

Connected = False


broker_address = "MQTTSERVER"
port = 1883


def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("Connected to broker")
        global Connected
        Connected =True
    else:
        print("Connection failed")

def on_message(client, userdata, message):
    print (message.payload)
    myurl = 'spotify:playlist:' + str(message.payload.decode())

    results = sp.start_playback(context_uri=myurl, offset={"position": 1})

client = mqttClient.Client("PythonSpotifyGenreCube")
client.on_connect = on_connect
client.on_message = on_message

client.connect(broker_address, port=port,keepalive=60 )
client.loop_start()
time.sleep(4) # Wait for connection setup to complete
client.subscribe('spotify/playlist')
#client.loop_stop()    #Stop loop

#while Connected != True:
#    client.loop()
#    time.sleep(0.1)
#    print("test")
#    client.subscribe('spotify/playlist')



app = Flask(__name__)

AUTH_URL = 'https://accounts.spotify.com/authorize'
TOKEN_URL = 'https://accounts.spotify.com/api/token'
REDIRECT_URI = 'http://localhost:8080/callback'
CLIENT_ID = "xxxxxxxxxxxxxxxxxx"
CLIENT_SECRET = "xxxxxxxxxxxxxxxxxxxxx"
SCOPE = [
    "user-read-email",
    "playlist-read-collaborative"
]

@app.route("/login")
def login():
    spotify = OAuth2Session(CLIENT_ID, scope=SCOPE, redirect_uri=REDIRECT_URI)
    authorization_url, state = spotify.authorization_url(AUTH_URL)
    return redirect(authorization_url)

@app.route("/callback", methods=['GET'])
def callback():
    code = request.args.get('code')
    res = requests.post(TOKEN_URL,
        auth=HTTPBasicAuth(CLIENT_ID, CLIENT_SECRET),
        data={
            'grant_type': 'authorization_code',
            'code': code,
            'redirect_uri': REDIRECT_URI
        })
    return json.dumps(res.json())


username = "fashice"
scope = "user-read-playback-state,user-modify-playback-state,playlist-read-private"
util.prompt_for_user_token(username,scope,client_id='xxxxxxxxxxxxxxxxxxxxx',client_secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxx',redirect_uri='http://localhost:8080/callback')

sp = spotipy.Spotify(client_credentials_manager=SpotifyOAuth(scope=scope))

# Shows playing devices
res = sp.devices()
pprint(res)


# Change track
#sp.start_playback(uris=['spotify:track:6gdLoMygxxxxxxxxxxxxxxx'])
#results = sp.start_playback(context_uri=myurl, offset={"position": 1})


## Change volume
#sp.volume(100)
#sleep(2)
#sp.volume(50)
#sleep(2)
#sp.volume(100)
#


playlists = sp.user_playlists(username)

#for playlist in playlists['items']:
#    print(playlist['name'])


playlists = sp.current_user_playlists()
#print (playlists)
for playlist in playlists['items']:
    print(playlist['id'] + ' ' +  playlist['name'])



#if __name__ == '__main__':
#   app.run(port=8080,debug=True)


while Connected != True:
    time.sleep(0.1)
    client.subscribe('spotify/playlist')

try:
    while True:
        time.sleep(1)


except KeyboardInterrupt:
    print ("exiting")
    client.disconnect()
    client.loop_stop()

Spotify control using python

For usage in this project:

Goto https://developers.spotify.com and add a APP

Write down the Client_id Client_secret and Redirect URL (callback)

Create a bash and python script

#!/bin/bash
export SPOTIPY_CLIENT_ID=2f660e11e70743febdxxxxxxxxxxxxx
export SPOTIPY_CLIENT_SECRET=b0741452a4fe43xxxxxxxxxxxxx
export SPOTIPY_REDIRECT_URI="http://localhost:8080/callback"

python3 spot.py $1

spot.py

import spotipy
from spotipy.oauth2 import SpotifyOAuth
from pprint import pprint
from time import sleep
import spotipy.util as util
import sys

username = "username"
scope = "user-read-playback-state,user-modify-playback-state,playlist-read-private"
util.prompt_for_user_token(username,scope,client_id=SPOTIPY_CLIENT_ID,client_secret=SPOTIPY_CLIENT_SECRET,redirect_uri=SPOTIPY_REDIRECT_URI)

sp = spotipy.Spotify(client_credentials_manager=SpotifyOAuth(scope=scope))

# Shows playing devices
res = sp.devices()
pprint(res)

myurl = 'spotify:playlist:' + sys.argv[1]

# Change track
results = sp.start_playback(context_uri=myurl, offset={"position": 1})

## Change volume example
#sp.volume(100)
#sleep(2)
#sp.volume(50)
#sleep(2)

playlists = sp.user_playlists(username)

playlists = sp.current_user_playlists()
for playlist in playlists['items']:
    print(playlist['id'] + ' ' +  playlist['name'])

Run bash script as follows.

playlistplayspotify.sh 0bJvpsn0TDxxxxxxxxxxxx
(0bJvpsn0TDxxxxxxxxxxxx – is playlist ID, as example below)

OUTPUT:

python3 spot.py 0bJvpsn0TDxxxxxxxxxxxx
{'devices': [{'id': 'e86eada2a91e29a396acxxxxxxxxxxxxxxxxxxxx',
              'is_active': True,
              'is_private_session': False,
              'is_restricted': False,
              'name': 'laptop',
              'type': 'Computer',
              'volume_percent': 100},
             {'id': '8571468b6c41973ccb0axxxxxxxxxxxxxxxxxxxx',
              'is_active': False,
              'is_private_session': False,
              'is_restricted': False,
              'name': 'DESKTOP-xxxxxxx',
              'type': 'Computer',
              'volume_percent': 76},
             {'id': '6c592503aa5a22b2fbdxxxxxxxxxxxxxxxxxxxxxx',
              'is_active': False,
              'is_private_session': False,
              'is_restricted': False,
              'name': 'TX-NR1030',
              'type': 'AVR',
              'volume_percent': 41}]}
0bJvpsn0TDxxxxxxxxxxxx Best Classical Music Of All Time
5aL9jeGMCAxxxxxxxxxxxx Programming music
37i9dQZEVCxxxxxxxxxxxx Discover Weekly
6pEJuA1UYJxxxxxxxxxxxx Highland/Small/Border Pipe Music
5p8Tabf5Zwxxxxxxxxxxxx Folk Instrumentals ( Celtic, Irish, Nordic, ... )
1oy8Ek4ddBxxxxxxxxxxxx Lounge
37i9dQZF1Dxxxxxxxxxxxx Irish Folk
etc etc