De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Voor vragen over Playlist Automation Language.
Gebruikersavatar
Kees
Beheerder
Berichten: 3165
Lid geworden op: 28 nov 2005, 22:07
SAM-versie: 4.2.2.*
Database: MySQL
Windows: 11
Locatie: Bergen op Zoom
Contacteer:

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door Kees »

Ik heb hem nu zover dat hij op een bepaald tijdstip alleen nummers pakt die tussen de 4 en 5 minuten duren.
Dus dat is al een goed begin !
kidschatradio

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door kidschatradio »

Ha Kees!

Ik ga dit onderwerp in de gaten houden, Hier zou ik zeker wat aan hebben!

groet, Jeroen
ojee66

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door ojee66 »

Kees schreef:Een tweede probleem waar ik nu tegen aan loop...wanneer ik een variabele aan duration koppel dan leest hij niet de tijd in min:sec maar milisec.
Hier een screenshot uit een gedeelte van het (hopenlijk) toekomstige script.
Afbeelding
Dus echt een variabele toekennen gaat weer gepaard met een berg aan rekensommetjes.
Maar ik blijf proberen.


datetimetostr of die andere strtodatetime gebruiken
patje

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door patje »

Beste Kees ,
ik ben hier pas nieuw op het forum maar zit met zo 2 gelijkaardige vragen omtrent met uurwissel .
1 / ben nog niet zo goed vertrouwd met het programma maar mijn probleem is kan je dat het programma instellen dat het automatisch stopt om het uur en het andere uur begint aan een andere afspeellijst want een map maken met exact een uur muziek gaat toch niet of heb ik het mis ??
als dat instellen zou kunnen op exact een uur kan je me eventueel een hint of een beetje uitleg geven hoe dit moet ingesteld worden aub .

2/ het radiostation waarmee het programma gaat draaien zend namelijk uit van 8 u s'morgens tot 20 u s'avonds kan je dit ook instellen eventueel dat het automatisch stopt om 20 u s'avonds en het programma herstart om 8 u s'morgens

mijn excuus dat ik met mijn vraag in uw topic plaats
grtj
Cushionfm

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door Cushionfm »

Is het nie mogelijk om een klein scriptje te maken door op de bepaalde tijd het nummer een lager volume te geven, en dan die afluiter erdoorheendraaien? zodat het nummer door blijft spelen ?

of bedoelde je dat niet ? dan heb ik het verkeerd begrepen denk ik
Gebruikersavatar
Wout
Beheerder
Berichten: 3505
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door Wout »

Code: Selecteer alles

WriteLn(Queue.ETA);
Kijk daar kunnen we wel iets mee. :-D
Afbeelding
piraat

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd !

Ongelezen bericht door piraat »

Hallo allemaal.
Ik ben een beginner wat PAL-programmeren betreft, maar vond deze topic een uitdaging voor mijn eigen omgeving. Ik heb het nu zover dat ik een plaat kan selecteren die tot het einde van het uur draait. Vanzelfsprekend hou ik geen rekening met het eventueel eerder faden naar een volgend nummer vanwege crossfading instellingen. Daarom selecteer ik platen die 10 seconden langer zijn dan de gewenste tijd.
Ook weet ik niet hoe ik de gegevens van de clockwheel instellingen kan benaderen zodat een plaat uit de juiste categorie wordt geselecteerd. Wie kan me hiermee op weg kan helpen? Nu selecteer ik dus een willekeurig passend nummer (kwa tijdsduur) uit de gehele songlist. Dat betekent dat het laatste nummer van je nederlandstalige uur een engelse plaat kan(zal) zijn.

Ik heb zelf voor het tijdsein een jingle lopen van 10 seconden. Daardoor werkt deze PAL voor mij op dit moment voorlopig goed. Verbeteringen zijn ongetwijfeld mogelijk, zo ook in de code. Zoals gezegd ik ben nog niet voldoende bekend met de PAL-scripting codes.

Ik hoop dat iemand hier iets aan heeft en/of op een beter idee komt hierdoor. Ik zie het graag in dit topic terug.

Code: Selecteer alles

PAL.Loop:=True;
PAL.LockExecution;
PAL.WaitForTime(T['xx:55:00']);

PAL.LockExecution;

//variabele voor huidige tijd
var H_uur,H_min,H_sec,H_msec: INteger;
//variabele voor RestTijd;
var RestTijd: Integer;
//variabele voor de tijd waarop opvulmuziek gestart moet worden
var StartTijd: String;
//variabele voor huidige tijd in mseconden
var Nu : Integer;
//variabel voor aantal songs in selectiequery
var AantalSongs : Integer;
//variabele voor query
var D : TDataSet;
Randomize;
var myRandomNumber : Integer;

//bereken de huidige tijd in milliseconden
DecodeTime(Now,H_uur,H_min,H_sec,H_msec);
Nu:= (H_uur*3600000) + (H_min*60000) + (H_sec*1000);

//Resterende tijd tot aan het volgende hele uur berekenen
RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime);

////////////selecteer passende song

//omdat de tijd in milliseconden staat, is de kans dat een nummer met exact dezelfde tijd aanwezig is verwaarloosbaar.
//daarom een marge van 10 seconden boven de minimale tijd ingebouwd in de selectievoorwaarde
//ook vanwege eventueel korter draaien van nummers door crossfade instellingen
D := QUERY('SELECT Songlist.Filename,Songlist.Duration,Songlist.Artist,Songlist.Title FROM songlist WHERE Duration >= '
           + InttoStr(RestTijd) + ' AND Duration <= '+InttoStr(RestTijd+10000) ,[],True);

//ga naar begin van de selectie
D.First;

//bereken het aantal tracs in de query
while not D.EOF do
begin
     AantalSongs := AantalSongs +1;
     D.next;
end;
//genereer een random getal, dit getal wordt gebruikt om een wilekeurige track uit de slectie te selecteren
myRandomNumber:=(RandomInt(AantalSongs) );

D.First;
//loop de selectiequery door totdat het juiste nummer gevonden is
AantalSongs:=0;
while not D.EOF do
begin
   AantalSongs := AantalSongs +1;
   if AantalSongs = myRandomNumber  then
      //song is gevonden, plaats nu boven in de queue
      begin
      writeln ('Artist: '+D['artist']+'  '+'Title: '+D['title' ] );
      Queue.AddFile(D['filename'],ipTop);
   end;
   D.Next;
end;

PAL.UnLockExecution;

groeten

Piraat
Gebruikersavatar
Gerrit
Moderator
Berichten: 883
Lid geworden op: 16 nov 2008, 00:08
SAM-versie: 2018.7
Database: MySQL
Windows: 10
Locatie: Veenendaal
Contacteer:

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door Gerrit »

Kees schreef:Nee...het gaat er om dat de queue gewoon blijft staan...dat is de hele insteek van het verhaal.
Hij mag vlak voor de uurwissel geen 20 seconden van een plaat draaaien maar b.v. minimaal 1.5 minuut.
Even een oude topic uit de kast gehaald met misschien wel de oplossing voor Kees en andere Sam-gebruikers.

Ik gebruik nu dit kleine scripje en dat werkt hier goed, ik heb geen last meer van platen die maar 20 of 30 sec. voor het nieuws draaien maar daarvoor in de plaats word er een instrumentale plaat gedraaid.

Code: Selecteer alles

PAL.Loop := True;

PAL.WaitForTime(T['xx:58:30']);

Cat['Instru'].QueueTop(smRandom, NoRules);
Mijn uurwissel begint om XX:59:50 en heb het scripje ingesteld op XX:58:30, dus wat gebeurd er nu, er wordt altijd een instrumentale plaat in het script gezet om XX:58:30............een plaat die daarvoor is gestart draait gewoon door tot het nieuws en een plaat die na XX:58:30 in het script staat wordt vervangen door een instrumentale plaat tot het nieuws !
Dus nooit meer een "gewone" plaat die korter gedraait wordt dan 1:20 min.

Het is misschien niet dè oplossing, maar je hebt geen korte platen meer voor het nieuws ! ;-)

Gerrit.
Vroeger was ik een twijfelaar, ik ben daar nu niet meer zo zeker van.
en
Ik houd van kritiek, maar ik moet het er wel mee eens zijn.
Gebruikersavatar
qradio
****
Berichten: 99
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: 2013.6
Database: MySQL
Windows: 10

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door qradio »

Ik krijg helaas deze error als ik het script laat draaien. [smilie=scratch_one-s_head.gif]

ERROR: Query error:Unknown column 'songlist' in 'field list'
ERROR: SQL: SELECT songlist ,songlist. Duration,songlist.Artist,songlist.Title FROM songlist WHERE Duration>=1143198AND Duration<=1153198
Gebruikersavatar
Gerrit
Moderator
Berichten: 883
Lid geworden op: 16 nov 2008, 00:08
SAM-versie: 2018.7
Database: MySQL
Windows: 10
Locatie: Veenendaal
Contacteer:

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door Gerrit »

Even een "domme" vraag, maar heb je wel eerst in sam een Cat. gemaakt genaamd: "Instru" met daarin de instrumentale hits ??

Hier loopt hij goed namelijk ! [smilie=good.gif]

Gerrit.
Vroeger was ik een twijfelaar, ik ben daar nu niet meer zo zeker van.
en
Ik houd van kritiek, maar ik moet het er wel mee eens zijn.
Gebruikersavatar
qradio
****
Berichten: 99
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: 2013.6
Database: MySQL
Windows: 10

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door qradio »

Gerrit,

Sorry ik bedoel het script van Piraat. Jouw script loopt inderdaad prima. [smilie=good.gif]
Gebruikersavatar
qradio
****
Berichten: 99
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: 2013.6
Database: MySQL
Windows: 10

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door qradio »

Nou, ik heb het script van Piraat draaiend op me laptop (test pc) waar ik allerlei dingen eerst test voordat ik ze op de "uitzend" pc zet.
Op de test pc werkt het dus maar op de uitzend pc krijg ik dan de volgende error,

ERROR: Query error:Unknown column 'songlist' in 'field list'
ERROR: SQL: SELECT songlist ,songlist. Duration,songlist.Artist,songlist.Title FROM songlist WHERE Duration>=1143198AND Duration<=1153198

Lijkt mij iets in de MYSQL maar wat? Daar heb ik (nog) geen verstand van. Iemand die mij verder kan en wil helpen?

Jeroen
Gebruikersavatar
Wout
Beheerder
Berichten: 3505
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door Wout »

Je hebt 1 songlist te veel geplaatst.
fout!

Code: Selecteer alles

SELECT songlist ,songlist. Duration,songlist.Artist,songlist.Title FROM songlist
goed!

Code: Selecteer alles

SELECT songlist.Duration, songlist.Artist, songlist.Title FROM songlist
Maar je kan ook

Code: Selecteer alles

SELECT artist, title, duration FROM songlist
doen. of

Code: Selecteer alles

SELECT * FROM songlist
Afbeelding
Gebruikersavatar
qradio
****
Berichten: 99
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: 2013.6
Database: MySQL
Windows: 10

Re: De laatste plaat voor de uurwisssel..meedenkers gevraagd

Ongelezen bericht door qradio »

Tjee zeg! [smilie=yes2.gif] Dat was inderdaad de fout. SUPER bedankt Wout [smilie=good.gif]
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht