Script PAL pour SAM Broadcaster : jouer un bip horaire
Ce script PAL permet de jouer un bip horaire au début de chaque nouvelle heure. Il faut pointer vers le fichier son qui contient les bips.
{Script PAL - Bip horaire par Matt - www.skyminds.net} FUNCTION ActivePlayer:TPlayer; forward; {ON attend la bonne heure} PAL.WaitForTime(T['XX:00:00']); {ON ajoute le fichier bip} Queue.Addfile('C:\bip.wav',ipTop); ActivePlayer.FadeToNext; {ON lance le bon deck} FUNCTION ActivePlayer:TPlayer; BEGIN IF DeckA.STATUS = psPlaying THEN RESULT := DeckA ELSE RESULT := DeckB; END;
Intérêt un peu limité mais bon, on ne sait jamais, cela peut vous être utile.
bjr Matt bravo pr le script(pal) et si a la place du fichier je veux fait passer 1 playlist ? j’ai essayé de modifier ton script en mettant (c:playlist.m3u’,ipTop) à la place du fichier mp3, malheuresement ça ne marche pas comme je veux, ou alors je me suis trompé quelque part ? aide moi stp. Merci d’avance.
Samut zenith,
Si tu veux charger une playlist, il faut que tu utilises la fonction AddList() et non Addfile(). Essaie ceci :
{On ajoute le fichier bip} Queue.AddList('C :playlist.m3u',ipTop)Merci pour ta reponse Matt effectivement ça marche nickel.
1 autre inquietude stp, il y t-il un moyen pour equilibrer le niveaux du volume des chanson ?
une fois encore merci pour ta reponse
Bonjour, merci pour le script,
par contre si on ne veux pas que la lecture se fasse sur un deck (et donc “coupe” le titre qui est en cours de diffusion), comment s’y prend on ?
L’option de lire le bip horaire avec le SoundFX pourrait etre une solution, avec un parametre permettant de gerer le fade de Deck en cours de lecture.
quelqu’un a une idée sur le code que ca donnerait ? mes competences en pal sont plus que limitée (j’ai déjà bien galeré pour comprendre qu’avec un “PAL.Loop := True ; le script se repetera de lui meme :( )
Tant que j’y suis, peut on trouver des tutos “super simple” sur le Palscript (genre avec des exemples concrets) quelque part ? pas evident de comprendre le Pal quand le seul language qu’on connait est le html ;)
Salut le script fonctionne mais je suis obligé de le reactiver apres chaque heure.
Y a t il une soluce pour qu il reste tout le temps actif.
Merci
salut à tous,
voila, jai donc utiliser le script pour le bip horaire, MAIS, étant assez créatif, jai décider de mettre un top horaire correspondant a chaque heure :
PAr exemple a 1h le MR dit ” Il est 1h “.
sauf que le script ne fonctione pas dans ce cas la.
en duplicant les ligne et en changeant les (‘XX:00:00′) par les heures corespondantes et les adresses de fichiers correspondant, soit ca lance tous les top horaires au démarage de sam ou alors il execute le meme bip horaire pendant 1h.
comment faire pour obtenir un script qui soit capable de lancer un top horaire different a chaque heure sans se planter ??
merci ce serai suuuper top de chopper ca parceque j’en ai suuuper besoin.
et un grand merci a tous pour votre boulo….
je suis arrivé a faire mon scripte pour ajouter des fichiers au sommet du conducteur pour les top-h sans couper la zik en cour. Ce scripte ne se répète pas car il est commendé par un évènement dans event schedulder sui lance le scriptre a XX:59.00.
function ActivePlayer:TPlayer ; forward ; {On attend la bonne heure} PAL.WaitForTime(T['XX:59:45']) ; {On ajoute le fichier bip} Cat['decro'].QueueTop(smRandom,NoRules) ; Cat['apprentissage'].QueueTop(smRandom,NoRules) ; Cat['ecologie'].QueueTop(smRandom,NoRules) ; Cat['sécurité routière'].QueueTop(smRandom,NoRules) ; Cat['l'ennemi intime'].QueueTop(smRandom,NoRules) ; Cat['top-h'].QueueTop(smRandom,NoRules) ; {On lance le bon deck} function ActivePlayer:TPlayer ; begin if DeckA.Status = psPlaying then Result := DeckA else Result := DeckB ; end ;il faut bien penser a mettre la liste des fichiers à lire a l’envers dans le scripte pour que dans le conducteur ils soient dans le bon sens
mais le blem c’est que là il ajoute que la première et la dernière ligne et avec des retour à la ligne entre chaque catégorie ça revient au même, simplement là ça les ajoutent d’un coup.
Donc pour résumer, ce scripte ajoute les fichiers au sommet du conducteur sans lancer la zik, mais il y a que le top-h et le décro qui s’ajoutent vous pouvez m’aider à trouver pourquoi SVP ?
Salut,
Suivant ce à quoi correspondent tes catégories, je mettrais :
decro et top-h sont les deux seules catégories à ne pas suivre les règles (pas plus de X diffusions).
RE…
Je souhaite donc savoir si par hasard, quelqu’un sais si il existe un script qui balance un TOP H different a chaques heures ?
jai une petite impression que ma demande ne conçerne persone… ouinnn !!
en fait j’aimerai un bip horaire different de chaques heures sans que ces derniers soient ajoutées en BDD.
pour lemoment rien de rien ! jai essayer plusieurs combinaisons mais sans succes..
merci a vous de m’aider….
Salut,
Disneyweb, je crois que tu ce que tu cherches ressemble à ceci :
function ActivePlayer:TPlayer; forward; PAL.Loop := True; const TimeHeader : String = 'E:StationPromoTimesheader.mp3'; const TimeHours : String = 'E:StationPromoTimesHours\'; const TimeMinutes : String = 'E:StationPromoTimesMinutes\'; const MyGMTZone : Integer = 10; var C,N : Integer; var fname : String; var fnamehh : String; var fnamemm : String; var ampm : String; var E : DateTime = Queue.ETA; // Return the length of the queues var hh,mm,ss,ms : Integer; N := 0; while N < 24 do begin DecodeTime(Now,hh,mm,ss,ms); if (hh = 0) then hh := 24; WriteLn('The Time Is ' IntToStr(hh) ':' IntToStr(mm)); //WriteLn('Wait for 10 Minutes'); // Say time every ten minutes //PAL.WaitForTime(T[' 00:10:00']); //PAL.WaitForPlayCount(1); //DecodeTime(Now,hh,mm,ss,ms); E := Queue.ETA; // You could even wait for the current DecodeTime(E,hh,mm,ss,ms); // cue length of time to finish if (hh <= 9) then fnamehh := '0' IntToStr(hh) '.mp3' //get the right file name else fnamehh := IntToStr(hh) '.mp3'; //get the right file name WriteLn(fnamehh); if (mm <= 9) then fnamemm := '0' IntToStr(mm) '.mp3' //get the right file name else fnamemm := IntToStr(mm) '.mp3'; //get the right file name WriteLn(fnamemm); WriteLn('SayTime at ' IntToStr(hh) ':' IntToStr(mm)); // Just checking //PAL.WaitForTime(E); // you need to reverse the order, mm - hh - header, so that the header // ends up in queuetop. //Queue.AddFile(TimeMinutes fnamemm,ipTop); //Queue.AddFile(TimeHours fnamehh,ipTop); //Queue.AddFile(TimeHeader,ipTop); //ActivePlayer.FadeToNext; // then fade to say the time. Queue.AddFile(TimeHeader,ipBottom); Queue.AddFile(TimeHours fnamehh,ipBottom); Queue.AddFile(TimeMinutes fnamemm,ipBottom); PAL.WaitForTime(E); PAL.WaitForQueue(4); // wait till the queue fills again - 4 or more // but what does it do in the even that N := N 1; end; function ActivePlayer:TPlayer; begin if DeckA.Status = psPlaying then Result := DeckA else Result := DeckB; end;Voici les sons de l’heure en anglais, à toi de les enregistrer/trouver en français. N’oublie pas de modifier le chemin vers les fichiers MP3 dans les 5 premières lignes du script.
Bonjour Matt,
J’ai fait un top horaire avec 24 fichiers différents.
Tout fonctionne très bien sauf à 00H
Lorsque les 23H son passé, il cherche le 00H mais il ne le trouve pas car c’est le 00H du lendemain.
Comment puis-je parer à ce problème ?
J’ai testé de le mettre à 23:59:59 pour voir.
Voici mon script :
PAL.Loop := True; function ActivePlayer:TPlayer; forward; PAL.WaitForTime('01:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires1H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('02:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires2H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('03:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires3H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('04:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires4H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('05:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires5H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('06:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires6H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('07:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires7H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('08:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires8H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('09:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires9H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('10:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\10H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('11:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\11H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('12:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\12H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('13:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\13H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('14:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\14H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('15:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\15H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('16:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\16H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('17:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\17H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('18:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\18H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('19:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\19H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('20:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\20H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('21:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\21H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('22:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\22H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('23:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\23H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('23:59:59'); Queue.AddFile('D:\RadioDpk\Top Horaires0H.mp3',ipTop); ActivePlayer.FadeToNext; function ActivePlayer:TPlayer; begin if DeckA.Status = psPlaying then Result := DeckA else Result := DeckB; end;bonjour, j’ai essayé ce script et il me lit tous les top horaires d’un seul coup arf. moi aussi j’aurais aimé diffuser un top horaire different a chaque heure. :( qi quelqu’un peut m’aider je susi preneur. merci
Salut Etann86,
Cela fonctionne à 23:59 ? Si oui, garde-ça comme ça.
Salut Matt,
Oui, ça marche à 23H59.
Par contre, j’ai encore un problème lol… La radio tourne 24H/24 ce qui est logique… Le problème c’est qu’au bout de 72heures, elle s’arrête. Y’at-il un moyen de savoir dans un script pal, la détection de l’arr^t des deck et de les remettre en marche en cas d’arrêt ?
Salut,
Voici mon script si ça peu t’aider.
Il te fodra donc 24 tophoraire
J’ai pas trier, y’a d’autres trucs que je lance via ce script
///Script de Top Horaire ///Scripts qui boucle PAL.Loop := True; ///Déclaration de fonction function ActivePlayer:TPlayer; forward; ///Déclaration des variables ///var Mtn : DateTime = Now; ///Script qui attend l'heure 00:00:000 PAL.WaitForTime('01:00:00'); ///CONDITION ///Ajout du fichier 00H.mp3 dans la file d'attente en début de celle-ci Queue.AddFile('D:\RadioDpk\Top Horaires1H.mp3',ipTop); ///Passe à l'élément suivant de la file d'attente, soi le fichier 00H.mp3 ActivePlayer.FadeToNext; ///exétéra PAL.WaitForTime('02:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires2H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('03:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires3H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('04:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires4H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('05:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires5H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('06:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires6H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('07:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires7H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('08:00:00'); Queue.Clear; cat['ChroniqueHumour'].QueueTop(smLemmingLogic,EnForceRules); Queue.AddFile('D:\RadioDpk\Top Horaires\EcouteSkech.mp3',ipTop); Queue.AddFile('D:\RadioDpk\Top Horaires8H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('09:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires9H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('10:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\10H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('11:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\11H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('12:00:00'); Queue.Clear; cat['ChroniqueHumour'].QueueTop(smLemmingLogic,EnForceRules); Queue.AddFile('D:\RadioDpk\Top Horaires\EcouteSkech.mp3',ipTop); Queue.AddFile('D:\RadioDpk\Top Horaires\12H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('13:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\13H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('14:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\14H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('15:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\15H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('16:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\16H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('17:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\17H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('18:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\18H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('19:00:00'); Queue.Clear; cat['ChroniqueHumour'].QueueTop(smLemmingLogic,EnForceRules); Queue.AddFile('D:\RadioDpk\Top Horaires\EcouteSkech.mp3',ipTop); Queue.AddFile('D:\RadioDpk\Top Horaires\19H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('20:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\20H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('21:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\21H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('22:00:00'); Queue.Clear; IF(DayOfWeek(Now) = Monday) OR (DayOfWeek(Now) = Wednesday) OR (DayOfWeek(Now) = Friday) THEN BEGIN CAT['ChroniqueNaissementVotre'].QueueTop(smLemmingLogic,EnForceRules); END; Queue.AddFile('D:\RadioDpk\Top Horaires\22H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('23:00:00'); Queue.AddFile('D:\RadioDpk\Top Horaires\23H.mp3',ipTop); ActivePlayer.FadeToNext; PAL.WaitForTime('23:59:59'); Queue.AddFile('D:\RadioDpk\Top Horaires0H.mp3',ipTop); ActivePlayer.FadeToNext; ///Création de la fonction déclarée précédemment ///qui renverra l'identifiant du deck en cours function ActivePlayer:TPlayer; begin if DeckA.Status = psPlaying then Result := DeckA else Result := DeckB; end;Seul problème, dès que tu lances ce script il te joue tous les top horaires jusqu’au bon.
Je travaille sur une version qui ne le fera pas !
Bonne utilisation
Un immense merci a toi en tout cas pour cette reponse. je vais deja faire le tri dans le script.
Tiens moi au courant dès que tu penses avoir trouvé le moyen de supprimer le demarrage de tous les top horaires au lancement.
Encore mille mercis