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.

Auteur de l'article : Matt

Cet article a été écrit par Matt – auteur de sur SkyMinds.Net.

Passionné par tout ce qui touche le webdesign, la programmation, la musique et la guitare en particulier. Je suis le responsable du site et master of puppets général. J'enseigne le jour. Vous pouvez me contacter ici.

Suivez-moi : Mon site • Google+ • Facebook  • Twitter


16 commentaires à “Script PAL pour SAM Broadcaster : jouer un bip horaire”

  1. zenith a écrit :
    1

    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.

  2. Matt a écrit :
    2

    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)
  3. zenith a écrit :
    3

    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

  4. seb a écrit :
    4

    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 ;)

  5. Sebbabas a écrit :
    5

    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

  6. disneyweb a écrit :
    6

    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….

  7. dj_jean_jean a écrit :
    7

    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 ?

  8. Matt a écrit :
    8

    Salut,

    Suivant ce à quoi correspondent tes catégories, je mettrais :

    Cat['decro'].QueueTop(smRandom,NoRules) ;
    Cat['apprentissage'].QueueTop(smLemmingLogic,EnforceRules) ;
    Cat['ecologie'].QueueTop(smLemmingLogic,EnforceRules) ;
    Cat['sécurité routière'].QueueTop(smLemmingLogic,EnforceRules) ;
    Cat['l'ennemi intime'].QueueTop(smLemmingLogic,EnforceRules) ;
    Cat['top-h'].QueueTop(smRandom,NoRules) ;

    decro et top-h sont les deux seules catégories à ne pas suivre les règles (pas plus de X diffusions).

  9. DISNEYWEB a écrit :
    9

    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….

  10. Matt a écrit :
    10

    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.

  11. Etann86 a écrit :
    11

    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;
    • duchemin a écrit :
      11.1

      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

  12. Matt a écrit :
    12

    Salut Etann86,

    Cela fonctionne à 23:59 ? Si oui, garde-ça comme ça.

  13. Etann86 a écrit :
    13

    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 ?

  14. Etann86 a écrit :
    14

    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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    
    ///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

    • duchemin a écrit :
      14.1

      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

quick-menu

Laisser un commentaire


Si vous possédez un compte, connectez-vous.

Quicktags: THINK. Then write. No SMS.

Me tenir informé(e) des futurs commentaires. Ou abonnez-vous sans commenter.