Top 40 script? Kan dat?
-
plaza
Top 40 script? Kan dat?
Beste mensen,
Binnenkort starten wij een station op met onder andere de top 40 muziek. Elke week willen we de top 40 op een bepaalde tijd laten afspelen. Alleen 1 probleem is wel dat we dan alles handmatig een playlist van moeten aanmaken. Nu vraag ik me af of er een script bestaat die aan de hand van de bestandsnaam een aftelsysteem kan samenstellen. De tracks die wij per week binnen krijgt bevat eerst de top 40 noteercijfer van die week met gevolg van artiest en titel. Voorbeeld: "34. Artiest - Titel.mp3".
Nu gaat het dus om het voorste deel van de bestandsnaam. Kun je aan de hand van deze cijfer een script maken wanneer hij juist dat nummer af moet spelen? Dus eerst nummer 40, daarna nummer 39, daarna nummer 38 enzovoort. Dit moet dus compleet automatisch gaan. Is dit mogelijk? Zo ja hoe dan?
Ik hoop dat hier een oplossing voor is. Ik verwacht niet meteen een complete script, maar ik vraag me of of dit mogelijk is en hoe dit dan dus gedaan kan worden. Ik kan de script zelf dan wel verder bouwen (hoop ik).
Binnenkort starten wij een station op met onder andere de top 40 muziek. Elke week willen we de top 40 op een bepaalde tijd laten afspelen. Alleen 1 probleem is wel dat we dan alles handmatig een playlist van moeten aanmaken. Nu vraag ik me af of er een script bestaat die aan de hand van de bestandsnaam een aftelsysteem kan samenstellen. De tracks die wij per week binnen krijgt bevat eerst de top 40 noteercijfer van die week met gevolg van artiest en titel. Voorbeeld: "34. Artiest - Titel.mp3".
Nu gaat het dus om het voorste deel van de bestandsnaam. Kun je aan de hand van deze cijfer een script maken wanneer hij juist dat nummer af moet spelen? Dus eerst nummer 40, daarna nummer 39, daarna nummer 38 enzovoort. Dit moet dus compleet automatisch gaan. Is dit mogelijk? Zo ja hoe dan?
Ik hoop dat hier een oplossing voor is. Ik verwacht niet meteen een complete script, maar ik vraag me of of dit mogelijk is en hoe dit dan dus gedaan kan worden. Ik kan de script zelf dan wel verder bouwen (hoop ik).
- Gerrie K
- VIP
- Berichten: 492
- Lid geworden op: 02 jan 2011, 23:41
- SAM-versie: 2022.6
- Database: MySQL
- Windows: 10
- Locatie: Strijen
- Contacteer:
Re: Top 40 script? Kan dat?
Ja dat kan......maar dan wordt het wel 40 nummers in 2 uur..............
- 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: Top 40 script? Kan dat?
Andersom was het niet z`n probleem, dan kunnen we met werken, maar andersom wordt een denkertje.
Code: Selecteer alles
Cat['top40'].QueueCat(ipBottom);- Gerrie K
- VIP
- Berichten: 492
- Lid geworden op: 02 jan 2011, 23:41
- SAM-versie: 2022.6
- Database: MySQL
- Windows: 10
- Locatie: Strijen
- Contacteer:
Re: Top 40 script? Kan dat?
Was effe zoeken.....
Gebruik dit stukje PAL van een eerder weekscript van mij station
Dit scriptje stopt 20 nummers in een uur....
Cat['040'].QueueBottom(smRandom, NoRules); <= hier staat de nummer 40 in ,dus 1 track!!!
Je moet het wel aanpassen naar eigen inzicht......
Heeft hier goed gewerkt..........
Alle nummers in 1 uur worden ingekort....naarmate de tijd verstrijkt..........
Het enige wat je hoeft te doen is alle 40 tracks in de Cat's zetten....
Dus nummer 40 komt in Cat040
Ben benieuwd......
Gebruik dit stukje PAL van een eerder weekscript van mij station
Dit scriptje stopt 20 nummers in een uur....
Cat['040'].QueueBottom(smRandom, NoRules); <= hier staat de nummer 40 in ,dus 1 track!!!
Je moet het wel aanpassen naar eigen inzicht......
Code: Selecteer alles
// Zaterdag 16:00 uur Jukebox Top 40 Actueel
while DayOfWeek(Now) = Saturday and ((Now >= T['15:58:00']) and (Now <= T['15:58:30'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['15:59:08']);
SaveStringToFile('C:\Tekst\CurrentProgram.txt','Nu: Jukebox Top40 Actueel');
Queue.AddFile('C:\Promo\KVJTspot.mp3',ipTop);
ActivePlayer.FadeTonext;
Queue.Clear;
Queue.AddFile('C:\Nieuws\Radio Vredenburg - NieuwsLMN.mp3',ipBottom);
Queue.AddFile('C:\Sam474muziek\Hitmix\wij draaien ze allemaal 01.mp3',ipBottom);
Cat['040'].QueueBottom(smRandom, NoRules);
Cat['039'].QueueBottom(smRandom, NoRules);
Cat['038'].QueueBottom(smRandom, NoRules);
Cat['037'].QueueBottom(smRandom, NoRules);
Cat['036'].QueueBottom(smRandom, NoRules);
Cat['035'].QueueBottom(smRandom, NoRules);
Cat['034'].QueueBottom(smRandom, NoRules);
Cat['033'].QueueBottom(smRandom, NoRules);
Cat['032'].QueueBottom(smRandom, NoRules);
Cat['031'].QueueBottom(smRandom, NoRules);
Cat['030'].QueueBottom(smRandom, NoRules);
Cat['029'].QueueBottom(smRandom, NoRules);
Cat['028'].QueueBottom(smRandom, NoRules);
Cat['027'].QueueBottom(smRandom, NoRules);
Cat['026'].QueueBottom(smRandom, NoRules);
Cat['025'].QueueBottom(smRandom, NoRules);
Cat['024'].QueueBottom(smRandom, NoRules);
Cat['023'].QueueBottom(smRandom, NoRules);
Cat['022'].QueueBottom(smRandom, NoRules);
Cat['021'].QueueBottom(smRandom, NoRules);
Cat['020'].QueueBottom(smRandom, NoRules);
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['16:03:10']) and (Now <= T['16:58:20'])) do
begin
PAL.UnLockExecution;
var H_uur,H_min,H_sec,H_msec: INteger;
var RestTijd: Integer;
var StartTijd: String;
var Nu,Duration,FadeNow : Integer;
var AantalSongs,FadeSecs,FadeTime,TeLang: Integer;
IF (S = 2) THEN
BEGIN
Cat['JinglesRV'].QueueTop(smRandom, NoRules);
S := 0;
END;
// bereken de huidige tijd in seconden
DecodeTime(Now,H_uur,H_min,H_sec,H_msec);
Nu:= (H_uur*3600000) + (H_min*60000) + (H_sec*1000);
// writeln ('Nu = ' + IntToStr(Nu) + ' = '+ IntToStr(H_uur) + ':' + IntToStr(H_min) + ':' + IntToStr(H_sec));
// writeln ('Nu = ' + IntToStr(Nu) + ' sec.');
// Resterende tijd tot aan het volgende hele uur berekenen
// RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
// writeln('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
// WriteLn('Queue = '+ IntToStr(Queue.duration) + ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
// writeln('Rest = ' + IntToStr(RestTijd));
PAL.LockExecution;
RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
duration := 0;
WriteLn ('==========================');
WriteLn ('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
WriteLn ('QueueCount = ' + IntToStr(Queue.Count));
WriteLn ('QDuur = '+ IntToStr(Queue.duration)+ ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
TeLang := (Queue.duration - RestTijd);
WriteLn ('Telang = '+ IntToStr(TeLang)+ ' = ' + IntToStr(TeLang/60000) + ':' + IntToStr(TeLang-(TeLang/60000)));
FadeSecs := (Queue.duration - RestTijd)/(Queue.Count);
WriteLn ('FadeSecs/Song = '+IntToStr(FadeSecs)+ ' = ' + IntToStr(FadeSecs/60000) + ':' + IntToStr(FadeSecs-(FadeSecs/60000)));
FadeTime := (ActivePlayer.Duration - FadeSecs);
WriteLn ('FadeTime = '+IntToStr(FadeTime)+ ' = ' + IntToStr(FadeTime/60000) + ':' + IntToStr(FadeTime-(FadeTime/60000)));
WriteLn ('ActPCTime = '+IntToStr(ActivePlayer.CurTime)+ ' = ' + IntToStr(ActivePlayer.CurTime/60000) + ':' + IntToStr(ActivePlayer.CurTime-(ActivePlayer.CurTime/60000)));
FadeNow := (Nu+FadeTime);
WriteLn ('FadeNow = '+IntToStr(FadeNow)+ ' = ' + IntToStr(FadeNow/60000) + ':' + IntToStr(FadeNow-(FadeNow/60000)));
PAL.UnLockExecution;
PAL.WaitForTime('+00:00:02');
while (ActivePlayer.CurTime >= FadeTime) do
begin
WriteLn ('==== Fading ====');
ActivePlayer.FadeToNext;
PAL.WaitForTime('+00:00:08');
S := S + 1;
end;
WriteLn ('Waiting: S =' + IntToStr(S));
PAL.WaitForTime('+00:00:08');
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['16:50:30']) and (Now <= T['16:50:45'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['16:51:00']);
SaveStringToFile('C:\Tekst\CurrentProgram.txt','Volgend uur: Jukebox Top40 Actueel');
PAL.LockExecution;
end;
// Zaterdag 17:00 uur Jukebox Top40 Actueel
while DayOfWeek(Now) = Saturday and ((Now >= T['16:58:45']) and (Now <= T['16:58:55'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['16:59:08']);
SaveStringToFile('C:\Tekst\CurrentProgram.txt','Nu: Jukebox Top40 Actueel');
Queue.AddFile('C:\Promo\KVJTspot.mp3',ipTop);
ActivePlayer.FadeTonext;
Queue.Clear;
Queue.AddFile('C:\Nieuws\Radio Vredenburg - NieuwsLMN.mp3',ipBottom);
Queue.AddFile('C:\Sam474muziek\Hitmix\wij draaien ze allemaal 01.mp3',ipBottom);
Cat['020'].QueueBottom(smRandom, NoRules);
Cat['019'].QueueBottom(smRandom, NoRules);
Cat['018'].QueueBottom(smRandom, NoRules);
Cat['017'].QueueBottom(smRandom, NoRules);
Cat['016'].QueueBottom(smRandom, NoRules);
Cat['015'].QueueBottom(smRandom, NoRules);
Cat['014'].QueueBottom(smRandom, NoRules);
Cat['013'].QueueBottom(smRandom, NoRules);
Cat['012'].QueueBottom(smRandom, NoRules);
Cat['011'].QueueBottom(smRandom, NoRules);
Cat['010'].QueueBottom(smRandom, NoRules);
Cat['009'].QueueBottom(smRandom, NoRules);
Cat['008'].QueueBottom(smRandom, NoRules);
Cat['007'].QueueBottom(smRandom, NoRules);
Cat['006'].QueueBottom(smRandom, NoRules);
Cat['005'].QueueBottom(smRandom, NoRules);
Cat['004'].QueueBottom(smRandom, NoRules);
Cat['003'].QueueBottom(smRandom, NoRules);
Cat['002'].QueueBottom(smRandom, NoRules);
Cat['001'].QueueBottom(smRandom, NoRules);
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['17:03:10']) and (Now <= T['17:58:20'])) do
begin
PAL.UnLockExecution;
var H_uur,H_min,H_sec,H_msec: INteger;
var RestTijd: Integer;
var StartTijd: String;
var Nu,Duration,FadeNow : Integer;
var AantalSongs,FadeSecs,FadeTime,TeLang: Integer;
IF (S = 2) THEN
BEGIN
Cat['JinglesRV'].QueueTop(smRandom, NoRules);
S := 0;
END;
// bereken de huidige tijd in seconden
DecodeTime(Now,H_uur,H_min,H_sec,H_msec);
Nu:= (H_uur*3600000) + (H_min*60000) + (H_sec*1000);
// writeln ('Nu = ' + IntToStr(Nu) + ' = '+ IntToStr(H_uur) + ':' + IntToStr(H_min) + ':' + IntToStr(H_sec));
// writeln ('Nu = ' + IntToStr(Nu) + ' sec.');
// Resterende tijd tot aan het volgende hele uur berekenen
// RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
// writeln('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
// WriteLn('Queue = '+ IntToStr(Queue.duration) + ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
// writeln('Rest = ' + IntToStr(RestTijd));
PAL.LockExecution;
RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
duration := 0;
WriteLn ('==========================');
WriteLn ('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
WriteLn ('QueueCount = ' + IntToStr(Queue.Count));
WriteLn ('QDuur = '+ IntToStr(Queue.duration)+ ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
TeLang := (Queue.duration - RestTijd);
WriteLn ('Telang = '+ IntToStr(TeLang)+ ' = ' + IntToStr(TeLang/60000) + ':' + IntToStr(TeLang-(TeLang/60000)));
FadeSecs := (Queue.duration - RestTijd)/(Queue.Count);
WriteLn ('FadeSecs/Song = '+IntToStr(FadeSecs)+ ' = ' + IntToStr(FadeSecs/60000) + ':' + IntToStr(FadeSecs-(FadeSecs/60000)));
FadeTime := (ActivePlayer.Duration - FadeSecs);
WriteLn ('FadeTime = '+IntToStr(FadeTime)+ ' = ' + IntToStr(FadeTime/60000) + ':' + IntToStr(FadeTime-(FadeTime/60000)));
WriteLn ('ActPCTime = '+IntToStr(ActivePlayer.CurTime)+ ' = ' + IntToStr(ActivePlayer.CurTime/60000) + ':' + IntToStr(ActivePlayer.CurTime-(ActivePlayer.CurTime/60000)));
FadeNow := (Nu+FadeTime);
WriteLn ('FadeNow = '+IntToStr(FadeNow)+ ' = ' + IntToStr(FadeNow/60000) + ':' + IntToStr(FadeNow-(FadeNow/60000)));
PAL.UnLockExecution;
PAL.WaitForTime('+00:00:02');
while (ActivePlayer.CurTime >= FadeTime) do
begin
WriteLn ('==== Fading ====');
ActivePlayer.FadeToNext;
PAL.WaitForTime('+00:00:08');
S := S + 1;
end;
WriteLn ('Waiting: S =' + IntToStr(S));
PAL.WaitForTime('+00:00:08');
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['17:50:30']) and (Now <= T['17:50:45'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['17:51:00']);
SaveStringToFile('C:\Tekst\CurrentProgram.txt','Volgend uur: Jukebox Hitdossier');
PAL.LockExecution;
end;
Heeft hier goed gewerkt..........
Alle nummers in 1 uur worden ingekort....naarmate de tijd verstrijkt..........
Het enige wat je hoeft te doen is alle 40 tracks in de Cat's zetten....
Dus nummer 40 komt in Cat040
Ben benieuwd......
- 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: Top 40 script? Kan dat?
Je categoryID is je top40 map dan, hij staat nu op 6
Code: Selecteer alles
var Q : TDataSet ;
PAL.LockExecution ;
Q := Query('SELECT artist, title, filename FROM categorylist INNER JOIN songlist WHERE (songlist.ID = categorylist.songID) AND categoryID = (6) ORDER BY filename ASC ',[],True);
While not Q.EOF do
Begin
Queue.Addfile(+Q['filename'], IpTop);
Q.Next;
End;
Q.Free;
PAL.UnLockExecution; -
plaza
Re: Top 40 script? Kan dat?
Ik ben vanmiddag er even mee bezig geweest, maar op 1 of andere manier pakt hij hem niet. Hij geeft een error. Namelijk Syntax Error: Unknown name "Speling" (line 54, column: 102)
De PAL ziet er nu bij mij zo uit:
Het volgende heb ik gedaan ten opzichte van de script die hierboven is geleverd:
- Categoriemappen aangemaakt "040" t/m "001" met 1 mp3 in elk map.
- CurrentProgram.txt bestand aangemaakt in de map Tekst op mijn G:\ schijf. Ook dit is aangepast in de script.
- Queue.AddFile('C:\Promo\KVJTspot.mp3',ipTop); en Queue.AddFile('C:\Nieuws\Radio Vredenburg - NieuwsLMN.mp3',ipBottom); verwijderd aan beide gedeeltes.
- Queue.AddFile('C:\Sam474muziek\Hitmix\wij draaien ze allemaal 01.mp3',ipBottom); vervangen door: Queue.AddFile('G:\Radio\Top 40\Top 40.mp3',ipBottom); ook aan beide gedeeltes.
-
verwijderd aan beide gedeeltes. Ook deze zorgde eerst al voor error. Misschien een verband ermee?
Tenslotte wou ik graag ook een nummeraankondiging toevoegen. Ik wil graag bij elk nummer een mp3 afspelen die de positie van de plaat aangeeft. Ook zou het leuk zijn als je de jingle "Nieuw in de top 40" af kunt spelen. Ik neem aan dat je dit in bijv de map 037 bovenaan kunt zetten? Dus eerst die jingle en daarna de plaat. Dit zou handig zijn aangezien het uiteraard per week dit verschild. De aankondiging "nummer 37" kan eventueel ook op deze manier, maar misschien is dit beter in de script meteen op te nemen.
De PAL ziet er nu bij mij zo uit:
Code: Selecteer alles
// Zaterdag 16:00 uur Jukebox Top 40 Actueel
while DayOfWeek(Now) = Saturday and ((Now >= T['15:58:00']) and (Now <= T['15:58:30'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['15:59:08']);
SaveStringToFile('G:\Tekst\CurrentProgram.txt','Nu: Jukebox Top40 Actueel');
ActivePlayer.FadeTonext;
Queue.Clear;
Queue.AddFile('G:\Radio\Top 40\Top 40.mp3',ipBottom);
Cat['040'].QueueBottom(smRandom, NoRules);
Cat['039'].QueueBottom(smRandom, NoRules);
Cat['038'].QueueBottom(smRandom, NoRules);
Cat['037'].QueueBottom(smRandom, NoRules);
Cat['036'].QueueBottom(smRandom, NoRules);
Cat['035'].QueueBottom(smRandom, NoRules);
Cat['034'].QueueBottom(smRandom, NoRules);
Cat['033'].QueueBottom(smRandom, NoRules);
Cat['032'].QueueBottom(smRandom, NoRules);
Cat['031'].QueueBottom(smRandom, NoRules);
Cat['030'].QueueBottom(smRandom, NoRules);
Cat['029'].QueueBottom(smRandom, NoRules);
Cat['028'].QueueBottom(smRandom, NoRules);
Cat['027'].QueueBottom(smRandom, NoRules);
Cat['026'].QueueBottom(smRandom, NoRules);
Cat['025'].QueueBottom(smRandom, NoRules);
Cat['024'].QueueBottom(smRandom, NoRules);
Cat['023'].QueueBottom(smRandom, NoRules);
Cat['022'].QueueBottom(smRandom, NoRules);
Cat['021'].QueueBottom(smRandom, NoRules);
Cat['020'].QueueBottom(smRandom, NoRules);
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['16:03:10']) and (Now <= T['16:58:20'])) do
begin
PAL.UnLockExecution;
var H_uur,H_min,H_sec,H_msec: INteger;
var RestTijd: Integer;
var StartTijd: String;
var Nu,Duration,FadeNow : Integer;
var AantalSongs,FadeSecs,FadeTime,TeLang: Integer;
// bereken de huidige tijd in seconden
DecodeTime(Now,H_uur,H_min,H_sec,H_msec);
Nu:= (H_uur*3600000) + (H_min*60000) + (H_sec*1000);
// writeln ('Nu = ' + IntToStr(Nu) + ' = '+ IntToStr(H_uur) + ':' + IntToStr(H_min) + ':' + IntToStr(H_sec));
// writeln ('Nu = ' + IntToStr(Nu) + ' sec.');
// Resterende tijd tot aan het volgende hele uur berekenen
// RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
// writeln('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
// WriteLn('Queue = '+ IntToStr(Queue.duration) + ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
// writeln('Rest = ' + IntToStr(RestTijd));
PAL.LockExecution;
RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
duration := 0;
WriteLn ('==========================');
WriteLn ('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
WriteLn ('QueueCount = ' + IntToStr(Queue.Count));
WriteLn ('QDuur = '+ IntToStr(Queue.duration)+ ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
TeLang := (Queue.duration - RestTijd);
WriteLn ('Telang = '+ IntToStr(TeLang)+ ' = ' + IntToStr(TeLang/60000) + ':' + IntToStr(TeLang-(TeLang/60000)));
FadeSecs := (Queue.duration - RestTijd)/(Queue.Count);
WriteLn ('FadeSecs/Song = '+IntToStr(FadeSecs)+ ' = ' + IntToStr(FadeSecs/60000) + ':' + IntToStr(FadeSecs-(FadeSecs/60000)));
FadeTime := (ActivePlayer.Duration - FadeSecs);
WriteLn ('FadeTime = '+IntToStr(FadeTime)+ ' = ' + IntToStr(FadeTime/60000) + ':' + IntToStr(FadeTime-(FadeTime/60000)));
WriteLn ('ActPCTime = '+IntToStr(ActivePlayer.CurTime)+ ' = ' + IntToStr(ActivePlayer.CurTime/60000) + ':' + IntToStr(ActivePlayer.CurTime-(ActivePlayer.CurTime/60000)));
FadeNow := (Nu+FadeTime);
WriteLn ('FadeNow = '+IntToStr(FadeNow)+ ' = ' + IntToStr(FadeNow/60000) + ':' + IntToStr(FadeNow-(FadeNow/60000)));
PAL.UnLockExecution;
PAL.WaitForTime('+00:00:02');
while (ActivePlayer.CurTime >= FadeTime) do
begin
WriteLn ('==== Fading ====');
ActivePlayer.FadeToNext;
PAL.WaitForTime('+00:00:08');
S := S + 1;
end;
WriteLn ('Waiting: S =' + IntToStr(S));
PAL.WaitForTime('+00:00:08');
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['16:50:30']) and (Now <= T['16:50:45'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['16:51:00']);
SaveStringToFile('G:\Tekst\CurrentProgram.txt','Volgend uur: Jukebox Top40 Actueel');
PAL.LockExecution;
end;
// Zaterdag 17:00 uur Jukebox Top40 Actueel
while DayOfWeek(Now) = Saturday and ((Now >= T['16:58:45']) and (Now <= T['16:58:55'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['16:59:08']);
SaveStringToFile('G:\Tekst\CurrentProgram.txt','Nu: Jukebox Top40 Actueel');
ActivePlayer.FadeTonext;
Queue.Clear;
Queue.AddFile('G:\Radio\Top 40\Top 40.mp3',ipBottom);
Cat['020'].QueueBottom(smRandom, NoRules);
Cat['019'].QueueBottom(smRandom, NoRules);
Cat['018'].QueueBottom(smRandom, NoRules);
Cat['017'].QueueBottom(smRandom, NoRules);
Cat['016'].QueueBottom(smRandom, NoRules);
Cat['015'].QueueBottom(smRandom, NoRules);
Cat['014'].QueueBottom(smRandom, NoRules);
Cat['013'].QueueBottom(smRandom, NoRules);
Cat['012'].QueueBottom(smRandom, NoRules);
Cat['011'].QueueBottom(smRandom, NoRules);
Cat['010'].QueueBottom(smRandom, NoRules);
Cat['009'].QueueBottom(smRandom, NoRules);
Cat['008'].QueueBottom(smRandom, NoRules);
Cat['007'].QueueBottom(smRandom, NoRules);
Cat['006'].QueueBottom(smRandom, NoRules);
Cat['005'].QueueBottom(smRandom, NoRules);
Cat['004'].QueueBottom(smRandom, NoRules);
Cat['003'].QueueBottom(smRandom, NoRules);
Cat['002'].QueueBottom(smRandom, NoRules);
Cat['001'].QueueBottom(smRandom, NoRules);
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['17:03:10']) and (Now <= T['17:58:20'])) do
begin
PAL.UnLockExecution;
var H_uur,H_min,H_sec,H_msec: INteger;
var RestTijd: Integer;
var StartTijd: String;
var Nu,Duration,FadeNow : Integer;
var AantalSongs,FadeSecs,FadeTime,TeLang: Integer;
// bereken de huidige tijd in seconden
DecodeTime(Now,H_uur,H_min,H_sec,H_msec);
Nu:= (H_uur*3600000) + (H_min*60000) + (H_sec*1000);
// writeln ('Nu = ' + IntToStr(Nu) + ' = '+ IntToStr(H_uur) + ':' + IntToStr(H_min) + ':' + IntToStr(H_sec));
// writeln ('Nu = ' + IntToStr(Nu) + ' sec.');
// Resterende tijd tot aan het volgende hele uur berekenen
// RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
// writeln('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
// WriteLn('Queue = '+ IntToStr(Queue.duration) + ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
// writeln('Rest = ' + IntToStr(RestTijd));
PAL.LockExecution;
RestTijd := ((H_uur+1)*3600000) - (nu + Activeplayer.duration - activeplayer.curtime) - Speling;
duration := 0;
WriteLn ('==========================');
WriteLn ('Rest = '+ IntToStr(RestTijd) + ' = ' + IntToStr(RestTijd/60000) + ':' + IntToStr(RestTijd-(RestTijd/60000)));
WriteLn ('QueueCount = ' + IntToStr(Queue.Count));
WriteLn ('QDuur = '+ IntToStr(Queue.duration)+ ' = ' + IntToStr(Queue.duration/60000) + ':' + IntToStr(Queue.duration-(Queue.duration/60000)));
TeLang := (Queue.duration - RestTijd);
WriteLn ('Telang = '+ IntToStr(TeLang)+ ' = ' + IntToStr(TeLang/60000) + ':' + IntToStr(TeLang-(TeLang/60000)));
FadeSecs := (Queue.duration - RestTijd)/(Queue.Count);
WriteLn ('FadeSecs/Song = '+IntToStr(FadeSecs)+ ' = ' + IntToStr(FadeSecs/60000) + ':' + IntToStr(FadeSecs-(FadeSecs/60000)));
FadeTime := (ActivePlayer.Duration - FadeSecs);
WriteLn ('FadeTime = '+IntToStr(FadeTime)+ ' = ' + IntToStr(FadeTime/60000) + ':' + IntToStr(FadeTime-(FadeTime/60000)));
WriteLn ('ActPCTime = '+IntToStr(ActivePlayer.CurTime)+ ' = ' + IntToStr(ActivePlayer.CurTime/60000) + ':' + IntToStr(ActivePlayer.CurTime-(ActivePlayer.CurTime/60000)));
FadeNow := (Nu+FadeTime);
WriteLn ('FadeNow = '+IntToStr(FadeNow)+ ' = ' + IntToStr(FadeNow/60000) + ':' + IntToStr(FadeNow-(FadeNow/60000)));
PAL.UnLockExecution;
PAL.WaitForTime('+00:00:02');
while (ActivePlayer.CurTime >= FadeTime) do
begin
WriteLn ('==== Fading ====');
ActivePlayer.FadeToNext;
PAL.WaitForTime('+00:00:08');
S := S + 1;
end;
WriteLn ('Waiting: S =' + IntToStr(S));
PAL.WaitForTime('+00:00:08');
PAL.LockExecution;
end;
while DayOfWeek(Now) = Saturday and ((Now >= T['17:50:30']) and (Now <= T['17:50:45'])) do
begin
PAL.UnLockExecution;
PAL.WaitForTime(T['17:51:00']);
SaveStringToFile('G:\Tekst\CurrentProgram.txt','Volgend uur: Jukebox Hitdossier');
PAL.LockExecution;
end;
- Categoriemappen aangemaakt "040" t/m "001" met 1 mp3 in elk map.
- CurrentProgram.txt bestand aangemaakt in de map Tekst op mijn G:\ schijf. Ook dit is aangepast in de script.
- Queue.AddFile('C:\Promo\KVJTspot.mp3',ipTop); en Queue.AddFile('C:\Nieuws\Radio Vredenburg - NieuwsLMN.mp3',ipBottom); verwijderd aan beide gedeeltes.
- Queue.AddFile('C:\Sam474muziek\Hitmix\wij draaien ze allemaal 01.mp3',ipBottom); vervangen door: Queue.AddFile('G:\Radio\Top 40\Top 40.mp3',ipBottom); ook aan beide gedeeltes.
-
Code: Selecteer alles
IF (S = 2) THEN
BEGIN
Cat['JinglesRV'].QueueTop(smRandom, NoRules);
S := 0;
END;Tenslotte wou ik graag ook een nummeraankondiging toevoegen. Ik wil graag bij elk nummer een mp3 afspelen die de positie van de plaat aangeeft. Ook zou het leuk zijn als je de jingle "Nieuw in de top 40" af kunt spelen. Ik neem aan dat je dit in bijv de map 037 bovenaan kunt zetten? Dus eerst die jingle en daarna de plaat. Dit zou handig zijn aangezien het uiteraard per week dit verschild. De aankondiging "nummer 37" kan eventueel ook op deze manier, maar misschien is dit beter in de script meteen op te nemen.
-
drOhimself
Re: Top 40 script? Kan dat?
Dan ben je vergeten die op te nemen als Variable, bovenaan.plaza schreef: Syntax Error: Unknown name "Speling" (line 54, column: 102)
Overigens is de PAL van Gerrie, welke je nu aangepast hebt, een GEDEELTE uit zijn weekpal. Dus daar heb je geen info van de gebruikte Variablen.
Gerrie, graag opgave Variablen !
- Gerrie K
- VIP
- Berichten: 492
- Lid geworden op: 02 jan 2011, 23:41
- SAM-versie: 2022.6
- Database: MySQL
- Windows: 10
- Locatie: Strijen
- Contacteer:
Re: Top 40 script? Kan dat?
Zie het,sorry ,niet nagedacht.
Zal vanavond effe het complete script hier plaatsen....
Update,
Sript met de top40 countdown erin verwerkt,incl.de benodigde variables.....
Zal vanavond effe het complete script hier plaatsen....
Update,
Sript met de top40 countdown erin verwerkt,incl.de benodigde variables.....
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
-
plaza
Re: Top 40 script? Kan dat?
Ik heb hem helaas nog niet uit kunnen proberen aangezien ik alles aan moet passen. Momenteel maak ik nu de hele weekschema voor onszelf. Dit vergt nog behoorlijk veel werk dus vandaar. Toch wil ik je alvast bedanken van dit geweldige script. Het ziet er in ieder geval goed uit.
Zodra ik hem klaar heb en hem ga testen zal ik het hier wel even posten.
Zodra ik hem klaar heb en hem ga testen zal ik het hier wel even posten.
- 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: Top 40 script? Kan dat?
Kon het toch niet laten om verder te gaan puzzelen.
Nu plaats hij ook een nummer 40..39..38..etc. ervoor.
Alleen moet je dan de PAL aanpassen als je 40..39..etc.mp3 op een andere map staan.
Nu staat het in de map c:\nummer
Daar waar je categorie met je top40 staat, dat kan je veranderen in categoryID = (6).
Bij mij is me top40 in cat 6.
Je kan met MySQL-Query-Browser met de code zien welke nummer bij welke categorie correspondeert.
Nu plaats hij ook een nummer 40..39..38..etc. ervoor.
Alleen moet je dan de PAL aanpassen als je 40..39..etc.mp3 op een andere map staan.
Nu staat het in de map c:\nummer
Daar waar je categorie met je top40 staat, dat kan je veranderen in categoryID = (6).
Bij mij is me top40 in cat 6.
Je kan met MySQL-Query-Browser met de code
Code: Selecteer alles
SELECT * FROM category ;Code: Selecteer alles
var Q : TDataSet ;
var nr : Integer = 40 ;
PAL.LockExecution ;
Q := Query('SELECT artist, title, filename FROM categorylist INNER JOIN songlist WHERE (songlist.ID = categorylist.songID) AND categoryID = (6) ORDER BY filename DESC ',[],True) ;
While not Q.EOF do
Begin
Queue.Addfile('C:\nummer\'+IntToStr(nr)+'.mp3', IpBottom) ;
Queue.Addfile(+Q['filename'], IpBottom) ;
nr := nr - 1 ;
Q.Next ;
End ;
Q.Free ;
PAL.UnLockExecution ; - 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: Top 40 script? Kan dat?
Voor als je geen MySQL-Query-Browser heb.
Kan je onderstaande PAL draaien.
Als je je catID niet weet en niks heb ingevuld in CatID := '' ;
Dan gaat hij automatisch de categorie-nummer + categorie-naam laten zien rechts in je PAL- Scripting IDE.
Je zoekt dan je Categorie op (bv top40) en de cijfer boven de categorie-naam vul je dan in (bv 6)
CatID := '6' ;
Kan je onderstaande PAL draaien.
Als je je catID niet weet en niks heb ingevuld in CatID := '' ;
Dan gaat hij automatisch de categorie-nummer + categorie-naam laten zien rechts in je PAL- Scripting IDE.
Je zoekt dan je Categorie op (bv top40) en de cijfer boven de categorie-naam vul je dan in (bv 6)
CatID := '6' ;
Code: Selecteer alles
var Q : TDataSet ;
var nr : Integer = 40 ;
var catID : string;
// hieronder komt je Categorie-nummer
CatID := '' ;
if catID = '' then
begin
Q := Query('SELECT * FROM category',[],True) ;
While not Q.EOF do
Begin
WriteLn(Q['ID']);
WriteLn(Q['name']);
Q.Next ;
end;
Q.Free ;
PAL.Loop := False ;
end
else if (CatID > '') then
begin
PAL.LockExecution ;
Q := Query('SELECT artist, title, filename FROM categorylist INNER JOIN songlist WHERE (songlist.ID = categorylist.songID) AND categoryID = (:CatID) ORDER BY filename DESC ',[CatID],True) ;
While not Q.EOF do
Begin
Queue.Addfile('C:\nummer\'+IntToStr(nr)+'.mp3', IpBottom) ;
Queue.Addfile(+Q['filename'], IpBottom) ;
nr := nr - 1 ;
Q.Next ;
End ;
Q.Free ;
PAL.UnLockExecution ;
end ;-
plaza
Re: Top 40 script? Kan dat?
Het lijkt goed te werken. Heel erg bedankt! Jullie hebben mij erg goed geholpen.
-
- Vergelijkbare Onderwerpen
- Reacties
- Weergaves
- Laatste bericht
-
-
Nieuw bericht Heb Aanpassing nodig voor top 10 script iemand ?? (OPGELOST)
door Artechhosting » » in PAL» - 16 Reacties
- 4359 Weergaves
-
Laatste bericht door cyberneticorganism
-
-
- 3 Reacties
- 2873 Weergaves
-
Laatste bericht door Kees

