Blogg

RSS
  • Beloved Enemy live - Review

    21 nov 2010, 18:06

    Hi,
    mal wieder eine kleine Review zum Beloved Enemy Konzert am 20.11.2010 im Tor 3. Das Konzert war einfach eine große Party. Gegen halb 10 fing es mir einer meiner Meinung nach eher durchschnittlicher Vorband was nicht zwingend an den Künstlern lag sondern ehern am Zusammenspiel.
    Dann wurde noch einige Minuten umgebaut und angeschlossen und dann ging es los. Eine ganze Reihe Lieder vom neuen Album (die wohl erst im Februar auf den Markt kommen soll aber am Merch-Stand schon zu kaufen war), gemischt mit einigen Klassikern wie The Other Side, The Others und Drowning. Nach ein paar Liedern kam dann die Ansage "So, wir tun jetzt mal so als würden wir die Bühne verlassen und ihr tut so als würdet ihr eine Zugabe wollen.". Dem wurde natürlich nachgekommen. Nach zwei weiteren Liedern gab es das selbe Spiel nochmal. Zum Schluss, die Band verlässt die Bühne, das Publikum löst sich langsam auf um sich in Richtung des Kneipenbereichs und der Tanzfläche aufzumachen, kommt Ski (der Sänger) entgegen, scheuchte Sie zurück und es gibt noch ein allerletztes Lied.

    Fazit: Das Konzert hat meine Erwartungen übertroffen, obwohl ich schon hohe Erwartungen hatte. Ein Besuch nächstes Jahr im November (so hat sich die Band schon angekündigt) ist zu empfehlen und die Scheibe Thank You For The Pain ist auch ein echter Tipp.
  • Changed scrobbler

    28 aug 2010, 01:07

    Since mpdscribble stops working for me I am now running mpdas and it just works fine.
  • Play Jamendo with MPD

    31 aug 2009, 17:08

    This hack open playlists from Jamendo and make it possible to play them within MPD. So you can easiely open them with firefox and play them with my favourite Music Player. :D

    #!/bin/sh

    cat $1 | grep -v \# | mpc add
  • Jesus on Extasy live - Review

    19 apr 2009, 11:38

    Meine kleine Review zu Jesus on Extasy live. Erstmal möchte ich anmerken, dass das mein erstes Konzert war, kann also sein, das ich ein wenig voreingenommen bin und mir die Vergleichsmöglichkeit fehlt..

    Das Konzert lief ungefähr eineinhalb Stunden mit Zugabe. Nach dem ersten Lied hatte der neue Drummer seinen Taktgeber kaputtgemacht, weshalb Dorian das Publikum erstmal fragte, ob irgendjemand einen guten Witz kennt. Nachdem er dann eine Anekdote von einem Auftritt in Italien erzählt hat (dort ist wohl das selbe passiert) und Ophelia ein kurzes Lied zum besten gab - sie hat eine Hammer Stimme - haben sie Alone als Akustik gespielt. Danach ging es dann aber auch mit Vollgas weiter.
    Meine Zweifel dass die Band mit Playback singt, sind ausgeräumt: Das klingt live genauso geil, wenn nicht noch besser als auf den Alben. Insgesamt muss man sagen, dass die Leute geil drauf sind und in meinen Augen kein bisschen abgehoben rüberkommen.

    Fazit: Wenn Jesus On Extasy nochmal ins Tor kommt und ich die Möglichkeit bekomme hinzugehen, bin ich da.
  • last_mpd_playlist version 0.1

    14 aug 2008, 14:31

    A little script to generate Top 50 artist, track and album playlists based on your last.fm profile informations.

    #!/usr/bin/perl

    # Author: GagaPete
    # Date: 2008-08-07
    # License: Use as you wish at your own risk.

    use Audio::MPD;
    use Switch;
    use URI::Fetch;

    # settings
    my $last_username='username';
    my $mpd_host='localhost';
    my $mpd_port=6600;
    my $mpd_password='';
    my $type = '';
    my $time = 'all';

    # usage text
    $help = 'usage: last_mpd_playlist [options] type
    options:
    -h, --helpDisplay this help text
    -u, --user <string>Use info from this user for generation
    -v, --versionDisplay the version
    -t, --time <string>3, 6, 12 or all
    type:
    albumsUsers favorite albums
    artistsUsers favorite artists
    tracksUsers favorite tracks
    All 3 playlists
    ';
    $version = 'last_mpd_playlist v0.1 by GagaPete
    ';

    my $skip = 0;
    foreach $arg (0 .. ($#ARGV)) {
    if($skip eq 1) {
    $skip = 0;
    next;
    }
    if($ARGV[$arg] =~ m/^-(.)$/) {
    switch($1) {
    case 'h' {
    print $help;
    exit 0;
    }
    case 'v' {
    print $version;
    exit 0;
    }
    case 'u' {
    $last_username = $ARGV[$arg+1];
    $skip = 1;
    next;
    }
    case 't' {
    $time = $ARGV[$arg+1];
    $skip = 1;
    next;
    }
    }
    } elsif($ARGV[$arg] =~ m/^--(.*)$/) {
    switch($1) {
    case 'help' {
    print $help;
    exit 0;
    }
    case 'version' {
    print $version;
    exit 0;
    }
    case 'user' {
    $last_username = $ARGV[$arg+1];
    $skip = 1;
    next;
    }
    case 'time' {
    $time = $ARGV[$arg+1];
    $skip = 1;
    next;
    }
    }
    } else {
    if($arg eq $#ARGV) {
    $type = $ARGV[$#ARGV];
    } else {
    print $help;
    exit 0;
    }
    }
    }

    if($type eq '') {
    create($last_username,'artists',$time);
    create($last_username,'tracks',$time);
    create($last_username,'albums',$time);
    } else {
    create($last_username,$type,$time);
    }




    #
    # Sub functions
    #
    sub create {

    my $_username = shift;
    my $_type = shift;
    my $_time = shift;

    # create mpd object
    my $mpd = Audio::MPD->new();
    my @songs = $mpd->collection->all_items();

    # time convert
    switch($_time) {
    case '3' {
    my $time = '3month';
    }
    case '6' {
    my $time = '6month';
    }
    case '12' {
    my $time = '12month';
    }
    case 'all' {
    my $time = '';
    }
    else {
    die "Wrong time range (3|6|12|all)\n";
    }
    }

    # save mpd status
    mpd_store($mpd);
    eval { $mpd->playlist->rm("last.fm $_username top $_type"); };

    switch($_type) {
    case 'artists' {
    my $response = URI::Fetch->fetch("http://ws.audioscrobbler.com/1.0/user/$_username/topartists.txt?type=$time";) or die('Error while fetching data');
    $mpd->playlist->clear();
    my @lines = split("\n",$response->content);
    foreach(@lines) {
    ($mbid,$played,$artist) = split(',', $_);
    foreach $song($mpd->collection->songs_by_artist($artist)) {
    $mpd->playlist->add($song->file());
    }
    }
    }
    case 'tracks' {
    my $response = URI::Fetch->fetch("http://ws.audioscrobbler.com/1.0/user/$_username/toptracks.txt?type=$time";) or die('Error while fetching data');
    $mpd->playlist->clear();
    my @lines = split("\n", $response->content);
    foreach(@lines) {
    ($e,$played,$full) = split(',', $_);
    ($artist,$title) = split(' – ', $full);
    foreach $song($mpd->collection->songs_with_title_partial($title)) {
    if($song->artist() =~ /(.*)$artist(.*)/i) {
    $mpd->playlist->add($song->file());
    last;
    }
    }
    }
    }
    case 'albums' {
    my $response = URI::Fetch->fetch("http://ws.audioscrobbler.com/1.0/user/$_username/topalbums.txt?type=$time";) or die('Error while fetching data');
    $mpd->playlist->clear();
    my @lines = split("\n",$response->content);
    foreach(@lines) {
    ($mbid,$played,$full) = split(',', $_);
    ($artist,$album) = split(' - ', $full);
    foreach $song($mpd->collection->songs_from_album_partial($album)) {
    if($song->artist() =~ /(.*)$artist(.*)/i) {
    $mpd->playlist->add($song->file());
    }
    }
    }
    } else {
    die('Unknown playlist type');
    }
    }

    # save playlist
    $mpd->playlist->save("last.fm $_username top $_type");
    print "Playlist \"last.fm $_username top $_type\" saved\n";


    # restore mpd status
    mpd_restore($mpd);
    }

    my @mpd_status;

    sub mpd_store
    {
    my $mpd = shift;
    %mpd_status = (
    'fade' => $mpd->status->xfade(),
    'random' => $mpd->status->random(),
    'repeat' => $mpd->status->repeat(),
    'song' => $mpd->status->song(),
    'state' => $mpd->status->state(),

    'time' => $mpd->status->time(),
    'volume' => $mpd->status->volume());

    @items = $mpd->playlist->as_items();
    }

    sub mpd_restore
    {
    my $mpd = shift;
    $mpd->stop();
    $mpd->playlist->clear();
    foreach my $item (@items)
    {
    $mpd->playlist->add($item->file());
    }
    $mpd->volume(0);
    $mpd->fade($mpd_status{'fade'});
    $mpd->random($mpd_status{'random'});
    $mpd->repeat($mpd_status{'repeat'});
    $mpd->seek($mpd_status{'time'}->seconds_sofar(), $mpd_status{'song'});
    if($mpd_status{'state'} eq 'play')
    {
    $mpd->play();
    } else {
    $mpd->pause();
    }
    $mpd->volume($mpd_status{'volume'});
    }


    Requirements:
    -Perl
    -CPAN Module Audio::MPD
    -CPAN Module URI::Fetch
  • last_mpd_info version 0.3

    7 aug 2008, 11:25

    Shit, I can't stop coding :). Here is a new version with some bug fixes and improvements.

    Changelog:
    -a better last.fm stream detection
    -lower traffic usage (connect to last.fm only when playing last.fm stream)
    -a new source tag (%c)
    -disable whitespace after output (fe. for use with conky)

    #!/usr/bin/perl

    # Author: GagaPete
    # Date: 2008-08-08
    # License: Use as you wish at your own risk.

    use Audio::MPD;
    use WebService::LastFM;

    # settings
    $last_username="username";
    $last_password="password";
    $mpd_host="localhost";
    $mpd_port=6600;
    $mpd_password="";

    # usage text
    $help = 'usage: last_mpd_info [options] [--] format
    options:
    -h, --helpDisplay this help text
    -v, --versionDisplay the version
    -n, --nonewlineDon\'t draw a newline after output
    format:
    %csource of the current song (last.fm, mpd or radio)
    %aartist of the current track
    %ttitle of the current track
    %dalbum containing the track
    %hlength of track in full hours
    %mlength of track in full minutes (<60)
    %slength of track in seconds (<60)
    ';
    $version = 'last_mpd_info v0.3 by GagaPete
    ';
    # parse options
    if($ARGV) {
    print $help;
    exit 0;
    }

    my $nonewline = 0;
    my $format = '';
    foreach $arg (0 .. $#ARGV) {
    if($ARGV[$arg] eq '--') {
    foreach $num2 (($arg+1) .. $#ARGV) {
    $format .= $ARGV[$num2];
    }
    last;
    } elsif($ARGV[$arg] =~ m/^-(.)$/) {
    if($1 eq 'h') {
    print $help;
    exit 0;
    } elsif($1 eq 'v') {
    print $version;
    exit 0;
    } elsif($1 eq 'n') {
    $nonewline = 1;
    }
    } elsif($ARGV[$arg] =~ m/^--(.*)$/) {
    if($1 eq 'help') {
    print $help;
    exit 0;
    } elsif($1 eq 'version') {
    print $version;
    exit 0;
    } elsif($1 eq 'nonewline') {
    $nonewline = 1;
    }
    } else {
    foreach $arg2 ($arg .. $#ARGV) {
    $format .= $ARGV[$arg2];
    }
    last;
    }
    }

    # new mpd object
    my $mpd = Audio::MPD->new(
    hostname => $mpd_hostname,
    port => $mpd_port,
    password => $mpd_password,
    );

    # get the playing song by mpd
    my $mpd_nowplaying = $mpd->current();

    # split the song informations
    if( $mpd_nowplaying->file() =~ m/^http:\/\/(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):80\/last\.mp3\?Session=([a-z][0-9])*/ ) {
    my $lastfm = WebService::LastFM->new(
    username => $last_username,
    password => $last_password,
    );
    $lastfm->get_session();
    my $lastfm_nowplaying = $lastfm->get_nowplaying();
    $artist = $lastfm_nowplaying->artist;
    $title = $lastfm_nowplaying->track;
    $album = $lastfm_nowplaying->album;
    $hours = int($lastfm_nowplaying->trackduration / 360);
    $minutes = int($lastfm_nowplaying->trackduration / 60);
    $seconds = $lastfm_nowplaying->trackduration % 60;
    $source = 'last.fm';
    } else {
    $artist = $mpd_nowplaying->artist();
    $title = $mpd_nowplaying->title();
    $album = $mpd_nowplaying->album();
    $hours = int($mpd_nowplaying->time() / 3600);
    $minutes = int($mpd_nowplaying->time() / 60);
    $seconds = $mpd_nowplaying->time() % 60;
    if( $mpd_nowplaying->file() =~ m/^http:\/\// ) {
    $source = 'radio';
    } else {
    $source = 'mpd';
    }
    }
    # proceed format string
    $format =~ s/%c/$source/;
    $format =~ s/%a/$artist/;
    $format =~ s/%t/$title/;
    $format =~ s/%d/$album/;
    $format =~ s/%h/$hours/;
    $format =~ s/%m/$minutes/;
    $format =~ s/%s/$seconds/;

    # output string
    print $format;
    if($nonewline eq 0) {
    print '
    ';
    }
  • last_mpd_info version 0.2

    6 aug 2008, 21:58

    Hi, a new release after there is a guy asking about getting specific infos about the current song. Look --help for informations

    Changelog:
    -a help text
    -format the output with different informations

    #!/usr/bin/perl

    # Author: GagaPete
    # Date: 2008-08-07
    # License: Use as you wish at your own risk.

    use Audio::MPD;
    use WebService::LastFM;

    # settings
    $last_username="username";
    $last_password="password";
    $mpd_host="localhost";
    $mpd_port=6600;
    $mpd_password="";

    # usage text
    $help = 'usage: last_mpd_info [options] [--] format
    options:
    -h, --helpDisplay this help text
    -v, --versionDisplay the version
    format:
    %aartist of the current track
    %ttitle of the current track
    %dalbum containing the track
    %hlength of track in full hours
    %mlength of track in full minutes (<60)
    %slength of track in seconds (<60)
    ';
    $version = 'last_mpd_info v0.2 by GagaPete
    ';
    # parse options
    if($#ARGV) {
    print $help;
    exit 0;
    }

    foreach $num (0 .. $#ARGV) {
    if($ARGV[$arg] eq '--') {
    $format = '';
    foreach $num2 (($num+1) .. $#ARGV) {
    $format .= $ARGV[$num2];
    }
    last;
    } elsif($ARGV[$arg] =~ m/^-(.)$/) {
    if($1 eq 'h') {
    print $help;
    exit 0;
    } elsif($1 eq 'v') {
    print $version;
    exit 0;
    }
    } elsif($ARGV[$arg] =~ m/^--(.*)$/) {
    if($1 eq 'help') {
    print $help;
    exit 0;
    } elsif($1 eq 'version') {
    print $version;
    exit 0;
    }
    } else {
    foreach $num2 (0 .. $#ARGV) {
    $format .= $ARGV[$num2];
    last;
    }
    }
    }

    # new last.fm object
    my $lastfm = WebService::LastFM->new(
    username => $last_username,
    password => $last_password,
    );
    my $stream_info = $lastfm->get_session();

    # new mpd object
    my $mpd = Audio::MPD->new(
    hostname => $mpd_hostname,
    port => $mpd_port,
    password => $mpd_password,
    );

    # get the song information you are now listening
    my $lastfm_nowplaying = $lastfm->get_nowplaying();
    my $mpd_nowplaying = $mpd->current();

    # split the song informations
    if( $lastfm_nowplaying->streaming eq true ) {
    $artist = $lastfm_nowplaying->artist;
    $title = $lastfm_nowplaying->track;
    $album = $lastfm_nowplaying->album;
    $hours = int($lastfm_nowplaying->trackduration / 360);
    $minutes = int($lastfm_nowplaying->trackduration / 60);
    $seconds = $lastfm_nowplaying->trackduration % 60;
    } else {
    $artist = $mpd_nowplaying->artist();
    $title = $mpd_nowplaying->title();
    $album = $mpd_nowplaying->album();
    $hours = int($mpd_nowplaying->time() / 3600);
    $minutes = int($mpd_nowplaying->time() / 60);
    $seconds = $mpd_nowplaying->time() % 60;
    }

    # proceed format string
    $format =~ s/%a/$artist/;
    $format =~ s/%t/$title/;
    $format =~ s/%d/$album/;
    $format =~ s/%h/$hours/;
    $format =~ s/%m/$minutes/;
    $format =~ s/%s/$seconds/;

    # output string
    print $format;


    Requirements:
    -Perl
    -CPAN Module Audio::MPD
    -CPAN Module WebService::LastFM
  • last_mpd_info

    4 jul 2008, 12:28

    Hi,
    and a last.fm stream info script again. But these time, it doesn't show the station but the artist and title of current last.fm song. And it is independent of the mcf script.


    #!/usr/bin/perl

    # Author: GagaPete
    # Date: 2008-07-04
    # License: Use as you wish at your own risk.

    use Audio::MPD;
    use WebService::LastFM;

    # settings
    $last_username="user";
    $last_password="pw";
    $mpd_host="localhost";
    $mpd_port=6600,
    $mpd_password="",

    # new last.fm object
    my $lastfm = WebService::LastFM->new(
    username => $last_username,
    password => $last_password,
    );
    my $stream_info = $lastfm->get_session;

    # new mpd object
    my $mpd = Audio::MPD->new(
    hostname => $mpd_hostname,
    port => $mpd_port,
    password => $mpd_password,
    );

    # get the song information you are now listening
    my $nowplaying = $lastfm->get_nowplaying;
    my $current = $mpd->current();

    # display all the shit :)
    if( $nowplaying->streaming eq true ) {
    print $nowplaying->artist;
    print " - ";
    print $nowplaying->track;
    } else {
    print $current->artist();
    print " - ";
    print $current->title();
    }


    Requirements:
    -Perl
    -CPAN Module Audio::MPD
    -CPAN Module WebService::LastFM
  • mcf info

    2 jul 2008, 16:10

    Hi,

    here is a small shell script to get the right song title when play local music or normal stations or last.fm station when using madsic's mcf script to play your last.fm streams via mpd.

    #/bin/sh

    # Author: GagaPete
    # Date: 2008-07-04
    # License: Use as you wish at your own risk.

    if [ -e /tmp/last_current ]; then
    mpc | grep 'last.mp3?' > /dev/null
    if [ "$?" -eq "0" ]; then
    echo `cat /tmp/last_current`
    exit 0
    fi;
    fi;
    mpc | head -n1


    Requirements:
    -mpd
    -mpc
    -a shell
  • It's done! Last.fm based MPD playlists.

    23 feb 2008, 22:33

    Hi,
    this day was boring so I wrote two small perl scripts.

    The one generates a playlist based on the top50 artists and the second one generates a playlist based on the top50 tracks.

    Just change the username and the mode variable to what you wish and go on.

    (The script doesn't set mpd host and port. So loalhost and 6600 is used)


    Requirements:
    -Mpd
    -Perl
    -Perl module Audio::MPD
    -Perl module URI::Fetch
    -Perl module XML::Parser
    -the top50 music in your mpd database
    It will be rereleased written in python with more features.

    last.fm top50 tracks playlist for Mpd
    last.fm top50 artists playlist for Mpd