SAM Broadcaster peut créer une playlist automatique sans que vous passiez votre journée devant la queue. Encore faut-il lui donner des règles claires.
Le principe est simple : vous rangez vos morceaux dans des catégories, vous configurez les règles de rotation, puis vous utilisez un script PAL pour alimenter automatiquement la file d’attente. Résultat : une programmation plus variée, moins de répétitions, et une radio qui ne donne pas l’impression de tourner sur trois MP3 fatigués.
Le problème : une playlist automatique trop répétitive
Quand SAM Broadcaster pioche simplement des morceaux au hasard, la programmation peut vite devenir bizarre. Le même artiste revient trop souvent. Deux morceaux du même album s’enchaînent. Un jingle repasse trois fois dans l’heure. Bref, l’algorithme fait de son mieux, mais il a besoin d’un programmateur adulte dans la pièce.
Pour éviter cela, SAM Broadcaster propose deux briques importantes :
- les catégories, qui organisent votre bibliothèque musicale ;
- les règles de rotation, qui limitent les répétitions d’artistes, d’albums, de titres et de morceaux.
Le script PAL vient ensuite orchestrer tout cela en ajoutant automatiquement les bons éléments dans la queue.
Préparer les catégories dans SAM Broadcaster
Avant d’écrire le moindre script, commencez par ranger votre bibliothèque. Dans SAM Broadcaster, ouvrez la fenêtre Playlist, puis créez des catégories cohérentes.
Exemple simple :
Trackspour le fonds musical principal ;Rockpour les titres rock ;Bluespour les titres blues ;Station IDs (All)pour les identifiants antenne ;Jinglespour les jingles courts ;Promospour les annonces ou autopromos.
Le nom exact des catégories compte. Si le script appelle CAT['Rock'], SAM doit réellement trouver une catégorie nommée Rock. Une majuscule oubliée, un espace en trop, et le script partira cueillir des fraises.
Ajoutez ensuite vos fichiers dans les bonnes catégories depuis la fenêtre Playlist. Vous pouvez importer les morceaux depuis l’explorateur Windows, depuis la queue, ou depuis d’autres catégories existantes.
Configurer les règles de rotation
Ouvrez ensuite :
Config > Playlist rotation rules
Dans cette fenêtre, configurez les règles anti-répétition. SAM Broadcaster peut éviter de rejouer trop vite :
- le même album ;
- le même artiste ;
- le même titre ;
- le même morceau exact.
Pour une petite webradio, vous pouvez commencer avec des valeurs raisonnables, puis ajuster selon la taille de votre bibliothèque.
Marre des agences qui sous-traitent ?
Avec moi, vous parlez directement au développeur qui fait le travail. Pas d'intermédiaire, pas de promesses creuses. Juste du code propre et un interlocuteur joignable.
Travaillons directement ensemble →| Règle | Valeur de départ possible | Pourquoi |
|---|---|---|
| Même artiste | 60 à 120 minutes | Évite d’entendre le même artiste trop souvent. |
| Même album | 60 à 180 minutes | Évite l’effet “album joué en bloc”. |
| Même titre | 180 à 360 minutes | Évite les titres identiques ou reprises trop rapprochées. |
| Même morceau | 360 minutes ou plus | Évite la répétition exacte d’un fichier. |
Ces valeurs ne sont pas universelles. Si votre bibliothèque contient 150 titres, n’imposez pas des règles prévues pour 30 000 morceaux. SAM ne pourra pas toujours trouver un titre compatible.
Spacial rappelle justement que les règles doivent correspondre à la taille réelle de votre bibliothèque. Si vous définissez des séparations trop longues avec trop peu de titres, SAM Broadcaster risque de ne plus trouver de morceau valide.
Comprendre les méthodes de sélection
Dans un script PAL, chaque appel à une catégorie peut utiliser une méthode de sélection. Les plus utiles ici sont :
| Méthode | Rôle | Usage recommandé |
|---|---|---|
smRandom | Choisit un élément au hasard. | Jingles, Station IDs, petites catégories. |
smLRP | Choisit l’élément le moins récemment joué. | Catégories musicales équilibrées. |
smLemmingLogic | Utilise la logique interne de rotation de SAM. | Catégorie musicale principale. |
La méthode smLRP, pour Least Recently Played, est très pratique pour éviter de rejouer toujours les mêmes fichiers. Spacial indique que smRandom sélectionne un titre aléatoire, tandis que smLRP choisit le titre qui n’a pas été joué depuis le plus longtemps.
EnforceRules ou NoRules ?
Chaque ajout dans la queue peut respecter ou ignorer les règles de rotation.
| Option | Effet | Quand l’utiliser |
|---|---|---|
EnforceRules | Respecte les règles anti-répétition. | Pour les morceaux musicaux. |
NoRules | Ignore les règles anti-répétition. | Pour les jingles, IDs, promos courtes. |
En général, utilisez EnforceRules pour la musique. Cela évite de rejouer trop vite le même artiste, le même album ou le même titre.
Pour les jingles et les identifiants antenne, NoRules peut être nécessaire, surtout si la catégorie contient peu de fichiers. Spacial précise que, lorsqu’une catégorie contient peu d’éléments, désactiver les règles de séparation peut éviter que SAM refuse de sélectionner un Station ID.
Cependant, n’abusez pas de NoRules. Un jingle répété toutes les cinq minutes lasse vite les auditeurs. Pour les contenus courts, combinez plutôt NoRules avec smLRP afin de faire tourner les fichiers disponibles proprement.
Script PAL simple pour créer une playlist variée
Voici une version modernisée du script original. Elle ajoute plusieurs catégories dans la queue, puis attend que la file redescende sous trois éléments avant de recommencer.
{ PAL script : playlist variée par rotation automatique }
{ Source : SkyMinds.net }
PAL.Loop := True;
while True do
begin
{ Musique principale }
CAT['Tracks'].QueueBottom(smLemmingLogic, EnforceRules);
{ Variantes musicales }
CAT['Rock'].QueueBottom(smLRP, EnforceRules);
CAT['Blues'].QueueBottom(smLRP, EnforceRules);
{ Identifiant antenne }
CAT['Station IDs (All)'].QueueBottom(smLRP, NoRules);
{ Attendre que la queue se vide un peu avant de la réalimenter }
repeat
PAL.WaitForPlayCount(1);
until Queue.Count < 3;
end;Langage du code : PHP (php)
Ce script construit une rotation simple :
- un titre depuis
Tracks; - un titre depuis
Rock; - un titre depuis
Blues; - un identifiant antenne depuis
Station IDs (All).
Ensuite, il laisse SAM Broadcaster jouer les titres. Dès que la queue contient moins de trois éléments, il ajoute une nouvelle séquence.
Pourquoi attendre que la queue redescende ?
Il ne faut pas remplir la queue avec 200 titres d’avance. Cela fige trop longtemps la programmation. Si vous modifiez vos catégories, vos règles ou votre horloge, la queue reste pleine d’anciens choix.
La ligne suivante garde la file sous contrôle :
until Queue.Count < 3;Langage du code : CSS (css)
Vous pouvez ajuster cette valeur. Par exemple :
Queue.Count < 2pour une queue très courte ;Queue.Count < 3pour un bon équilibre ;Queue.Count < 5si vous voulez toujours plusieurs titres prêts.
Pour une station automatisée, trois titres d’avance restent souvent suffisants. Cela garde un peu de marge sans transformer la queue en congélateur musical.
Variante : quatre titres puis un Station ID
Si vous voulez une rotation plus classique, vous pouvez jouer quatre titres musicaux, puis un identifiant antenne. Spacial donne d’ailleurs ce type d’exemple dans sa documentation sur la rotation Clockwheel.
{ PAL script : 4 titres puis 1 Station ID }
PAL.Loop := True;
while True do
begin
CAT['Tracks'].QueueBottom(smLRP, EnforceRules);
CAT['Rock'].QueueBottom(smLRP, EnforceRules);
CAT['Tracks'].QueueBottom(smLRP, EnforceRules);
CAT['Blues'].QueueBottom(smLRP, EnforceRules);
CAT['Station IDs (All)'].QueueBottom(smLRP, NoRules);
repeat
PAL.WaitForPlayCount(1);
until Queue.Count < 3;
end;Langage du code : PHP (php)
Cette structure est simple à lire et facile à modifier. Pour ajouter une catégorie Pop, il suffit d’ajouter une ligne :
CAT['Pop'].QueueBottom(smLRP, EnforceRules);Langage du code : CSS (css)
Variante : rotation pondérée par style
Si votre radio diffuse surtout un style principal, vous pouvez le faire revenir plus souvent dans la rotation.
{ PAL script : rotation pondérée par style }
PAL.Loop := True;
while True do
begin
CAT['Tracks'].QueueBottom(smLemmingLogic, EnforceRules);
CAT['Rock'].QueueBottom(smLRP, EnforceRules);
CAT['Tracks'].QueueBottom(smLemmingLogic, EnforceRules);
CAT['Blues'].QueueBottom(smLRP, EnforceRules);
CAT['Tracks'].QueueBottom(smLemmingLogic, EnforceRules);
CAT['Station IDs (All)'].QueueBottom(smLRP, NoRules);
repeat
PAL.WaitForPlayCount(1);
until Queue.Count < 3;
end;Langage du code : PHP (php)
Ici, la catégorie Tracks revient trois fois. Les catégories Rock et Blues servent à varier la couleur musicale sans prendre toute l’antenne.
Variante : rotation sans jingle
Si vous voulez uniquement une playlist musicale, sans identifiant antenne, retirez simplement la ligne qui ajoute Station IDs (All).
{ PAL script : rotation musicale simple }
PAL.Loop := True;
while True do
begin
CAT['Tracks'].QueueBottom(smLemmingLogic, EnforceRules);
CAT['Rock'].QueueBottom(smLRP, EnforceRules);
CAT['Blues'].QueueBottom(smLRP, EnforceRules);
CAT['Pop'].QueueBottom(smLRP, EnforceRules);
repeat
PAL.WaitForPlayCount(1);
until Queue.Count < 3;
end;Langage du code : PHP (php)
C’est la meilleure base si vous voulez traiter les jingles dans un autre script dédié. Cela évite de mélanger la logique musicale avec les contraintes antenne.
Lancer le script PAL dans SAM Broadcaster
Pour utiliser le script :
- ouvrez SAM Broadcaster ;
- affichez la fenêtre PAL Scripts ;
- créez un nouveau script ;
- collez le code PAL ;
- vérifiez que les catégories appelées existent ;
- compilez le script ;
- lancez-le ;
- surveillez la queue pendant quelques minutes.
Si SAM affiche une erreur de compilation, vérifiez d’abord les apostrophes, les points-virgules et les noms de catégories. La plupart des erreurs viennent d’un nom de catégorie incorrect ou d’un caractère copié/collé de travers.
Vérifier que la rotation fonctionne correctement
Après le lancement, contrôlez trois choses :
- la queue se remplit automatiquement ;
- les catégories alternent comme prévu ;
- les artistes ne se répètent pas trop vite.
Ensuite, ouvrez l’historique de lecture et observez une heure complète de programmation. C’est le test le plus simple. Une rotation peut sembler parfaite sur le papier, puis devenir monotone au bout de trente minutes.
Dépannage : le script ne joue pas les bons titres
Si le script tourne mais ne joue pas les morceaux attendus, vérifiez ces points dans l’ordre :
- les catégories existent exactement avec les mêmes noms ;
- les catégories contiennent bien des fichiers actifs ;
- les morceaux ne sont pas désactivés ou indisponibles ;
- les métadonnées
Artist,TitleetAlbumsont renseignées ; - les règles de rotation ne sont pas trop strictes ;
- la bibliothèque contient assez de titres pour respecter les séparations ;
- la queue n’est pas déjà remplie par une autre logique ou un autre script.
Si SAM ne trouve plus de titre compatible, assouplissez temporairement les règles de rotation. Ensuite, augmentez-les progressivement jusqu’à trouver le bon équilibre.
Dépannage : les Station IDs ne passent jamais
Si vos identifiants antenne ne passent jamais, la catégorie contient peut-être trop peu de fichiers pour respecter les règles de séparation.
Dans ce cas, utilisez :
CAT['Station IDs (All)'].QueueBottom(smLRP, NoRules);Langage du code : CSS (css)
La méthode smLRP évite de rejouer toujours le même fichier, tandis que NoRules empêche les règles musicales de bloquer toute la catégorie.
Dépannage : le même artiste revient trop souvent
Dans ce cas, le script n’est pas forcément le problème. Regardez plutôt les règles dans Config > Playlist rotation rules.
Augmentez progressivement la séparation du même artiste. Puis vérifiez que vos tags sont propres. Si certains fichiers ont Beatles, d’autres The Beatles, et d’autres beatles, SAM ne pourra pas appliquer les règles aussi proprement que prévu.
Avant d’accuser le logiciel, nettoyez donc les métadonnées. C’est moins spectaculaire, mais beaucoup plus efficace.
Bonnes pratiques pour une rotation propre
- Gardez des catégories simples et lisibles.
- Évitez les catégories avec seulement deux ou trois titres musicaux.
- Renseignez correctement les champs artiste, titre et album.
- Utilisez
EnforceRulespour la musique. - Utilisez
NoRulesseulement pour les contenus courts. - Ne remplissez pas la queue trop longtemps à l’avance.
- Testez la rotation sur une heure réelle avant de la laisser tourner seule.
- Sauvegardez vos scripts PAL après chaque modification stable.
Rotation automatique ou Clockwheel natif ?
SAM Broadcaster propose déjà une logique de rotation Clockwheel dans l’interface. Pour beaucoup de radios, elle suffit. Vous pouvez créer une séquence de catégories directement depuis Playlist rotation rules, puis laisser SAM alimenter la queue.
Le script PAL devient intéressant quand vous voulez garder la main sur la structure, documenter votre rotation dans un fichier, ou combiner cette logique avec d’autres scripts.
En clair : utilisez le Clockwheel natif pour une programmation simple. Utilisez PAL quand vous voulez une automatisation plus précise et plus facile à versionner.
Articles connexes sur SAM Broadcaster
Pour aller plus loin sans mélanger les sujets, voici les guides complémentaires :
- SAM Broadcaster : création de scripts PAL
- SAM Broadcaster : jouer un style de musique donné pendant un créneau horaire
- SAM Broadcaster : jouer une pub ou un jingle toutes les 5 chansons
- SAM Broadcaster : jouer un bip horaire avec un script PAL
- Plugin Last.fm pour SAM Broadcaster sous Ubuntu
FAQ
Comment créer une playlist variée dans SAM Broadcaster ?
Créez d’abord des catégories musicales propres, configurez les règles de rotation dans Config > Playlist rotation rules, puis utilisez un script PAL pour ajouter automatiquement les catégories dans la queue.
Pourquoi SAM Broadcaster répète-t-il trop souvent le même artiste ?
Les règles de séparation sont peut-être trop faibles, vos métadonnées sont peut-être incohérentes, ou votre bibliothèque ne contient pas assez de titres. Vérifiez surtout les champs artiste, titre et album.
Quelle différence entre smRandom et smLRP ?
smRandom choisit un fichier au hasard. smLRP choisit le fichier qui n’a pas été joué depuis le plus longtemps. Pour une rotation équilibrée, smLRP donne souvent un meilleur résultat.
Quand utiliser NoRules dans un script PAL ?
Utilisez NoRules pour les contenus courts comme les Station IDs, les jingles ou les promos, surtout si la catégorie contient peu de fichiers. Pour la musique, préférez EnforceRules.
Faut-il utiliser PAL ou le Clockwheel natif de SAM Broadcaster ?
Le Clockwheel natif suffit pour une rotation simple. PAL devient plus utile si vous voulez documenter précisément la rotation, combiner plusieurs comportements, ou intégrer cette logique dans une automatisation plus large.
Sources
- Spacial — Introduction to Clockwheel Rotation
- Spacial — Clockwheel Rotation
- Spacial — Organizing and Scheduling Music
- Spacial — PAL Scripting Quick Start Guide
Besoin d'un coup de main ?
Ce bug qui traîne depuis des semaines, ce plugin qui casse votre mise en page, cette fonctionnalité que personne n'arrive à implémenter proprement — c'est exactement ce que je règle au quotidien depuis 20 ans.
Parlons de votre problème →


je nis arrive pas il me lit que un son comment sa ce fait ?
Maniant ce logiciel depuis plus d’un an, j’informe quand même que la rotation rules est bien qu’à une seule condition : avoir une très grosse playlist.
Aussi, cette méthode n’est pas forcément la meilleure vu qu’il éxiste dans la fenêtre screenée un module vers le bas qui contient le module Configure.
Dans ce module se trouve une interface de scripting où l’on met juste ces lignes :
CAT[‘Tracks’].QueueBottom(smLemmingLogic,EnforceRules);
CAT[‘Rock’].QueueBottom(smLRP,EnforceRules);
CAT[‘Blues’].QueueBottom(smLRP,EnforceRules);
CAT[‘Station IDs (All)’].QueueBottom(smLRP,NoRules);
Revenez dans la fenêtre de config et mettez l’option « Keep X songs in the queue » et mettez-y 10.
Appliquez, faites File > Save configuration (très important pour sauver dans la core de SAM pour être sûr de garder les paramètres au prochain démarrage).
Et là, comme par magie SAM se débrouillera pour qu’il y ai toujours 10 éléments dans la queue. Lorsqu’un élément ou plus sont enlevés, il recomplète de telle sorte à ce que la queue fasse 10 éléments ;)
Vous pouvez évidemment placer vos propres musiques manuellement en tête de queue. S’il y en a plus que 10 il ne supprimera rien ;)
Tchaw
@adrien : vérifie tes règles de rotation.
@Kermi : merci pour la méthode alternative !
Pour Adrien
Il faut que Sam soit en AutoDJ….si t’es en Play queue..il n’en lis qu’un..
salut tout le monde
Voila j ai beau essayer et rien a faire ca veut pas lire ou alors ca me fait une erreur.
que faire.
Merci
Pour la soluce de kermi je comprend vraiment pas
Salut,
@Kitchen-Resources : merci, j’ai oublié de mentionner qu’il fallait être en mode AutoDJ.
@Sebbabas : est-ce que tu as respecté les pré-requis du tuto ? SAM est bien en AutoDJ ?
Il me semble rien avoir oublié
Voila l erreur qu il me fait en auto DJ
Merci
@Sebbabas : selon tes réglages de playlist, il faut avoir pas mal de chansons dans ta playlist. Par exemple, si tu as mis qu’il ne faut pas jouer le même artiste ou le même album pendant 30 minutes, il faut avoir quelques albums/artistes différents dans ta playlist. Autrement, un titre sera joué seulement (et le reste 30 minutes après).
Super j ai mis environ 500 titres et la ca tourne
Merci Beaucoup.
@Sebbabas : je t’en prie :)
Merci Matt pour tes conseil il me sont très utile tu as une adresse mail ou msn pour te contacter ?
Salut Alexandre,
Tu peux me contacter depuis la page contact.
Salut,
Je veux que SAM Broadcaster lise en boucle mes différentes playlists dans l’ordre mais pas les musiques dans ces dossiers de playlists, je suis un peu paumé, j’ai besoin d’un script PAL ou il y a déjà une fonctionnalité dans le logiciel ? Est-ce que c’est tout bêtement ce qu’offre le script dans l’article ?
Bonjour,
Désolé pour le retard, je n’avais pas vu votre commentaire.
Il faut utiliser :
bonsoir pourriez vous me donné des renseignement sur sambroadcaster voici mon un message d’erreur voici se qui me dit warning clockwel rotation failed to pick track from la catégory please check separation rules or add more tracks merci
Bonjour,
Il faut que le nom de vos catégories soient les mêmes que dans le script (ou alors modifier le script avec le nom de vos propres catégories).
pourtant j’ai la programmation débute a 16 heures jusqu’à 21 heures en arrivant a 20 heures cet là qui ma mis se message d’erreur et cet la seul catégory qui me le fait avez-vous teamviewer9
Salut,
Je pense qu’il faut que tu vérifies tes règles Clockwheel : elles sont peut-être trop restrictives et ne permettent pas d’ajouter suffisamment de morceaux. Du coup, au bout d’un moment, le script ne peut ajouter de nouveaux morceaux dans la liste.
Ps : non, je n’ai pas team viewer.
rebonjour je te remercie de ta réponse hier il a fonctionner impeccable j’ai ajouté des titres et sa fonctionner une deux autres question
la 1ere comment on peut mettre un lecteur sur le site web de la radio et la deuxième je voudrais intégrer un top horaire peut tu me donner des renseignement je te donne mon adresse E-MAIL cet christian.viano@sfr.fr mercis pour ton aide
salut et merci pour tes exemples et tutos
j’ai une question voila dans mon script je peux utiliser et ajouter une piste avec Queue.AddFile(‘C:tophoraire.mp3’,ipTop);
mais cela ne fonctionne pas avec Cat (je voulais dans ce scripts qu’il place une musics aléatoire dans la playlists COMBLAGE
voici le script pour mieux comprendre et il servira à d’autres en plus