Script PAL pour SAM Broadcaster : diffuser une publicité ou un jingle toutes les 5 chansons

Mettez vos publicités dans le dossier Playlist > Content > Advertisements (All) ou vos jingles dans Playlist > Content > Station IDs (All).

Le script place automatiquement la publicité/le jingle au début de la file d’attente après avoir joué 5 chansons.

Une publicité toutes les 5 chansons

{PAL script : diffuser une publicité toutes les 5 chansons par Matt - www.skyminds.net}
{#0# }
PAL.Loop := True; 
PAL.WaitForPlayCount(5); 
CAT['Advertisements (All)'].QueueTop(smLemmingLogic, NoRules);
ActivePlayer.FadeToNext;

Un jingle toutes les 5 chansons

{PAL script : diffuser un jingle toutes les 5 chansons par Matt - www.skyminds.net}
{#0# }
PAL.Loop := True; 
PAL.WaitForPlayCount(5); 
CAT['Station IDs (All)'].QueueTop(smLemmingLogic, NoRules);
ActivePlayer.FadeToNext;

Voilà donc comment se simplifier la vie sous SAM avec seulement quelques lignes de code. Simple et efficace !

Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.

Faites confiance à mon expertise »

Articles conseillés :

51 pensées sur “Script PAL pour SAM Broadcaster : diffuser une publicité ou un jingle toutes les 5 chansons”

  1. Bonjour,
    Je viens de lire vos explications que je trouve formidable, mais voilà j’ai une question car je trouve que vous vous connaissez très bien en “Sam Broadcaster”. Ma question est simple, je souhaite créer une petite webradio avec Broadcaster mais comment faire un lien pour que les visteurs de mon site puissent l’écouter?

    Reply
  2. Bonjour Dunia,

    Il suffit de créer un simple lien HTML avec la structure suivante :

    Explications :
    – xxx.xxx.xxx.xxx : l’adresse IP publique de la machine qui diffuse.
    – 8000 : numéro du port
    – stream.ogg.m3u : fichier broadcast créé par Icecast.

    Reply
  3. Bonjour,
    J’utilise SAM Broadcaster et je voudrais insérer entre les morceau de temps en temps des virgules. mais je ne parviens pas à ce que je veux. Car les fichiers étant très court SAMBC n’arrive pas à enchaîner correctement. Alors j’aurais aimé savoir si via un script il était possible de faire jouer ces fichier via aux1 ou aux2. Peut-être que SAM pourrais alors gérer l’affaire. Enfin je prends toute solution. Maintenant c’est surtout pour mon plaisir et celui de mes amis, donc faut pas que çà vous demande trop de temps Et c’est déjà pas si mal que çà ainsi.

    Merci pour vos scripts et votre site. Le but n’est peut-être pas que les gens posent leurs questions, mais comme vous avez l’air de bien maîtriser le soft, et qu’à priori on en parle sur peu de sites et surtout en Français, voilà pourquoi je pose la question ici.

    Avec tous mes remerciements et encouragement,

    Seb

    Reply
  4. Bonjour Seb,

    Est-ce que vous avez placé vos fichiers dans la bonne catégorie (celle référencée dans le script) ?

    Jetez un oeil dans SAM > Config > Crossfading et Gap Killer. Essayez de baisser les valeurs de timings voire de les désactiver pour voir si cela aide.

    Reply
  5. Bonjour Matt,
    Effectivement si je désactive le crossfading SAM enchaîne sans faire de blanc. Mais du coup les transitions sont brutales. Dès l’instant qu’il y a du crossfade, même avec de petites valeurs, il n’arrive plus à suivre. Il enchaîne bien sur la virgule, mais ensuite il fait un blanc ou il en mets une seconde puis un blanc.
    Mais bon, ce n’est pas grave du tout

    Seb

    Reply
  6. Bonjour Seb,

    Est-ce que tu peux rallonger un peu ton fichier audio ? Cela règlerait le problème en douceur et tu n’aurais pas à désactiver le crossfading.

    Reply
  7. Oui, c’est une solution.
    Je vais tout-de-même essayer de poser la question sur le forum de spacial Audio, on ne sait jamais. Si jamais j’ai une solution bien entendu je vous en ferais part, çà peu toujours intéresser d’autres personnes.

    Seb

    Reply
  8. bonjour a tous et bien sur salut matt jai installer le scrip pour les jingles pous sam.et sam passe un jingle entre chaque chanson et non pas un jingle tout les 5 chanson.jai 14 jingles diferent qui tourne dans sam.merci de me raipondre cordialement W.FM

    Reply
  9. Salut W.FM,

    Ce script PAL correspond peut-être mieux à tes attentes :

    
    PAL.Loop := True ;
    {#1# Insertion de chansons dans la file d'attente depuis plusieurs catégories}
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Station IDs (All)'].QueueBottom(smLRP,NoRules) ;
    {#2# Pause le temps que quelques chansons soient jouées pour éviter de surcharger la file d'attente}
    repeat
    	PAL.WaitForPlayCount(1) ;
    until Queue.Count < 4 ;
    
    Reply
  10. Bonjour matt , J’essaie depuis quelques jours de creer un pal script qui ferait l’operation suivante : (ceci est un exemple)

    le lundi à 19h chargement d’un set en queue top , set qui sera pris dans un fichier donné specifique au dj prevu le tel jour a tel heure .

    Avant de jeter mon pc par la fenetre je prefere vous soumettre la chose car vous avez l’air plutot calé en pal script . Merci d’avance de votre reponse !
    Cordialement , Yann

    Reply
  11. Salut Yann,

    Regarde dans SAM > Windows > Event Scheduler. Cela devrait correspondre à ce que tu veux faire. J’écrirai un article là-dessus bientôt.

    Reply
  12. Merci de votre ( ta) reponse Matt , j’ai deja tenté l’event mais il est vrai que je n’ai pas poussé lexploration tres loin . je vais tenter de chercher ce soir et je vous tiendrais au courant , Bonne journée ! Yann

    Reply
  13. Voila , apres quelques test j’ai a peu pret reussi a maitriser le scheduler.Je me suis longuement battu car le sam en question est sur une box et donc la latence m’as quelque peu c**** les c***** car en plus de Sam j’ai rajouté un traitement de son assez lourd (mais bon qd on souhaite monter un projet qualité je pense qu’il faut passer par là . Ce qui est franchement “génant” c’est que l’event scheduler est à reactualiser chaque semaine ( à mix different , chemin d’acces different) un pal aurait été utile afin de faire chercher chaque semaine le mp3 se trouvant dans un dossier et non un mp3 en particulier (ou alors je suis blond ou fatigué et je n’ai pas pensé à la solution miracle) . En tout cas merci Matt , J’espere pouvoir te rendre la pareille un jour :)

    Yann

    Reply
  14. bonjour a toi MATT et mille merci pour ton aide pourais tu me donner les reglages pour qu’il ny et pas de blanc avec sam stp merci cordialement ROBY de W.FM

    Reply
  15. Salut,

    @syks s : je t’en prie :)

    @W.FM : normalement il n’y a pas de blanc avec SAM puisque le Crossfading est activé par défaut. Vérifie qu’il est bien actif : SAM > File > Edit Configuration > Crossfading.

    Reply
  16. Bonjour,
    j’utilise donc le script pour faire tourner jingle et annonce mais je souhaiterais savoir comment le gérer si j’ai plusieurs jingles dans le dossier “stations ids” par exemple ?? Car lorsque le script arrive tous les fichiers présents dans ce dossier sont lus en même temps !!! Je suppose qu’il faut éditer le script mais que mettre svp ??

    merci,

    j-yves

    Reply
  17. Salut

    @jean-yves : ajoute cette ligne à la fin du script PAL pour voir si cela corrige le problème :

    ActivePlayer.FadeToNext;

    Je viens d’éditer l’article avec ce changement.

    Reply
  18. salut matt,

    j’ai du mal m’exprimer car en fait je souhaiterais savoir comment indiquer dans mon script la lecture d’un jingle qui se trouve dans un sous-dossier de “jingles” en fait j’ai créé plusieurs jingles(classés par sous-dossiers) et je souhaiterais automatiser leurs diffusions mais avec un script par jingle !! Mon problème réside dans le fait d’indiquer au script tel ou tel sous-dossier dans une même catégorie exemple “jingles” can you help me ami !
    thanks

    Reply
  19. Salut Matt !
    Je cherche le script suivant :
    3 chansons les moins jouées du fichier ‘Tracks’
    1 Jingle
    (Tout ce qui est au dessus x2)
    3 Station IDs au hasard
    1 Jingle
    Et pour finir je voudrai que la queue ne se surcharge pas et que le script se joue en continu.
    Voilà merci j’espère avoir été clair dans mon script.

    Reply
  20. Salut,

    @jean-yves : il vaut mieux ne créer qu’un seul script PAL pour tout gérer. Regarde l’exemple qui suit.

    @Cat-z : cela donnerait quelque chose comme cela :

    PAL.Loop := True ;
    {#1# Insertion de chansons dans la file d'attente depuis plusieurs catégories}
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    {#2# Jingle}
    Queue.AddFile('D:/jingle.mp3',ipTop);
    {#3# Insertion de chansons dans la file d'attente depuis plusieurs catégories}
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules) ;
    {#4# Jingle}
    Queue.AddFile('D:/jingle.mp3',ipTop);
    {#5# ID}
    CAT['Station IDs (All)'].QueueBottom(smLRP,NoRules) ;
    {#6# Jingle}
    Queue.AddFile('D:/jingle.mp3',ipTop);
    {#7# Pause le temps que quelques chansons soient jouées pour éviter de surcharger la file d'attente}
    repeat
    	PAL.WaitForPlayCount(1) ;
    until Queue.Count < 8 ;
    
    Reply
  21. tout est bien sauf le jingle. Il se met a apparaitre 3 fois en haut de la queue avec des ??:?? en gros il ne les détectes pas. Je précise que mon Jingle est placé dans la catégorie Jingle de sam.

    Reply
  22. j’ai le mm soucis avec les jingles, j’ai tenté un seul script mais ça ne le fait pas .Si on veut automatiser la lecure de plusieurs jingles se trouvant dans le dossier “jingles”(par exemple) dans une playlist , il faut créer plusieurs script (1 par jingle) sinon ça part en live .

    Reply
  23. c’est pour les pubs moi et je ne sais pas comment faire 2 scripts qui conviendrai a ma demande.

    Reply
  24. Bonjour à tous,

    J’utilise SAM et je voudrais en savoir plus sur un script PAL.

    En effet, des animateurs n’étant pas au studio, nous les faisons passé à l’antenne grâce à une rediffusion d’un deuxième serveur animateur sur le serveur principal.

    J’ai trouvé sur le net ce script PAL qui me permet de le faire :

    Code:

    {# Add files to queue script #}
    Queue.AddURL('http://serveur:port',ipTop);
    ActivePlayer.FadeToNext;

    Ce que je voudrait faire, c’est appliquer une durée d’émission. Par exemple, je voudrais placer dans le script une ligne qui va, au bout d’une longueur donné, passer à la musique suivante dans la queue.

    Faisable ? :D

    Merci d’avance,

    Reply
  25. Bonjour Matt,

    La solution de ce problème m’intéresse beaucoup aussi.

    Mon msn : maxime [@] best-hits.fr

    Merci d’avance,

    Maxime

    Reply
  26. Salut Matt,

    Merci pour ta réponse. Le script que tu nous indique est bien trop compliquer à comprendre pour moi. Je n’arrive pas à l’adapter à mon cas.
    Celui-ci créer une queue avec un style de musique donné, en fonction du jour et de l’heure.

    Ce que nous voudrions faire concerne la lecture de source Shoutcast à une heure précise et pendant un temps déterminé.

    Par exemple :
    15:00 => Ajout du serveur Shoutcast dans le Deck A ou Deck B
    16:00 => Passage au titre suivant dans la queue

    Merci beaucoup Matt,

    Maxime & Florian

    Reply
  27. @Matt: J’ai modifier le script, ca lis bien le flux shoutcast mais lorsque celui ci doit se stopper, il ne s’arrete pas et continue de le lire au lieu de repasser sur la playlist.

    {PAL script : style de musique par créneau horaire par Matt - www.skyminds.net}
    
    {*************************************************************
    Définition des VARIABLES.
    **************************************************************}
    PAL.Loop := True;
    var mytime : DateTime = now;
    var D: Integer;
    
    var start_time_nolimit, end_time_nolimit : DateTime;
    
    {*************************************************************
    A vous d'ajuster les heures ! Je lance le script 15 minute avant l'heure parce qu'il
    reste toujours 3 ou 4 chansons dans la file d'attente. Si vous souhaitez que cela
    commence à l'heure exacte, il vous suffit d'ajouter la commande Queue.Clear
    **************************************************************}
    start_time_nolimit := date + EncodeTime(12,01,00,0);
    end_time_nolimit := date + EncodeTime(11,59,00,0);
    {*************************************************************
    Le script est lancé le Samedi et obéit aux règles catégories/heures.
    **************************************************************}
    IF DayOfWeek(Now) = Sunday then
    begin
          IF( mytime >= start_time_nolimit) AND (mytime <= end_time_nolimit) Then
             begin
                 Queue.AddURL('http://sv5.vestaradio.com:8500',ipTop);
                PAL.WaitForQueue(1);
             end;
    end;

    Merci de ton aide

    Reply
  28. Salut Matt,

    Aurais-tu une idée pour résoudre ce problème de prise de live pour un temps défini dans SAM Broadcaster ? C’est assez urgent.

    Merci beaucoup,

    Maxime

    Reply
  29. Euhhhh il y a un petit problème , quand le script agit , au lieux que la chanson soit en haut de la liste , elle est en bas , donc , elle ne se joue qu’a la fin de toutes les chansons , comment faire pour remédier a sa?

    Reply
  30. Salut,

    @Maxime et @florian-radio : essayez d’utiliser l’Event Scheduler comme indiqué ici. Cela fonctionne mieux que le script de créneau horaire.

    @Alexmog : ce n’est pas un problème, c’est le comportement normal d’une file d’attente, le dernier arrivé est toujours à la fin de la file. Si tu veux ajouter un fichier en début de file, il faudra utiliser :

    Queue.AddFile('D:/toto.mp3',ipTop);

    C’est la commande ipTop qui l’envoie en tête de liste.

    Reply
  31. Lu matt voila dans mon sam broadcaster je ne trouve pas le dossier playist content etc

    donc je voulez te demander dans dosssir se trouver le dossier playist

    MErci davanced

    Reply
  32. Salut Yann,

    La fenêtre Playlist n’est peut-être pas affichée sur ton espace SAM. Tu peux l’afficher en sélectionnant le menu Window > Playlist (je te dis ça de mémoire, à vérifier).

    Reply
  33. J’aimerais savoir si il y’a une possibilité d’avoir une contrôle sur les pubs que je passe sur ma radio avec Sam ??

    Déterminer combien de fois elle va passer (rotation) ???

    Je sais que l’option rotation rule fonctionne de ma nière à passer plus ou moins souvent mais est-ce que je peux déterminer combien de fois par jour ??

    Merci à l’avance

    Reply
  34. Voici le script Show par default de sam Brodcaster vou savez juste a modifier L’ip et le port pour lire le flux audio de vos animateur, pencer a creer une categories exemple emission et inserer une url pour que le script puisse la metre automatiquement

    { About:
       This script will play a remote show inside SAM
       The show starts at a specified time, and then ends at
       another specified time.
       
       The script also contains some error-correction code
       that will attempt to connect to the stream up to 20 times
       in case it goes down. We schedule one song between each attempt.
    
       Usage:
        a) Comple configuration below and start PAL script.
        b) If this show is only in certain days you will need to modify the script to
           only queue the show up during these days.
           See the DayOfWeek function.
    }
    { CONFIGURATION }
    {==================================================}
    const ShowURL   = 'http://Ton adresse IP:Ton Port/';
    const StartTime = '01:01:00';
    const EndTime   = '01:05:00';
    
    { IMPLEMENTATION }
    {--------------------------------------------------}
    var T : Integer;
    PAL.Loop := True;
    
    {Wait for the show to start}
    PAL.WaitForTime(StartTime);
    
    {Add show to queue}
    Queue.Clear;
    Queue.AddURL(ShowURL,ipTop);
    
    {Fade to show}
    ActivePlayer.FadeToNext;
    
    {Precautions - if there is a brief disconnect or server problem,
    then we would want to retry a few times to get back to the show.
    To do this we place the URL quite a few times in the queue, followed
    by some normal programmming. That way we will try and reconnect until
    the end of the show}
    
    T := 0;
    while T < 20 do
    begin
      Queue.AddURL(ShowURL,ipBottom);
      CAT["Tracks"].QueueBottom(smLRP,EnforceRules);
      T := T + 1;
    end;
    
    
    
    {Wait for show to end}
    PAL.WaitForTime(EndTime);
    
    {Clear queue}
    Queue.Clear;
    
    {Fade to normal programming}
    ActivePlayer.FadeToNext;
    
    {--------------------------------------------------}
    Reply
  35. Bonjour
    J’ai bien compris l’explication mais comment faire pour diffuser une pub ou un jingle toutes les 30mn?

    Ce script attendrait la fin du morceau en cours si par exemple quand les 30mn arrivent le morceau en cours n’est pas terminé.

    Merci de me réponre

    Reply
    • Bonjour,

      Pour jouer une publicité toutes les 30 minutes :

      {PAL script : une publicité toutes les 30' par Matt - www.skyminds.net}
      
      // Keep the script repeating
      PAL.loop := true;
      
      // heure pile
      PAL.WaitForTime('xx:00:00');
      CAT['Ads'].QueueTop(smLRP,EnforceRules);
      
      // demi-heure
      PAL.WaitForTime('xx:30:00');
      CAT['Ads'].QueueTop(smLRP,EnforceRules);

      Mieux vaut ne pas couper les chansons et ajouter la publicité à la fin de la chanson qui passe. Si on veut vraiment couper, on rajoute :

      ActivePlayer.FadeToNext;
      Reply
      • Merci mais j’ai oublié de préciser que je suis nouveau sur Sam B, Je voudrais que toutes les 30mn le script joue un jingle de manière aléatoire; les jingles se trouvant dans le dossier Jingles je dois faire
        {PAL script : diffuser une publicité toutes les 5 chansons par Matt - www.skyminds.net}
        PAL.Loop := True;
        // demi-heure
        PAL.WaitForTime('xx:30:00');
        CAT['Jingles (All)''].QueueTop(smLRP,EnforceRules);

        C’est ça? Pourquoi j’ai le message: “script file does not exist?”
        Merci de me répondre

      • Bonjour,

        Il faut sauvegarder le script dans un fichier sur le disque, puis l’importer dans la fenêtre Pal Scripts.

      • Bonjour MattJe n’ai désormais plus d’erreur mais ça semble ne pas fonctionneren fait, j’ai bien le message “waiting for time” dans la console de script, comme si il allait jouer le jinglemais rien ne se passe le moment arriver, la queue continue sans jingleMerci de m’aider encore une foisblessings

      • Bonjour Je crois avoir compris PAL.Loop := True;PAL.WaitForTime(‘xx:15:00’);CAT[‘Jingles (All)’].QueueTop(smLemmingLogic, NoRules); Ce script va jouer un jingle au hazard toutes les 15mn d’une heure (exemple: 10:15 ou 12:15 ou 14:15)Ce n’est pas exactement ce que je veux

        J’ai du faire un script prenant en charge toutes les 15mn d’une heure Je trouve celà un peu fastidieux mais ça fonctionne Pour jouer un jingle au hazard toutes les 15mn, je fais

        PAL.Loop := True;PAL.WaitForTime(‘xx:00:00’);CAT[‘Jingles (All)’].QueueTop(smLemmingLogic, NoRules);PAL.WaitForTime(‘xx:15:00’);CAT[‘Jingles (All)’].QueueTop(smLemmingLogic, NoRules);PAL.WaitForTime(‘xx:30:00’);CAT[‘Jingles (All)’].QueueTop(smLemmingLogic, NoRules);PAL.WaitForTime(‘xx:45:00’);CAT[‘Jingles (All)’].QueueTop(smLemmingLogic, NoRules); Je suis sur qu’il y a plus simple en moins de lignes… non?
        Merci de m’aider

      • Bonjour,

        Non, c’est bien comme ça. Pas besoin de chercher midi-quatorze heures pour le faire en moins de lignes.

Opinions