Un script PAL un peu plus complexe cette fois qui concernera surtout les webradios qui ont des émissions bien déterminées, à heure fixe, avec un créneau horaire bien déterminé.

Les fichiers de chaque style de musique doivent être classés dans les différentes catégories de SAM (fenêtre Playlist > Catégories) : il suffit de créer différents dossiers (instrumental, contemporary et sabbath dans l’exemple suivant) et de placer les fichiers dans ces différents dossiers.


{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_instrumental, end_time_instrumental : DateTime;
var start_time_contemporary, end_time_contemporary : DateTime;
var start_time_sabbath, end_time_sabbath : 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_instrumental := date + EncodeTime(07,45,00,0);
end_time_instrumental := date + EncodeTime(08,45,00,0);

start_time_contemporary := date + EncodeTime(10,45,00,0);
end_time_contemporary := date + EncodeTime(12,45,00,0);

start_time_sabbath := date + EncodeTime(16,45,00,0);
end_time_sabbath := date + EncodeTime(20,45,00,0);

{*************************************************************
Le script est lancé le Samedi et obéit aux règles catégories/heures.
**************************************************************}
if DayOfWeek(Now) = Saturday then
begin
      if( mytime >= start_time_instrumental) and (mytime <= end_time_instrumental) Then
         begin
            cat['Instrumental'].QueueBottom(smLemmingLogic,EnforceRules);
            PAL.WaitForQueue(1);
         end;
      if( mytime >= start_time_contemporary) and (mytime <= end_time_contemporary) Then
         begin
            cat['Contemporary'].QueueBottom(smLemmingLogic,EnforceRules);
            PAL.WaitForQueue(1);
         end;
      if( mytime >= start_time_sabbath) and (mytime <= end_time_sabbath) Then
         begin
            cat['DemoTracks'].QueueBottom(smLemmingLogic,EnforceRules);
            PAL.WaitForQueue(1);
         end;
end;

Vous n'avez plus qu'à vous pencher sur le contenu de l'émission !

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée.

Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ou ajouter de nouvelles fonctionnalités? Ou améliorer les performances de votre site?

Parlons de votre projet »

Articles en rapport:

18 Comments

  1. Avatar

    Salut SAM,

    J’ai copié et collé ton script et j’ai ensuite changé les dossiers en “rotsirosty1”, “rotsirotsy2” et “rotsirotsy3”

    PAL.Loop := True;
    var mytime : DateTime = now;
    var D: Integer;

    var start_time_rotsirotsy1, end_time_rotsirotsy1 : DateTime;
    var start_time_rotsirotsy2, end_time_rotsirotsy2 : DateTime;
    var start_time_rotsirotsy3, end_time_rotsirotsy3 : DateTime;

    start_time_rotsirotsy1 := date + EncodeTime(00,45,00,0);
    end_time_rotsirotsy1 := date + EncodeTime(02,45,00,0);

    start_time_rotsirotsy2 := date + EncodeTime(02,45,00,0);
    end_time_rotsirotsy2 := date + EncodeTime(04,45,00,0);

    start_time_rotsirotsy3 := date + EncodeTime(04,45,00,0);
    end_time_rotsirotsy3 := date + EncodeTime(05,45,00,0);

    if DayOfWeek(Now) = Thursday then
    begin
    if( mytime >= start_time_rotsirotsy1) and (mytime = start_time_rotsirotsy2) and (mytime = start_time_rotsirotsy3) and (mytime <= end_time_rotsirotsy3) Then
    begin
    cat['rotsirotsy3'].QueueBottom(smLemmingLogic,EnforceRules);
    PAL.WaitForQueue(1);
    end;
    end;

    Puis, j'ai attendu les 15 minutes après je n'ai rien obtenu de satisfaisant. Le script s'active mais les musiques dans ces catégories ne sont pas diffusées.

    J'utilise en parallèle le script des jingles :

    PAL.Loop := True;

    CAT['Tracks'].QueueBottom(smLemmingLogic,EnforceRules);
    CAT['Rock'].QueueBottom(smLRP,EnforceRules);
    CAT['Blues'].QueueBottom(smLRP,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 < 3;

    Je ne sais pas s'il y a un rapport.

    Un coup de pouce de ta part serait la bienvenue.
    Merci d'avance

  2. Avatar

    bonjour

    je voudrais utiliser ce script mais pour une fonctione journaliere , tous les jours a la meme heure programmé une playlist special

    je dois modifier quoi exactement

    cdt

  3. Avatar

    bonjour,

    Merci pour le script pal: Apres 5 chansons un jingle. Pour mon cas la 5e chanson n’est jamais jouée, elle commence elle fait fadeout pour laisser place au jingle. Je perds donc toujours une musique. Merci pour votre aide.

    • Avatar

      Bonjour j’ai eu le même problème. Essaies ce code :

        PAL.Loop := True;
        
        PAL.WaitForPlayCount(5); 
        CAT['jingle'].QueueTop(smLRP, NoRules);

      avec “jingle” c’est le nom d’une catégorie dans le dossier playlist par exemple.

      J’espère que ça puisse t’aider.

  4. Avatar

    HELP Matt, j’suis dans la m… totale, je suis scrupuleusement ton script et je ne comprend pas pourquoi lorsque je lance le Scrpit file il programme que la 1ère chanson et ensuite c fini il programme plus la suite. Lorsque j’édit le script il me surligne la 1ère phrase que que g mise en gras et en même temps il est écrit dans le pal script : “waiting for queue to reach 1 item”.
    Peut tu m’aider s’il te plait. Merci

    
    {*************************************************************
    Définition des VARIABLES.
    **************************************************************}
    PAL.Loop := TRUE;
    var mytime : DateTime = now;
    var D: INTEGER;
    
    var start_time_Club, end_time_Club: DateTime;
    var start_time_VipFunkClassic, end_time_VipFunkClassic : DateTime;
    var start_time_ClubBis, end_time_ClubBis : 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_Club := DATE + EncodeTime(22,03,00,0);
    end_time_Club := DATE + EncodeTime(22,10,00,0);
    
    start_time_VipFunkClassic := DATE + EncodeTime(22,12,00,0);
    end_time_VipFunkClassic := DATE + EncodeTime(22,22,00,0);
    
    start_time_ClubBis := DATE + EncodeTime(22,35,00,0);
    end_time_ClubBis := DATE + EncodeTime(22,50,00,0);
    
    {*************************************************************
    Le script est lancé le Samedi et obéit aux règles catégories/heures.
    **************************************************************}
    IF DayOfWeek(Now) = Saturday THEN
    BEGIN
          IF( mytime >= start_time_Club) AND (mytime = start_time_VipFunkClassic) AND (mytime <= end_time_VipFunkClassic) THEN
             BEGIN
                cat['Vip Funk Classic'].QueueBottom(smLemmingLogic,EnforceRules);
                PAL.WaitForQueue(1);
             END;
          IF( mytime >= start_time_ClubBis) AND (mytime <= end_time_ClubBis) THEN
             BEGIN
                cat['Club 90'].QueueBottom(smLemmingLogic,EnforceRules);
                PAL.WaitForQueue(1);
             END;
    END;
    
  5. Avatar

    Salut Matt,
    J’ai laissé la radio toute la nuit tournée et j’ai eu la surprise que ça c’état arrêté ce matin et en fait, mon erreur a été de ne pas avoir mi assez d’artiste différents dans mes playlists et d’avoir mi surtout l’attribut EnForceRules
    Voilà…
    Un grand merci pour ton aide!

  6. Avatar

    Ouhla,
    Oui, j’ai copié coller un truc un peu bizarre…
    Bon j’ai repris ton script et à l’heure où j’te parle, ça tourne et la file d’attente se remplie mais 2 titre maximum… donc, ça semble normal pour le moment.
    J’vais laisser tourné ça cette nuit et on verra demain à 08H si ça joue enocre et surtout si ça change de catégorie…
    Merci pour ton aide!

  7. Matt

    Salut Etann86,

    C’est ) la fin de ton script que ça coince – tu as mis :

    IF( mytime >= DebutSmoothJazz) AND (mytime = DebutDivers) AND (mytime = DebutLatine) AND (mytime = DebutZouk) AND (mytime <= FinZouk) Then
             begin
                Cat['Zouk'].QueueBottom(smLRP,EnforceRules);
                PAL.WaitForQueue(1);
             end;

    La première ligne fait que le script ne peut se lancer : il faut que l'heure soit supérieure à DebutSmoothJazz, égale à DebutDivers/DebutLatine/Debut Zouk et inférieure à FinZouk. Impossible !

    Il aurait fallu mettre :

    IF( mytime >= DebutSmoothJazz) AND (mytime <= FinSmoothJazz) Then
             begin
                cat['SmoothJazz'].QueueBottom(smLemmingLogic,EnforceRules);
                PAL.WaitForQueue(1);
             end;
          IF( mytime >= DebutDivers) AND (mytime <= FinDivers) Then
             begin
                cat['Divers'].QueueBottom(smLemmingLogic,EnforceRules);
                PAL.WaitForQueue(1);
             end;
          IF( mytime >= DebutLatine) AND (mytime <= FinLatine) Then
             begin
                cat['Latine'].QueueBottom(smLemmingLogic,EnforceRules);
                PAL.WaitForQueue(1);
             end;

    Pour les jingles : Script PAL pour SAM Broadcaster : diffuser une publicité ou un jingle toutes les 5 chansons
    et pour les bips horaires : Script PAL pour SAM Broadcaster : jouer un bip horaire

    A+

  8. Avatar

    Salut Matt,
    Merci pour ta réponse.
    Ce que tu proposes à l’air plus simple.
    Mais, j’aurai bien aimé savoir pourquoi ça ne fonctionne pas.
    Et puis, si je veux intégrer des jingles, des bips horaires?
    J’attendrai ta rentrée de vacances pour en savoir plus !
    En attendant, les playlist m3u seront une roue de secours!

  9. Matt

    Salut tout le monde,

    @neteyes, @RMS et @Etann86 : le script est un peu complexe et je pense qu’on peut arriver au même résultat comme ceci :

    – solution 1 : classer les chansons dans une catégorie. Sauver cette catégorie en playlist (.m3u). Utiliser l’Event Scheduler pour charger cette playlist à l’heure désirée.

    – solution 2 : classer les chansons par catégories. Planifier une clockwheel pour piocher dans cette catégorie à l’heure de vos programmes. Planifier votre clockwheel habituelle pour le reste du temps.

    Je suis en vacances et je n’ai pas SAM sur cet ordinateur mais cela devrait fonctionner et être plus simple à mettre à jour. J’écrirai un article à ce sujet lorsque je testerai tout ça.

  10. Avatar

    Salut Matt,
    Et bien ça fait déjà plus de 2 semaines que j’me bas avec Sam…
    J’ai l’impression que le script ne s’excute pas.
    Voici mon script, enfin le tien que j’ai adapté!

    PAL.Loop := True;
    var mytime : DateTime = now;
    var D: Integer;
     var DebutSmoothJazz, FinSmoothJazz : DateTime;
    var DebutZouk, FinZouk : DateTime;
    var DebutLatine, FinLatine : DateTime;
     var DebutDivers, FinDivers : DateTime;
    DebutSmoothJazz := date + EncodeTime(00,00,00,0);
    FinSmoothJazz := date + EncodeTime(08,00,00,0);
     DebutDivers := date + EncodeTime(08,00,00,0);
    FinDivers := date + EncodeTime(13,00,00,0);
     DebutLatine := date + EncodeTime(13,00,00,0);
    FinLatine := date + EncodeTime(18,00,00,0);
    DebutZouk := date + EncodeTime(18,00,00,0);
    FinZouk := date + EncodeTime(00,00,00,0);
    
          IF( mytime >= DebutSmoothJazz) AND (mytime = DebutDivers) AND (mytime = DebutLatine) AND (mytime = DebutZouk) AND (mytime <= FinZouk) Then
             begin
                Cat['Zouk'].QueueBottom(smLRP,EnforceRules);
                PAL.WaitForQueue(1);
             end;
    

    J'ai donc 4 Dossiers SmoothJazz, Latine, Divers, Zouk, dan sle dossiers PlayList
    Et le script ne fonctionne pas sniffffffff!
    J'espère que tu pourras m'aider!

    Euh, la file d'attente se remplit très aléatoirement. Parfois ça va fonctionner sur 2 morceaux et puis hope, ça va s'arrêter!
    Merki à toi!

  11. Avatar

    Bonjour, moi j’a essayé dans tout les sens, ma playlist ne s’introduit pas dans la liste de queue :/
    Help me please

    {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_other, end_time_other : DateTime;
    {*************************************************************
    Heure de départ
    **************************************************************}
    start_time_other := date + EncodeTime(13,58,30,0);
    end_time_other := date + EncodeTime(13,59,45,0);
    {*************************************************************
    Le script est lancé le mardi et obéit aux règles catégories/heures.
    **************************************************************}
    IF DayOfWeek(Now) = Tuesday then
    begin
          IF( mytime >= start_time_other) AND (mytime <= end_time_other) Then
             begin
                CAT['Other'].QueueTop(smLemmingLogic, NoRules);
                 PAL.WaitForQueue(1);
             end;
  12. Avatar
    {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);

    et si j’utilisais le script “style de musique par créneau horaire”
    et le script “Un jingle toutes les 5 chansons”

    c’est jouable ca??? lool

    je vous tiens au courant des que j’ai fait les tests ;)

  13. Avatar
    var start_time_zic-cool, end_time_zic-cool : DateTime;
    var start_time_clubbing, end_time_clubbing : DateTime;

    je viens de corigé ca, desolé je suis allé trop vite lool

    merci encore

  14. Avatar
    {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_instrumental, end_time_instrumental : DateTime;
    var start_time_contemporary, end_time_contemporary : 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_zic-cool := date + EncodeTime(05,01,00,0);
    end_time_zic-cool := date + EncodeTime(11,59,59,0);
    
    start_time_clubbing := date + EncodeTime(12,01,00,0);
    end_time_clubbing := date + EncodeTime(04,59,59,0);
    
    
    
    {*************************************************************
    Le script est lancé le Samedi et obéit aux règles catégories/heures.
    **************************************************************}
    IF DayOfWeek(Now) = Saturday then
    begin
          IF( mytime >= start_time_zic-cool) AND (mytime = start_time_clubbing) AND (mytime <= end_time_clubbing) Then
             begin
                cat['clubbing'].QueueBottom(smLemmingLogic,EnforceRules);
                PAL.WaitForQueue(1);
             end;
    end;
    

    ca c’est ton script que j’ai modifié et j’ai creer dans sam les cat=zic-cool et cat=clubbing

    je ne vois pas comment je peux mixé les deux pour arrivé a faire se que je veux.

    merci de ton aide matt

  15. Matt

    Salut Ludovic,

    Je n’ai pas de problèmes de compilation sur ce script.

    var D : Integer; est une définition de variable. Rien à voir avec la lettre du disque dur. As-tu essayé de ne pas changer le script mais d’utiliser les mêmes noms de catégories ?

  16. Avatar

    Bonjour,

    J’ai essayé mais ça me met toujours compiler errors

    {PAL script : style de musique par créneau horaire par Matt - www.skyminds.net}
           
           {QUELQUES INFOS DU SYSTEME -
           Un script PAL un peu plus complexe cette fois qui concernera surtout les
           webradios qui ont des émissions bien déterminées, à heure fixe, avec un
           créneau horaire bien déterminé.
           Les fichiers de chaque style de musique doivent être classés dans les
           différentes catégories de SAM (fenêtre Playlist > Catégories) : il suffit
           de créer différents dossiers (instrumental, contemporary et sabbath dans
           l'exemple suivant) et de placer les fichiers dans ces différents dossiers.}
    
          {*************************************************************
    
          Définition des variables.
    
          **************************************************************}
    
          PAL.Loop := True ;
    
          var mytime : DateTime = now ;
    
          var D : Integer ;
    
           
    
          var start_time_Mix, end_time_Mix : DateTime ;
    
          var start_time_RadioMP3, end_time_RadioMP3 : DateTime ;
    
          var start_time_sabbath, end_time_sabbath : 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_Mix := date + EncodeTime(01,05,00,0) ;
    
          end_time_Mix := date + EncodeTime(03,00,00,0) ;
    
           
    
          start_time_RadioMP3 := date + EncodeTime(03,05,00,0) ;
    
          end_time_RadioMP3 := date + EncodeTime(17,45,00,0) ;
    
           
    
          start_time_sabbath := date + EncodeTime(17,46,00,0) ;
    
          end_time_sabbath := date + EncodeTime(20,45,00,0) ;
    
           
    
          {*************************************************************
    
          Le script est lancé le Samedi et obéit aux règles catégories/heures.
    
          **************************************************************}
    
          if DayOfWeek(Now) = Wednesday then
    
          begin
    
                if( mytime>= start_time_Mix) and (mytime = start_time_RadioMP3) and (mytime = start_time_sabbath) and (mytime <= end_time_sabbath) Then
    
                   begin
    
                      cat['sabbath'].QueueBottom(smLemmingLogic,EnforceRules) ;
    
                      PAL.WaitForQueue(1) ;
    
                   end ;
    
          end ;
    

    Donc un dossier dans playlist qui est sous le nom Mix, RadioMP3 et un sous sabbath.

    Le fichier pal est demandé de se lancé le mercredi chose que j’ai testé 10 minutes avant pour voir si cela execute, et j’ai toujours le message d’erreur.

    En haut du fichier pal ceci (var D : Integer ;) veut il dire qu’il va chercher dans D:( disque dur ) ou c’est comme ça ?

    Pose cette question car je debute dans la chose et que j’y connais pas grand chose et bien dommage qu’il y a pas plus de fichier pal proposé et bien utile.

    Merci d’avance pour vos futurs réponses.
    Amicalement

Écrire un commentaire

Spelling error report

The following text will be sent to our editors: