vraagje
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Moet we even wat meer gegevens hebben hoe je de muziek draait.
Met clockwheel of PAL scripts.
Met clockwheel of PAL scripts.
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Zet deze eens online !
-
anita
Re: vraagje
heb het even overgetypt:
Cat ['Tracks'].Queuebottom (smLemminglogic, EnforceRules);
Cat ['Music (All) ' ]. QueueBottom (smLRPA, EnforceRules);
heb de playlistrotation staan op:
Same album : 60
same artist : 120
same song or title : 240
5 Queue
hoop dat het zo duidelijk is
groetjes Anita
Cat ['Tracks'].Queuebottom (smLemminglogic, EnforceRules);
Cat ['Music (All) ' ]. QueueBottom (smLRPA, EnforceRules);
heb de playlistrotation staan op:
Same album : 60
same artist : 120
same song or title : 240
5 Queue
hoop dat het zo duidelijk is
groetjes Anita
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Code: Selecteer alles
Cat ['Tracks'].Queuebottom(smLRP, EnforceRules);
Cat ['Music (All)'].QueueBottom(smLRP, EnforceRules);-
anita
Re: vraagje
dat moet het volgens jouw zijn??
en wat vind je van de playlist rotation invulling?
zag op de pps de deze hoger is ingevuld
60
1440
720
2880
groetjes Anita
en wat vind je van de playlist rotation invulling?
zag op de pps de deze hoger is ingevuld
60
1440
720
2880
groetjes Anita
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Ligt er maar net aan hoeveel muziek er in de cat. staat.
Je moet dit berekenen naar de cat. met het laagste aantal nummers.
Je moet dit berekenen naar de cat. met het laagste aantal nummers.
-
FataMorgana
Re: vraagje
In plaats van een nieuw topic, stof ik in dit geval een iets ouder topic maar even af want ik snap nog steeds niet alles van het Clockwheel en de manier waarop SAM daarmee de volgorde van de liedjes bepaalt.Kees schreef:Code: Selecteer alles
Cat ['Tracks'].Queuebottom(smLRP, EnforceRules); Cat ['Music (All)'].QueueBottom(smLRP, EnforceRules);
Kees, jij promoot altijd "smLRP" terwijl je een beetje zegt dat er niet echt regels gelden in dat geval.
Ik weet niet precies waarom het bij mij nu wat minder lekker loopt (CroatiaHrvatska) maar ik krijg tegenwoordig soms opmerkingen dat veel platen uit de playlist (zo'n 4500 op dit moment) nooit voorbij komen, tegenover sommige meerdere keren per dag!
Er luisteren tegenwoordig mensen heel de dag dus zij kunnen het weten...
Ik heb alles staan op: "smRandom enforcerules".
Zou je denken dat het met smLRP veel beter gaat en zoja, is daar een verklaring voor?
"smWeighted" zou theoretisch toch het beste kunnen zijn omdat elke song steeds "geteld" wordt als die wordt gedraaid?
Maar dit raadde je meestal af.
Ik zou voor de grap wel eens een php-scriptje willen hebben waarin een zeg maar Top 100 van gedraaide platen komt, met bovenaan uiteraard de meest gedraaide (dus niet request, gewoon gedraaide songs). Leuk voor de controle. Maar dat valt buiten dit topic.
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Goed dat je dit weer even aan haalt want n.a.v. van een ander topic ben ik aan het proefdraaien met smWeighted.
Even kijken hoe dit uitpakt want ik ben n.l. erg benieuwd wat er gebeurt als een nummer een weighted van 10 of lager heeft bereikt.
Theoretisch gezien zou dit met een cat. van 400 files nog vrij lang moeten duren.

Even kijken hoe dit uitpakt want ik ben n.l. erg benieuwd wat er gebeurt als een nummer een weighted van 10 of lager heeft bereikt.
Theoretisch gezien zou dit met een cat. van 400 files nog vrij lang moeten duren.
-
FataMorgana
Re: vraagje
Ha ha, je bent er zelf dus ook nog niet helemaal uit...
Nou ja, voor CroatiaHrvatska lijkt het simpel: ik heb maar 1 categorie: kroatische muziek.
4500 songs...
Ben alleen benieuwd of SAM inderdaad steeds kiest welke nog het meeste punten heeft.
Theoretisch zou je dan een plaat pas na 4499 andere songs weer een keer langs horen komen...
(Geloof er niks van.
)
Nou ja, voor CroatiaHrvatska lijkt het simpel: ik heb maar 1 categorie: kroatische muziek.
4500 songs...
Ben alleen benieuwd of SAM inderdaad steeds kiest welke nog het meeste punten heeft.
Theoretisch zou je dan een plaat pas na 4499 andere songs weer een keer langs horen komen...
(Geloof er niks van.
- Wout
- Beheerder
- Berichten: 3522
- Lid geworden op: 03 dec 2007, 14:17
- SAM-versie: 2019.3
- Database: MariaDB
- Windows: 11
- Locatie: West-Brabant
- Contacteer:
Re: vraagje
U vraagt, wij draaien.
FataMorgana schreef: Ik zou voor de grap wel eens een php-scriptje willen hebben waarin een zeg maar Top 100 van gedraaide platen komt,
met bovenaan uiteraard de meest gedraaide (dus niet request, gewoon gedraaide songs).
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Ik ben nu met een schone lei begonnen.
Ik heb de Weighted van alles songs op 90 gezet, de Play count op 0 en Reset Weight balance uitgevoerd.
Ben benieuwd hoeveel verschil er is met Weighted en LRP.
Ik heb de Weighted van alles songs op 90 gezet, de Play count op 0 en Reset Weight balance uitgevoerd.
Ben benieuwd hoeveel verschil er is met Weighted en LRP.
-
FataMorgana
Re: vraagje
// weer een fijn product van wout![]()
Meteen uitgeprobeerd:
http://radio.croatiahrvatska.eu/samPHPweb/hoeveel.php
Dit geldt dan natuurlijk sinds de laatste restart van SAM mag ik aannemen?
Wat me opvalt is dat de meest aangevraagde song ook tevens algemeen het meest gedraaid is!
Dit is heel interessant, als ik nu ga experimenteren met andere rotatie rules ben ik benieuwd of het eerlijker gaat.
Nu komen sommige songs naar verhouding wel veel voorbij inderdaad!
@Kees: Dan horen we over een paar weken wel hoe de Top 100 er bij jou uitziet?
Overigens zou bij een goede balans niet veel verschil mogen zijn tussen de nummer 1 en de nummer 100!
EDIT: en dit is in de lagere regionen ook zo! Dus zo slecht is het niet!
- Wout
- Beheerder
- Berichten: 3522
- Lid geworden op: 03 dec 2007, 14:17
- SAM-versie: 2019.3
- Database: MariaDB
- Windows: 11
- Locatie: West-Brabant
- Contacteer:
Re: vraagje
Hij telt vanaf het moment dat SAM is geïnstalleerd op je pc,FataMorgana schreef: Dit geldt dan natuurlijk sinds de laatste restart van SAM mag ik aannemen?
tenzij je op 'clear history' klikt of een re-install hebt gedaan, dan begint het opnieuw met tellen.
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Ik heb alle waardes op "0" gezet.
Komt bijna overheen met al je muziek uit de database halen en terug invoeren.
Ik heb er een top 10 van gemaakt en staat op de site.
Komt bijna overheen met al je muziek uit de database halen en terug invoeren.
Ik heb er een top 10 van gemaakt en staat op de site.
- cyberneticorganism
- VIP
- Berichten: 941
- Lid geworden op: 11 jun 2008, 18:14
- SAM-versie: 2025.3
- Database: MySQL
- Windows: Virtual machine
- Contacteer:
Re: vraagje
Ik ben genoodzaakt om elke week 1 of 2 keer de map met nieuwe muziek gehaal te verwijderen uit SAM (remove from all). Dit omdat ik deze wekelijks update, en het auto rescan PAL script niet werkt. Ik gooi de nieuwe mp3's in een map met circa 300/400 muziekbestanden (categorie nieuwe muziek). En ik kan in SAM de files niet los toevoegen, omdat ik echt niet meer weet welke 30 mp3's ik heb toegevoegd tussen die 300/400 mp3 files :rolleyes:
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Ik weet niet of jullie wel eens in de Help van SAM zitten te snuffelen maar daar kwam ik een eigenaardig PAL script tegen.
Heb deze maar even aan geslingerd.
Ik heb nu de clockwheel uitgezet en de waardes bij Clockwheel op 0 gezet.
Aantal nummers in de queue staat nu op 1.
Ben benieuwd hoe SAM er mee omgaat !
Hier een exacte copie !
Alle troep zoals teksten staan er nog in !
Heb deze maar even aan geslingerd.
Ik heb nu de clockwheel uitgezet en de waardes bij Clockwheel op 0 gezet.
Aantal nummers in de queue staat nu op 1.
Ben benieuwd hoe SAM er mee omgaat !
Hier een exacte copie !
Alle troep zoals teksten staan er nog in !
Code: Selecteer alles
PAL.Loop := True;
// Set some global variables to be used throughout the script
var
D, D2, D3 : TDataSet;
var
scale, points, increments,
highest_point, songID, count : Integer;
var
lowest_point, point_increment, balance, penalty : Float;
var
date : DateTime;
// SET ALL SONG balanceS TO ZERO
ExecSQL('UPDATE songlist SET balance = 0',[]);
{*******************************************************************************
START OF RULE 1
*******************************************************************************}
var current_time : DateTime = now;
var three_hours_ago : DateTime = T['-03:00:00'];
{******************************************************************************
RULE 1: NO SONG REPEATS WITHIN 3 HOURS
This rule applies severe penalties to songs played in the last three hours.
The most recently played tune receives the heaviest penalty. A song played
2 1/2 hours ago receives a lighter penalty. For every second closer to NOW that
a song played, its penalty increases by about 9.25 points.
******************************************************************************}
PAL.LockExecution;
// SET PENALTY VARIABLES
scale := 100;
points := 100;
increments := 10800; // the number of sec's in 3 hours
lowest_point := points - ((points / 100) * scale);
highest_point := points;
point_increment := (highest_point - lowest_point) / increments;
D:=Query('SELECT ID, date_played FROM songlist WHERE date_played > :now', [three_hours_ago], True);
D.First;
While Not D.EOF Do
Begin
// SET NEW balanceS FOR ALL SONGS PLAYED WITHIN LAST 3 HOURS
date := D['date_played'];
penalty := ((((date * 86400) - (three_hours_ago * 86400)) * point_increment) + lowest_point);
ExecSQL('UPDATE songlist SET balance = balance + :penalty WHERE ID = :ID', [penalty, D['ID']]);
D.Next;
End;
D.Free;
PAL.UnlockExecution;
WriteLn('Rule 1 complete.');
{*******************************************************************************
END OF RULE 1
*******************************************************************************}
{*******************************************************************************
START OF RULE 2
*******************************************************************************}
var lastgenre : String;
{*******************************************************************************
RULE NUMBER 2: DIFFERENT GENRE FOR EACH PLAY
Checks genre of the currently playing song and penalizes all songs that are
from the same genre. This just adds a little variety, especially if you are
running a Top 40 station. For instance it will make sure you don't have two
rap songs back to back, or two pop songs. For this to really work well you
should take the time to go through all of your songs and fine tune the genre
tags. Instead of using the "Rock" genre for all of your fast guitar songs,
sort them into "Hard Rock", "Metal", "Death Metal" etc. Sort your "Rap" genres
into "Hip Hop", "Freestyle", "Gangsta", etc.
Also, this rule only works if you leave SAM on "Ghost Queue" mode, instead
of keeping more than one track in the queue. This rule only applies to the
currently playing song therefore, if you're adding the 5th song to the queue,
only the 5th song will be of a different genre from the one currently playing.
*******************************************************************************}
PAL.LockExecution;
penalty := 20;
// GET GENRE OF LAST SONG PLAYED
D := Query('SELECT genre FROM songlist ORDER BY date_played DESC LIMIT 1', [], True);
lastgenre := (D['genre']);
D.Free;
// PENALIZE ALL SONGS WITH MATCHING GENRE
ExecSQL('UPDATE songlist SET balance = balance + :penalty WHERE genre = :lastgenre',[penalty, lastgenre]);
PAL.UnlockExecution;
WriteLn('Rule 2 complete.');
{*******************************************************************************
END OF RULE 2
*******************************************************************************}
{*******************************************************************************
START OF RULE 3
********************************************************************************
********************************************************************************
RULE 3: NO ARTIST REPEATS WITHIN AN HOUR
All artists that have played in the last 60 minutes will be penalized. Currently
a blanket value of 100 points is assigned to all artists played in the last hour.
(This rule could be made better by checking exactly how long ago that artist was
played and penalizing it differently for each second closer to NOW that the
artist was played - much like the way RULE 1 penalizes songs.I'll probably play
with this a bit after some coffee.)
*******************************************************************************}
PAL.LockExecution;
penalty := 100;
//GRAB ALL ARTISTS FROM LAST HOUR
D := Query('SELECT DISTINCT artist FROM historylist WHERE date_played > :now ORDER BY date_played DESC',[T['-01:00:00']],True);
D.First;
while not D.EOF do
begin
ExecSQL('UPDATE songlist SET balance = balance + :penalty WHERE artist = :artist',[penalty, D['artist']]);
D.Next;
end;
D.Free;
PAL.UnlockExecution;
WriteLn('Rule 3 complete.');
{*******************************************************************************
END OF RULE 3
********************************************************************************
{*******************************************************************************
START OF RULE 4
********************************************************************************
********************************************************************************
RULE 4: CHECK QUEUE LIST
This rule double checks the queue list. Any songs that are already queued will
be assigned some penalty points (currently set at 100).
*******************************************************************************}
PAL.LockExecution;
penalty := 100;
//GRAB ALL SONGS FROM QUEUE LIST
D := Query('SELECT songID FROM queuelist',[],True);
D.First;
while not D.EOF do
begin
D3 := Query('SELECT artist from songlist WHERE ID = :songID', [D['songID']], True);
ExecSQL('UPDATE songlist SET balance = balance + :penalty WHERE artist = :artist',[penalty, D3['artist']]);
D3.Free;
D.Next;
end;
D.Free;
PAL.UnlockExecution;
WriteLn('Rule 4 complete.');
{*******************************************************************************
END OF RULE 4
********************************************************************************}
{*******************************************************************************
START OF RULE 5
********************************************************************************}
var x : Integer;
{*******************************************************************************
RULE 5: Check number of plays
This rule checks how many times each song has played. The more a song has been
played the higher the penalty will be. If a song has never played it will end up
with a lower balance than the one that has played the most.
********************************************************************************}
PAL.LockExecution;
scale := 100;
points := 100;
// Get highest number of song plays
D := Query('SELECT DISTINCT count_played from songlist ORDER BY count_played DESC LIMIT 1', [], True);
increments := D['count_played'];
D.Free;
lowest_point := points - ((points / 100) * scale);
highest_point := points;
point_increment := (highest_point - lowest_point) / increments;
ExecSQL('UPDATE songlist SET balance = balance + (count_played * :point_increment) ', [point_increment]);
PAL.UnlockExecution;
WriteLn('Rule 5 complete.');
{*******************************************************************************
END OF RULE 5
********************************************************************************}
{*******************************************************************************
START CHOOSE BEST SONG
********************************************************************************
********************************************************************************
This section grabs the song with the lowest balance. If more than one song
shares the lowest balance, a random one will be chosen with that score.
This section is currently disabled. If you do not have a complex script set up
for category based rotation, you can enable this section to do the song
selection for you. You will be amazed at the consistent results! To enable this
section, just put a closed bracket at the end of the line below this text, just
after the long series of asterisks.
*******************************************************************************}
WriteLn('Choosing best song...');
PAL.LockExecution;
// GRAB LOWEST FINAL balance
D := Query('SELECT balance FROM songlist ORDER BY balance ASC', [], True);
balance := D['balance'];
D.Free;
// Count number of songs with this balance
D:= Query('SELECT filename, balance FROM songlist WHERE balance = :balance ORDER BY RAND() LIMIT 1', [balance], True);
// Que up selected song
Queue.AddFile(D['filename'],ipBottom);
WriteLn('Adding: ' + D['filename'] + ' to queue.');
D.Free;
PAL.UnlockExecution;
{*******************************************************************************
END CHOOSE BEST SONG
*******************************************************************************}
// Wait for song to play before running again from the top
PAL.WaitForPlayCount(1);-
FataMorgana
Re: vraagje
We horen graag hoe die bij jou reageert Kees!
Alleen wel jammer dat ik nu geen uitslag krijg van het "weighted" verhaal!
Nu weet ik nog niet wat dit doet. :rolleyes:
Alleen wel jammer dat ik nu geen uitslag krijg van het "weighted" verhaal!
Nu weet ik nog niet wat dit doet. :rolleyes:
- Kees
- Beheerder
- Berichten: 3186
- Lid geworden op: 28 nov 2005, 22:07
- SAM-versie: 4.2.2.*
- Database: MySQL
- Windows: 11
- Locatie: Bergen op Zoom
- Contacteer:
Re: vraagje
Ik snap het hele verhaal nog niet achter die Weighted.
Moet dat echt eens goed gaan uitspitten.
Dit script kijkt naar de playcount en Weight balance.
Lijkt me ook erg interessant.
Moet dat echt eens goed gaan uitspitten.
Dit script kijkt naar de playcount en Weight balance.
Lijkt me ook erg interessant.
-
- Vergelijkbare Onderwerpen
- Reacties
- Weergaves
- Laatste bericht

