Auteur Topic: nrs excluden in random 100 audiostation  (gelezen 18371 keer)

Offline waterglas

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 1
  • Berichten: 32
nrs excluden in random 100 audiostation
« Gepost op: 11 juni 2012, 16:46:17 »
Ik speel vaak random 100 nummers af in audiostation.
Nu heb ik ook wat mapjes met daarin Sinterklaas/kerst/kindermuziek.
Is er een manier om die niet mee te laten doen aan de random 100 van audiostation?

Offline Tien

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 265
  • -Ontvangen: 298
  • Berichten: 2.622
Re: nrs excluden in random 100 audiostation
« Reactie #1 Gepost op: 11 juni 2012, 16:51:26 »
Leuke vraag. Ik ben benieuwd naar het antwoord!
  • Mijn Synology: DS214play
  • HDD's: 2 x WD4tb
  • Extra's: DS119j WD3tb

Offline klen

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 9
  • -Ontvangen: 30
  • Berichten: 416
Re: nrs excluden in random 100 audiostation
« Reactie #2 Gepost op: 02 april 2013, 16:39:35 »
Ik heb wel een oplossing, maar dat vereist wat interactieve commando's via een ssh sessie.
De volgende stappen zorgen ervoor dat je een playlist krijgt van alle korte nummers uit je database (kort is tussen de 60 en 200 seconden) waarbij verschillende genres zijn uitgesloten.
Wanneer je SQL kent, kan je dit aanpassen en de filtering op andere gebieden doen.

1) voer het volgende commando uit om een playlist folder te maken in de music folder
mkdir /volume1/music/playlists2) bewaar de volgende sql code in een file bijvoorbeeld /tmp/audiostation-playlist.sql
select path from music
        where
                ( duration <= 200 AND duration >= 60 ) AND
                ( ( genre != 'Classical' ) AND ( genre != 'Kinderen' ) AND (genre != 'Podcast') AND (genre != 'Luisterboek') AND (genre != 'Children\'s Music') )
                order by RANDOM() ;
3) voer het volgende commando uit om een playlist te krijgen die 'short' heet
cat   /tmp/audiostation-playlist.sql | /usr/syno/pgsql/bin/psql mediaserver admin -t | sed 's# /volume1/music#..#' > /volume1/music/playlists/short.m3u
4) voeg de playlist toe aan AudioStation
synoindex -a /volume1/music/playlists/short.m3u
Wanneer je de playlist weg wilt hebben, kan je dit commando gebruiken:
synoindex -d /volume1/music/playlists/short.m3u
Let op: dit zal geen negatieve gevolgen hebben voor AudioStation, maar je kunt misschien eerst tussen stap 3 en stap 4 de inhoud van het nieuwe bestand bekijken, alvorens de playlist toe te voegen aan AudioStation.
Let op: als dit allemaal abracadabra is, doe het dan niet. Je kan ook via de web-interface playlists maken en daar telkens muziek bij toevoegen, en die later randomizen.
Let op: De music tabelbevat de volgende kolommen die je kan gebruiken in je SQL
                                      Table "public.music"
    Column    |            Type             |                     Modifiers
--------------+-----------------------------+----------------------------------------------------
 id           | integer                     | not null default nextval('music_id_seq'::regclass)
 path         | text                        | not null
 title        | text                        | not null
 filesize     | bigint                      | not null default 0
 album        | text                        |
 artist       | text                        |
 album_artist | text                        |
 composer     | text                        |
 comment      | text                        |
 year         | integer                     |
 genre        | character varying(128)      |
 frequency    | integer                     |
 bitrate      | integer                     |
 duration     | integer                     |
 channel      | integer                     |
 track        | integer                     |
 disc         | integer                     |
 covercount   | integer                     |
 date         | timestamp without time zone |
 mdate        | timestamp without time zone |
 fs_uuid      | text                        |
 fs_online    | boolean                     | default true
--
DS-412+ DSM 5.x
DS-112j  DSM 5.x
DS-107+ DSM 2.3-1157

Offline kael

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 0
  • Berichten: 26
Re: nrs excluden in random 100 audiostation
« Reactie #3 Gepost op: 25 mei 2015, 15:37:27 »
De playlist en random generator zijn idd. vrij beperkt in synology.
Ik bekeek even de oplossing van #klen en heb daar wat resultaat mee. Alleen staan de muziekbestanden bij mij niet in de standaard /music map. Ik krijg dan problemen in de playlist dat het pad niet klopt. Als ik de file info opvraag van een track in een playlist zie ik staan: /music/playlists/ /volume1/Muziek/en de rest van het pad.. 
er lijkt daar een soort samenvoeging te gebeuren, ik krijg dan een rood kruisje voor elke track in de playlist.
In de .m3u file zie ik staan: /volume1/Muziek/...
Weet iemand de correcte syntax bij de voorgaande instructies als je bestanden niet in /music staan?
Vreemd dat er geen 3th party Package lijkt te bestaan die wat dieper ingaat op het aanmaken van playlists?

Offline klen

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 9
  • -Ontvangen: 30
  • Berichten: 416
Re: nrs excluden in random 100 audiostation
« Reactie #4 Gepost op: 03 juli 2015, 13:59:13 »
Ik heb mijn playlist .m3u files in deze folder staan:
/volume1/music/playlists

Mijn muziek collectie staat in zijn geheel in /volume1/music

De filenamen in de m3u files zien er als volgt uit (slechts 1 regel als voorbeeld)
../Paul McCartney/Tripping The Live Fantastic/01 Things We Said Today.mp3

Dat betekent dat de files in een playlist in een relatief pad moeten staan ten opzichte van de hoofdfolder van de muziek-collectie.

Ik kan je helaas niet helpen met iets dat daarvan afwijkt, omdat ik dat zelf niet heb.

Succes
--
DS-412+ DSM 5.x
DS-112j  DSM 5.x
DS-107+ DSM 2.3-1157

Offline kael

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 0
  • Berichten: 26
Re: nrs excluden in random 100 audiostation
« Reactie #5 Gepost op: 15 juli 2015, 01:52:07 »
Inderdaad, nu ik mijn media in de /music map staan heb, lukt het 100%! Ik zie nu ook een relatief pad in de m3u file en ze spelen goed af in Audio station.  8)
Via de SQL Select komen er heel wat mogelijkheden bij om je muziek te selecteren, die je niet kan met standaard interface van Synology.
Vooral het feit dat je geen mappen kan excluden bij Random 100 vind ik persoonlijk een flink gebrek.
Maar een playlist blijft natuurlijk een playlist met een voorgemaakte volgorde, een grote lijst (pakweg >1000 tracks) kan je dan wel random afspelen maar dan verlies je weer de afspeel overzicht volgorde in de player.
Ook een Smart playlist maakt telkens weer dezelfde selecties in dezelfde volgorde! Die moet je ook random afspelen.
Random 100 is dan wel telkens willekeurig en die kan je gewoon sequentieel afspelen zodat je de vorige track nog steeds kan vinden/zien tov. de huidige, alleen die functie kan geen mappen excluden....

De zelfgemaakte m3u files zijn wel telkens random van volgorde dankzij de Where met 'order by RANDOM()'. Ik merk zelf dat eens je de m3u file heb toegevoegd aan Audiostation dat enkel de opdracht voor het creëren van de m3u volstaat om een playlist met nieuwe inhoud in audio station te bekomen. Dat benadert al flink de random100 lijst, alleen die opdracht voor de m3u file kan enkel via de SSH sessie (putty) uitgevoerd worden.
Zou er een mogelijkheid zijn om dat vanuit de Synology interface te doen? Of mogelijks automatisch op dagelijks basis bijvoorbeeld?
En kan je met Where de aangemaakte playlist beperken in aantal tracks?
Ik vrees dat mijn probleem nog steeds blijft bestaan.

Offline raym0nd93

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 3
  • Berichten: 27
Re: nrs excluden in random 100 audiostation
« Reactie #6 Gepost op: 19 juli 2015, 10:35:12 »
Ik heb dit zelf niet getest, maar het zou een workaround kunnen zijn die je probleem oplost.

Zet in audio station de optie aan voor persoonlijke bibliotheek en geef aan dat je persoonlijke muziek en shared music wilt luisteren. Als je de sinterklaas/kerst/kindermuziek in de bibliotheek van een losse user zet(evt. een user kindermuziek oid maken) en de rest in de user waar je mee inlogt of gewoon in de /music map kom je niet bij de kindermuziek uit. Als je wel de kindermuziek erbij wilt hebben log je in als user kindermuziek en krijg je ook de muziek uit /music erbij.

Je zou ook nog kunnen kiezen voor enkel personal, dan heb je dus of enkel de kindermuziek of enkel jouw muziek.

  • Mijn Synology: ds214play
  • HDD's: WD20EFRX 2 TB x2
  • Extra's: ds111 backup

Offline klen

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 9
  • -Ontvangen: 30
  • Berichten: 416
Re: nrs excluden in random 100 audiostation
« Reactie #7 Gepost op: 05 augustus 2015, 14:50:58 »
Je kunt de select/where/order sql statement uitbreiden met 'LIMIT getal'

Dus bijvoorbeeld:
select path from music
        where
                ( duration <= 200 AND duration >= 60 ) AND
                ( ( genre != 'Classical' ) AND ( genre != 'Kinderen' ) AND (genre != 'Luisterboek') AND (genre != 'Children\'s Music') )
                order by RANDOM() limit 100;

Verder kan je alles in een script doen en het elke dag uitvoeren via crontab, maar dat vereist weer iets meer/andere Unix kennis.

--
DS-412+ DSM 5.x
DS-112j  DSM 5.x
DS-107+ DSM 2.3-1157

Offline kael

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 0
  • Berichten: 26
Re: nrs excluden in random 100 audiostation
« Reactie #8 Gepost op: 05 augustus 2015, 15:07:59 »
ha ja de 'limit' mogelijkheid, had ik niet bij stil gestaan. Is inderdaad een stap in goede richting.
Blijft dan die cronjob, ik vrees dat dit een beetje boven mijn petje zal gaan. Of heb je daar een voorbeeld code van beschikbaar? ik veronderstel dat het toch wel wat werk is?

Offline klen

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 9
  • -Ontvangen: 30
  • Berichten: 416
Re: nrs excluden in random 100 audiostation
« Reactie #9 Gepost op: 05 augustus 2015, 16:32:10 »
Ik ben op dit moment een test aan het schrijven met een named pipe (mkfifo)
Het werkt geniaal -al zeg ik het zelf  ;) -, maar ik denk niet dat het goed is om dit zomaar op een server te draaien als je geen verstand hebt van Linux. Bovendien vereist het installatie van de coreutils ipkg.

Ik zal je een wat robustere manier beschrijven die je via crontab kunt draaien, maar dat kost wat meer tijd.
Dat kan dan elk uur (elke dag, wat je wilt) de lijst vernieuwen.

Ik kom erop terug.
--
DS-412+ DSM 5.x
DS-112j  DSM 5.x
DS-107+ DSM 2.3-1157

Offline klen

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 9
  • -Ontvangen: 30
  • Berichten: 416
Re: nrs excluden in random 100 audiostation
« Reactie #10 Gepost op: 06 augustus 2015, 11:01:07 »
Ik heb een methode gevonden om periodiek een random 100 afspeellijst te maken

Hier zijn de stappen:

  • Maak een sql bestand met de code die je wilt uitvoeren om de lijst te krijgen
  • Maak de lijst aan en bewaar het resultaat in de playlist m3u file, maak dat bekend aan Audiostation via synoindex -a commando
  • Maak een script dat via psql het sql bestand uitvoert en bewaar het resultaat in de playlist m3u file
  • Wanneer dat goed werkt, voeg het commando toe aan crontab

Hier zijn de scripts:
1) SQL voorbeeld - bewaar dit in een bestand bijvoorbeeld /opt/etc/audiostation-stuff/random100.sql - pas het aan met je eigen code om nummers te 'excluden' via nog meer SQL statements.
select path from music
        where
                ( duration >= 60 ) AND
                ( ( genre != 'Podcast' ) AND ( genre != 'Classical' ) AND ( genre != 'Kinderen' ) AND (genre != 'Luisterboek') AND (genre != 'Children\'s Music') )
                order by RANDOM() limit 100;
2) script voorbeeld - bewaar dit in een ander bestand, bijvoorbeeld /opt/etc/audiostation-stuff/random100.sh
#!/bin/sh

# random100.sh
# this script will try to create a playlist with random songs, based on a SQL statement or file
# change the following values:

# BASE folder - this is were the SQLFILE is located and this script
BASE=/opt/etc/audiostation-stuff

# this is the output file - this is where the playlist resides in the filesystem
PLAYLIST=/volume1/music/playlists/random100.m3u

# Only change these values if your music library is located in another location
SEARCH="/volume1/music"
REPLACE=".."

# a better approach is to put the SQL statements into a file:
# there is more flexibility then and it is better readable
SQLFILE=$BASE/random100.sql

# run the command, but only when the playlist file already exists.
if [ -f $PLAYLIST ] ; then
    # this is with the SQL statements from a file
    if [ -f $SQLFILE ] ; then
        /usr/syno/pgsql/bin/psql -P pager=off -A -q -t -f $SQLFILE mediaserver admin | sed "s#$SEARCH#$REPLACE#" > $PLAYLIST
    fi
else
    exit
fi

# you should add the PLAYLIST file one time to Audiostation with the following command
#synoindex -a $PLAYLIST

# you can add the following line to the file /etc/crontab to run this file once every day, but remove the '#' in front of it
#5       6      *       *       *       root    /opt/etc/audiostation-stuff/random100.sh

# when done, restart the cron process with the following command
#/usr/syno/sbin/synoservicectl --restart crond


3) zorg dat het script executeerbaar is: chmod 755 /opt/etc/audiostation-stuff/random100.sh

4) draai het script handmatig om te zien of het werkt /opt/etc/audiostation-stuff/random100.sh - het resultaat moet zijn dat de playlist file is veranderd (in dit geval /volume1/music/playlists/random100.m3u)
Wanneer je nog geen afspeellijst aan AudioStation hebt toegevoegd moet je dat nog doen via dit commando:
synoindex -a /volume1/music/playlists/random100.m3u

5) controleer of de verandering bij AudioStation komen door naar de AudioStation website te gaan en te kijken of de playlist is aangepast

6) voeg een regel toe aan de file /etc/crontab om dit commando periodiek uit te voeren - zie het voorbeeld in het script, dat zal een maal per dag de file aanpassen, om 06:05 (vijf over 6 in de ochtend, elke ochtend)
5       6      *       *       *       root    /opt/etc/audiostation-stuff/random100.sh

7) herstart crontab via dit commando /usr/syno/sbin/synoservicectl --restart crond

Bij mij werkt dit zoals beschreven en verandert de random lijst elke keer als de crontab regel wordt uitgevoerd. Als test deed ik dit elke 10 minuten en Audiostation geeft dat goed weer.

Let op 1 Het is wel belangrijk dat de lijst evenlang blijft. Omdat de playlist in de database staat als een lijst met 100 nummers, moet je die lengte intact houden. Verander je het aantal resultaten, dan moet je de lijst weghalen en opnieuw toevoegen via synoindex -d / synoindex -a

Let op 2 Een groot aantal stappen moet je doen als admin user (root), dat is niet anders. Met name de laatste twee die met crontab te maken hebben. Afhankelijk van de plek waar je de bestanden neerzet moet je ook sommige dingen als admin gebruiker doen. Zet de bestanden in je home folder of ergens op /volume1 maar zet ze niet in /usr/local of /var/tmp want dan zijn ze weg na een upgrade. In mijn voorbeeld staat alles in /opt/etc/audiostation-stuff maar het kan ook in /var/services/homes/kael/src ofzo

Ik hoop dat mensen er iets aan hebben, het was leuk om het uit te zoeken.
Laat weten als er iets niet klopt of onduidelijk is.
--
DS-412+ DSM 5.x
DS-112j  DSM 5.x
DS-107+ DSM 2.3-1157

Offline kael

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 0
  • Berichten: 26
Re: nrs excluden in random 100 audiostation
« Reactie #11 Gepost op: 06 augustus 2015, 12:12:55 »
Dat ziet er goed uit, ik ga dit eens uittesten aan de hand van je gedetailleerde beschrijving.
Bij punt 7,  herstart crontab, was die dan eerder gestopt?

Offline klen

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 9
  • -Ontvangen: 30
  • Berichten: 416
Re: nrs excluden in random 100 audiostation
« Reactie #12 Gepost op: 06 augustus 2015, 13:02:59 »
Wanneer je de crontab file verandert, moet je cron herstarten, om de verandering kenbaar te maken, dat gaat dus niet automagisch.
--
DS-412+ DSM 5.x
DS-112j  DSM 5.x
DS-107+ DSM 2.3-1157

Offline kael

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 0
  • Berichten: 26
Re: nrs excluden in random 100 audiostation
« Reactie #13 Gepost op: 11 augustus 2015, 22:32:16 »
ik geraak niet tot het einde;
mijn playlist.sql en random.sh file staan beide in volume1/music/playlists als ik dan in die map de rechten wil instellen via:
DiskStation> chmod 755 random.sh
krijg ik: chmod: random.sh: Operation not permitted (Ik ben aangemeld via admin in Putty.) Wat doe ik verkeerd?

Die mappen waarvan sprake: /usr/syno, /opt/etc, /var/services, vind ik niet terug, niet in Putty niet in verkenner.

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1381
  • -Ontvangen: 8005
  • Berichten: 44.029
  • Alleen een PB sturen als hier om gevraag wordt.
    • Truebase
Re: nrs excluden in random 100 audiostation
« Reactie #14 Gepost op: 11 augustus 2015, 22:42:48 »
Met PuTTY moet je ook inloggen als gebruiker root met password van admin.


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.2-72806-1
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806-1   RT2600ac  SRM 1.3.1-9346-12
BeeDrive   1TB             BeeServer  BSM 1.1-65374                                                                 MR2200ac  SRM 1.3.1-9346-12


 

Audiostation van buitenaf benaderen

Gestart door martmarbusBoard Audio Station

Reacties: 7
Gelezen: 3382
Laatste bericht 22 augustus 2016, 19:44:08
door martmarbus
vraagje audiostation

Gestart door GandalfBoard Synology DSM 5.1 en eerder

Reacties: 1
Gelezen: 1204
Laatste bericht 24 november 2012, 09:01:56
door Gandalf
random play

Gestart door rronBoard Logitech Media Server

Reacties: 9
Gelezen: 3857
Laatste bericht 11 februari 2013, 23:22:51
door rron
Audiostation Internetradio URL's toevoegen

Gestart door Menno_2Board Audio Station

Reacties: 1
Gelezen: 6974
Laatste bericht 23 juli 2007, 18:23:35
door Bob
map met foto's excluden van fotostation.

Gestart door sandemanBoard Photo Station / Photos

Reacties: 3
Gelezen: 1136
Laatste bericht 15 juli 2017, 08:48:46
door Briolet