Script PAL pour SAM Broadcaster : jouer un style de musique donné pendant un créneau horaire

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 !


14 commentaires à “Script PAL pour SAM Broadcaster : jouer un style de musique donné pendant un créneau horaire”

  1. Ludovic a écrit :
    1

    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 &gt; 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&gt;= start_time_Mix) and (mytime = start_time_RadioMP3) and (mytime = start_time_sabbath) and (mytime &lt;= 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

  2. Matt a écrit :
    2

    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 ?

  3. neteyes a écrit :
    3
    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
    
    {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 &gt;= start_time_zic-cool) AND (mytime = start_time_clubbing) AND (mytime &lt;= 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

  4. neteyes a écrit :
    4
    1
    2
    
    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

  5. neteyes a écrit :
    5
    1
    2
    3
    4
    5
    
    {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 ;)

  6. RMS a écrit :
    6

    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 &gt;= start_time_other) AND (mytime &lt;= end_time_other) Then
             begin
                CAT[&#039;Other&#039;].QueueTop(smLemmingLogic, NoRules);
                 PAL.WaitForQueue(1);
             end;
  7. Etann86 a écrit :
    7

    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 &gt;= DebutSmoothJazz) AND (mytime = DebutDivers) AND (mytime = DebutLatine) AND (mytime = DebutZouk) AND (mytime &lt;= FinZouk) Then
             begin
                Cat[&#039;Zouk&#039;].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 !

  8. Matt a écrit :
    8

    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.

  9. Etann86 a écrit :
    9

    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 !

  10. Matt a écrit :
    10

    Salut Etann86,

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

    1
    2
    3
    4
    5
    
    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 :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    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+

  11. Etann86 a écrit :
    11

    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 !

  12. Etann86 a écrit :
    12

    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 !

  13. Matt a écrit :
    13

    Salut Etann86,

    Je t’en prie, je suis content que cela fonctionne :)

  14. ThierryM a écrit :
    14

    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 ;

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.