351

Re: Скрипты PAL для Sam Broadcaster

пишет Станислав Дворецкий:

Помогите кто может Кто может помогите. Подскажите как реализовать  проблемку есть 4 плейлиста или папки  и из них по очереди проигрывать музыку такое возможно?

А в чем трудность?

Cat['Folder1'].QueueTop(smRandom, noRules);
PAL.WaitForPlayCount(1);
Cat['Folder2'].QueueTop(smRandom, noRules);
PAL.WaitForPlayCount(1);
Cat['Folder3'].QueueTop(smRandom, noRules);
PAL.WaitForPlayCount(1);
Cat['Folder4'].QueueTop(smRandom, noRules);
PAL.WaitForPlayCount(1);
и зациклил

------------------------
http://radio-electron.ru/img/logo_small.gif
http://radio-electron.ru/play

352

Re: Скрипты PAL для Sam Broadcaster

пишет Ok_go_love:

Всем привет.
Набыдлокодил вывод новостей на 15 и 45 минуте каждого часа с радиостанции Эхо Москвы.
Комментарии приветствуются, ибо постигаю дзен.
ps. В PAL вообще существуют функции? А то переписывать по сто раз одно и то же геморрой, проще же вызвать функцию с нужным аргументом.

PAL.Loop:=True;
PAL.WaitForTime('XX:15:00');
Queue.AddURL('http://radio.memonet.ru:501/current.mp3',ipTop);
ActivePlayer.FadeToNext;
PAL.WaitForTime('XX:45:00');
Queue.AddURL('здесь такая же ссылка, как и сверху, форум не дает вставить :)',ipTop);
ActivePlayer.FadeToNext;

Отличный скрипт, удачи в познании! БОМ!

353

Re: Скрипты PAL для Sam Broadcaster

Есть скрипт

var Song : TSongInfo;

PAL.Loop := True;
PAL.WaitForPlayCount(1);
CAT['JD'].QueueTop(smLemmingLogic, NoRules);

Он проигрывает джингл через 1 трек, но иногда бывает что джингл зацикливается т.е. играет раз 5-6.
Как можно этого избежать?

354

Re: Скрипты PAL для Sam Broadcaster

пишет Rocketdock:

Есть скрипт

var Song : TSongInfo;

PAL.Loop := True;
PAL.WaitForPlayCount(1);
CAT['JD'].QueueTop(smLemmingLogic, NoRules);

Он проигрывает джингл через 1 трек, но иногда бывает что джингл зацикливается т.е. играет раз 5-6.
Как можно этого избежать?

Мда всё понял косяк, поставил через 2 трека всё норм)

355

Re: Скрипты PAL для Sam Broadcaster

Есть ли пал скрипт останавливающий другие скрипты в определенные часы?

356

Re: Скрипты PAL для Sam Broadcaster

Скиньте плз код для реализации обновления трэков в категории из папки.
Есть папка D:/Music и категория All в SAM
Нужно по времени запустить импорт в категорию, но без повторов.
Спасибо

------------------------
http://radio-electron.ru/img/logo_small.gif
http://radio-electron.ru/play

357

Re: Скрипты PAL для Sam Broadcaster

пишет VladokZzz:

Скиньте плз код для реализации обновления трэков в категории из папки.
Есть папка D:/Music и категория All в SAM
Нужно по времени запустить импорт в категорию, но без повторов.
Спасибо

Задача поставлена криво

в сэме есть 2 типа категорий - "Playlist" и "Content"
так вот, вторая не подразумевает наличия дублей в принципе, если конечно вы импортируете одну и ту же папку.
если первая - то хз, вроде нет встроенного механизма удаления дублей из скрипта

юзайте поиск и встроенный хелп... там все есть... возможно это поможет:

Rescan method

Example

Applies to

TDirCategory class

Declaration

procedure Rescan;

Description

Rescan will scan the directory for songs and perform the following operations

1) Add any songs that is not currently listed in the songlist table.

2) Remove any songs in the songlist table that no longer physically exists in the database.

Rescan on large directories can be very CPU intensive, so we recommend splitting your music library into multiple directories and scanning each directory in turn.

The example script shows how you can rescan your computer for new files once a day at midnight.

PAL.Loop := True;

 

{## Wait for midnight }

PAL.WaitForTime('23:59:59');

 

{## Scan our promos directory }

DIR['c:\promos\'].Rescan;

 

{## Take a breather }

PAL.WaitForTime('+00:00:30');

 

{## Scan our main music directory }

{## Include all subdirectories }

SUBDIR['c:\music\'].Rescan; 

Отредактировано djnewborn (01-04-2014 16:40:42)

=Альтернатива всегда есть!=
=альтернативная интернет-радиостанция Экстрим=
= vk.com/alterfm =
= http://radioextreme.ru/listen.m3u =

358

Re: Скрипты PAL для Sam Broadcaster

пишет icevirtualaz:

Есть ли пал скрипт останавливающий другие скрипты в определенные часы?

проще в тело скрипта встроить проверку на время/задать loop =true/false, в общем способов масса

=Альтернатива всегда есть!=
=альтернативная интернет-радиостанция Экстрим=
= vk.com/alterfm =
= http://radioextreme.ru/listen.m3u =

359

Re: Скрипты PAL для Sam Broadcaster

пишет djnewborn:

пишет VladokZzz:

Скиньте плз код для реализации обновления трэков в категории из папки.
Есть папка D:/Music и категория All в SAM
Нужно по времени запустить импорт в категорию, но без повторов.
Спасибо

Задача поставлена криво

в сэме есть 2 типа категорий - "Playlist" и "Content"
так вот, вторая не подразумевает наличия дублей в принципе, если конечно вы импортируете одну и ту же папку.
если первая - то хз, вроде нет встроенного механизма удаления дублей из скрипта

PAL.Loop := True;

 

{## Wait for midnight }

PAL.WaitForTime('23:59:59');

 

{## Scan our promos directory }

DIR['c:\promos\'].Rescan;

 

{## Take a breather }

PAL.WaitForTime('+00:00:30');

 

{## Scan our main music directory }

{## Include all subdirectories }

SUBDIR['c:\music\'].Rescan; 

Приветствую. Кажется, я понял, что он хотел. Я сам именно с такой целью штудирую Радиоталк уже не первый день, а именно эту ветку с 1 страницы.
Хочется, чтоб СЭМ с периодичностью (К примеру раз в 30 минут) сканировал директорию D:/Music и если обнаруживал там новые треки(новые названия треков), то автоматически добавлял бы их в свою категорию Music (All). Ну и соответственно эти треки, с помощью настроенного Playlist Rotation Rules добавлялись в Queue. Но с добавлением в очередь проблем нет. Есть проблемы с автодобавлением треков СЭМОМ из директории в категорию.
PS. Немного дополнения: дело в том, что у меня вся-вся музыка в одной папке - D:/Music. И если ты добавляешь в эту папку к примеру песен 50, то надо вручную добавлять их в категорию Сэма Music (All), иначе он их просто не увидит. Я делаю это так: Выделил одник кликом Music (All), нажимаю на + , затем Add Files и пошёл их искать в куче треков...

360

Re: Скрипты PAL для Sam Broadcaster

пишет Drakkar:

Приветствую. Кажется, я понял, что он хотел. Я сам именно с такой целью штудирую Радиоталк уже не первый день, а именно эту ветку с 1 страницы.
Хочется, чтоб СЭМ с периодичностью (К примеру раз в 30 минут) сканировал директорию D:/Music и если обнаруживал там новые треки(новые названия треков), то автоматически добавлял бы их в свою категорию Music (All). Ну и соответственно эти треки, с помощью настроенного Playlist Rotation Rules добавлялись в Queue. Но с добавлением в очередь проблем нет. Есть проблемы с автодобавлением треков СЭМОМ из директории в категорию.

Не занимайтесь глупостями, на официальном форуме СЭМа этот вопрос уже сто раз разжеван - осталось только съесть.

Windows 2003 Server --> Digispot Djin --> CDDXP(TuneInSender) --> Edcast --> IceCast

361

Re: Скрипты PAL для Sam Broadcaster

ubuntu-studio, Спасибо, но я ни разу не был на их форуме и тем более не особо в английском. Можно ссылочку на решение ?

362

Re: Скрипты PAL для Sam Broadcaster

пишет Drakkar:

ubuntu-studio, Спасибо, но я ни разу не был на их форуме и тем более не особо в английском. Можно ссылочку на решение ?

По предыдущему вашему посту можно сделать вывод, что вы на правильном пути.

Добро пожаловать на форум СЭМа

Добро пожаловать на вики страницу с описанием команд и логики скриптов

Ветка форума которая, возможно, вам поможет

Статья на стороннем ресурсе о теме

Удачи вам.

Windows 2003 Server --> Digispot Djin --> CDDXP(TuneInSender) --> Edcast --> IceCast

363

Re: Скрипты PAL для Sam Broadcaster

спасибо за правильные сцылки!

PS. В статье на стороннем ресурсе о проблеме Сэма скрипт не совсем корректный

DIR['d:Music'].Rescan;

Он сканирует всю директорию и да, добавляет треки в категорию Music (All), но когда его запускаешь повторно, он опять всю папку добавляет в категорию, создавая дубли smile

Что касается ссылок на офф.форум сэма, то с переводчиком гугл штудирую.
Странно, что на нашем форуме нет решения данной проблемы.

Отредактировано Drakkar (10-04-2014 13:39:10)

364

Re: Скрипты PAL для Sam Broadcaster

Вот исправленный скрипт последних выпусков новостей.

PAL.Loop:=True;
PAL.WaitForTime('XX:15:00');
Queue.AddURL('http://realaudio.rferl.org/RU/news/news_RU.mp3',ipTop);
ActivePlayer.FadeToNext;
PAL.WaitForTime('XX:45:00');
Queue.AddURL('тут такаяже ссылка как сверух',ipTop);
ActivePlayer.FadeToNext;

365

Re: Скрипты PAL для Sam Broadcaster

Здравствуйте!
Необходим скрипт, который будет останавливать скрипт.
То есть, мне нужен script_1.PAL, который по своим функциям будет останавливать роботу зацикленного скрипта script_2.PAL
Настройки в Event-е не подходят.
Жду ответа, заранее огромное спасибо!

ZRadio.top - лучшие радиостанции мира.

366

Re: Скрипты PAL для Sam Broadcaster

пишет Drakkar:

пишет djnewborn:

пишет VladokZzz:

Скиньте плз код для реализации обновления трэков в категории из папки.
Есть папка D:/Music и категория All в SAM
Нужно по времени запустить импорт в категорию, но без повторов.
Спасибо

Задача поставлена криво

в сэме есть 2 типа категорий - "Playlist" и "Content"
так вот, вторая не подразумевает наличия дублей в принципе, если конечно вы импортируете одну и ту же папку.
если первая - то хз, вроде нет встроенного механизма удаления дублей из скрипта

PAL.Loop := True;

 

{## Wait for midnight }

PAL.WaitForTime('23:59:59');

 

{## Scan our promos directory }

DIR['c:\promos\'].Rescan;

 

{## Take a breather }

PAL.WaitForTime('+00:00:30');

 

{## Scan our main music directory }

{## Include all subdirectories }

SUBDIR['c:\music\'].Rescan; 

Приветствую. Кажется, я понял, что он хотел. Я сам именно с такой целью штудирую Радиоталк уже не первый день, а именно эту ветку с 1 страницы.
Хочется, чтоб СЭМ с периодичностью (К примеру раз в 30 минут) сканировал директорию D:/Music и если обнаруживал там новые треки(новые названия треков), то автоматически добавлял бы их в свою категорию Music (All). Ну и соответственно эти треки, с помощью настроенного Playlist Rotation Rules добавлялись в Queue. Но с добавлением в очередь проблем нет. Есть проблемы с автодобавлением треков СЭМОМ из директории в категорию.
PS. Немного дополнения: дело в том, что у меня вся-вся музыка в одной папке - D:/Music. И если ты добавляешь в эту папку к примеру песен 50, то надо вручную добавлять их в категорию Сэма Music (All), иначе он их просто не увидит. Я делаю это так: Выделил одник кликом Music (All), нажимаю на + , затем Add Files и пошёл их искать в куче треков...

Да именно это и имел ввиду, есть еще одно но, нужно исключить 1 папку Other, которая лежит в папке Music, что бы она не добавлялась. Как создать исключение по названию папки?

------------------------
http://radio-electron.ru/img/logo_small.gif
http://radio-electron.ru/play

367

Re: Скрипты PAL для Sam Broadcaster

Доброго времени суток! Подскажите, почему компилятор выдаёт ошибку? Хоть на строке Song := CAT['Open_jingles'].ChooseSong(smRandom,NoRules); хоть на строке Song := DIR['f:\Jingles_BadFM\15-30-45_jingles'].ChooseSong(smRandom,NoRules); - не так и не так не проходит. Спасибо.

PAL.Loop:=True;
PAL.WaitForTime('XX:00:00');
Song := CAT['Open_jingles'].ChooseSong(smRandom,NoRules);
ActivePlayer.FadeToNext;
PAL.WaitForTime('XX:15:00');
Song := DIR['f:\Jingles_BadFM\15-30-45_jingles'].ChooseSong(smRandom,NoRules);
Queue.Add(song,ipTop);
PAL.WaitForTime('XX:30:00');
Song := DIR['f:\Jingles_BadFM\15-30-45_jingles'].ChooseSong(smRandom,NoRules);
Queue.Add(song,ipTop);
PAL.WaitForTime('XX:45:00');
Song := DIR['f:\Jingles_BadFM\15-30-45_jingles'].ChooseSong(smRandom,NoRules);
Queue.Add(song,ipTop);

368

Re: Скрипты PAL для Sam Broadcaster

спс, понял уже сам

369

Re: Скрипты PAL для Sam Broadcaster

Добрый день! Нужен скрипт для выпуска джинглов следующего вида. В конце нового часа - почасовка (случайная из папки или категории)с прерыванием играющей песни. А каждые десять минут по коду скрипта закидывается вверх плейлиста случайный джингл (из папки или категории). Компилятор выдаёт ошибку в строке:
Queue.Add(Song,ipTop);
Подскажите, в чём проблема. Спасибо. 


var P: TPlayer;
var Song: TSongInfo;
var q: integer;
var Time: string;

//================================================================

PAL.Loop := True;
PAL.WaitForTime('XX:XX:40'); // запускаемся в конце каждой минуты
Time:= FormatDateTime('hh:nn', now+1/1440);
q:= 0;
repeat
q:= q+1;
Case Time of

//=================================== планировщик запуска файлов:

'XX:09': Song := CAT['Jingles_10m_20m_30m_40m_50m'].ChooseSong(smRandom,NoRules);
Queue.Add(Song,ipTop); //добавляем его в начало очереди
'XX:19': Song := CAT['Jingles_10m_20m_30m_40m_50m'].ChooseSong(smRandom,NoRules);
Queue.Add(Song,ipTop); //добавляем его в начало очереди
'XX:29': Song := CAT['Jingles_10m_20m_30m_40m_50m'].ChooseSong(smRandom,NoRules);
Queue.Add(Song,ipTop); //добавляем его в начало очереди
'XX:39': Song := CAT['Jingles_10m_20m_30m_40m_50m'].ChooseSong(smRandom,NoRules);
Queue.Add(Song,ipTop); //добавляем его в начало очереди
'XX:49': Song := CAT['Jingles_10m_20m_30m_40m_50m'].ChooseSong(smRandom,NoRules);
Queue.Add(Song,ipTop); //добавляем его в начало очереди
'XX:59': Song := CAT['Jingles_open_hour'].ChooseSong(smRandom,NoRules);
P := Aux1;
if P <> nil then
begin
Queue.Add(Song,ipTop);//добавляем его в начало очереди
P := ActivePlayer;
if P <> nil then
P.FadeToNext;//обрываем текущую песню
end;

370

Re: Скрипты PAL для Sam Broadcaster

Доброго времени суток! Подскажите, как зациклить этот скрипт, а то после выполнения останавливается. Спасибо!

Pal.WaitForTime(T['XX:59:55']);
CAT['Jingles_open'].QueueTop(smRandom,NoRules);
ActivePlayer.FadeToNext;

371

Re: Скрипты PAL для Sam Broadcaster

пишет BadFM Radio:

Подскажите, как зациклить этот скрипт, а то после выполнения останавливается. 

добавьте в конец строчку без ковычек:

"PAL.Loop := True;"

Windows 2003 Server --> Digispot Djin --> CDDXP(TuneInSender) --> Edcast --> IceCast

372

Re: Скрипты PAL для Sam Broadcaster

Здравствуйте, обыскал эту ветку-решения не нашел, если пропустил его направьте.
Нужно следующее: есть несколько групп треков, для каждой группы написал джингл-комментарий, необходим скрипт, который при обнаружении трека-триггера в топе списка будет :

1. ставить джингл-комментарий (в топ списка перед триггером), соответствующий группе, из которой этот трек( это, я так понимаю,самое простое решение)
или
2. включать в соседней дэке(либо SFX) со снижением громкости в ведущей дэке на время воспроизведения джингла(известно заранее).

Как я мыслю, в скрипте будет прописано сканирование топ композиции списка, затем проверка, типа, если в топе трек-триггер, то поставить в топ соответствующий джингл, или, если по пункту 2, в момент начала воспроизведения триггера, снижение уровня громкости деки, активация SFX, соответствующего триггеру.
Надеюсь описал задачу не сумбурно и понятно.
Если кого интересует причина необходимости такого выверта, объясню, дневной эфир ведется либо автоматом сервером (скучно и однообразно, разбавлено лишь рекламой), либо с моего компа,но человек, находящийся дома в мое отсутствие, способен лишь перезапустить работу машины и Сэма, вести эфир не умеет.
Не проблема прописать для каждого трека соответсвующий джингл, просто, не знаю как.
Подозреваю, что у моей проблемы может быть и более простое решение, за любую помощь буду благодарен.

Отредактировано Sterkh (13-07-2014 10:01:52)

373

Re: Скрипты PAL для Sam Broadcaster

Не проблема прописать для каждого трека соответсвующий джингл, просто, не знаю как.

ручками ручками .... )

Отредактировано VapSite (13-07-2014 13:59:51)

374

Re: Скрипты PAL для Sam Broadcaster

пишет VapSite:

Не проблема прописать для каждого трека соответсвующий джингл, просто, не знаю как.

ручками ручками .... )

Приятно умного человека услышать, да еще и в теме который.
Ищу, что именно этими ручками прописывать.

375

Re: Скрипты PAL для Sam Broadcaster

предлагаю свой скрипт планировщика под глючный сэм.
то что сэм глючный я понял еще до версии 4.7.4, другие версии не юзал.
тот кто найдет логические ошибки поиска хеша в этом скрипте, тому дам конфетку.
я это к тому, что я их не нашел. и потому считаю движок сэма не идеальным.
вообщем скрипт работает. но иногда не срабатывает.
некоторые блоки кода позаимствованы из других источников (касается плеера).
скрипт иногда развивается.
все остальное можно будет найти на bezpravil.org/lioblindsoft/soft.html
если вы делаете изменения в этом скрипте и перевыкладываете его, то удаляйте в шапке кода мой ник.

скачать:
https://dl.dropboxusercontent.com/u/212 … eduler.pal

далее немного устаревшая справка, но она еще актуальна для текущей версии скрипта 3.2.3.

  инструкция по использованию планировщика запуска файлов версии 3.1 :

описание:
планировщик может запускать медиа файлы непосредственно с диска или папок Sam Broadcaster.
умеет стартовать и останавливать плеер.
может миксовать в случайном порядке файлы из папки "Sound FX (All)" и других папок при указании их имен.
также может миксовать файл с диска, на играющий трек или файлы по очереди.
понимает как абсолютное , так и относительное время, включая день недели, день месяца, и месяц.
работает только с внешним файлом ваших программ. который можно назвать "DJ листом".

не рекомендуется изменять код скрипта, во избежание глюков в работе оного.
скрипт распространяется совершенно бесплатно.
и предлагается - как есть..

Сначала о внешней структуре скрипта:
скрипт управляется непосредственно через его рабочую папку "scheduler".
возможно управлять как локально, так и удаленно (например через FTP сервер).
скрипт управляется только через дисковый доступ.

пример для дискового пути - D:\radio\pal\
допустим, что у вас есть такой путь.
скопируйте скрипт планировщика (scheduler.pal) по пути - D:\radio\pal\
туда же скопируйте рабочую папку скрипта "scheduler".
в итоге, в папке PAL у вас окажется файл scheduler.pal и папка - Scheduler

в рабочей папке - Scheduler после первого запуска скрипта, создаются следующие файлы:
lineplayer - папка в которую сохраняются логи о состоянии строки управления плеером и списком очереди (имеется сразу).
служит для отладки скрипта. по умолчанию отключено.

loadlist.dm - файл перезагрузки DJ листа без перезагрузки скрипта.
для этого его нужно удалить.
об этом говорит его расширение - delete me.

running.dm - объявляет, что скрипт работает и обрабатывает данные с DJ листа.
Чтобы приостановить работу DJ листа, следует этот файл удалить.
когда наступит очередная временная точка - создастся файл ignored.dm .
который означает, что DJ лист игнорируется.
Чтобы возобновить работу скрипта вновь, следует этот файл (ignored.dm) удалить.
иными словами этот механизм работает по принципу Т-Триггера.

scheduler.lst - файл планировщик программ вещания или DJ лист.
в него вписываются команды управления скриптом в синтаксисе приведенном ниже.

Valerror.log - содержит информацию о переполнении и размере таблицы поиска хэшей времени.

подключение скрипта к SamBroadcaster:
откройте SamBroadcaster.
в списке скриптов нажмите контекстменю и нажмите на пункт "New Ins".
далее в диалоге можете сразу отметить его авто запуск, поставив флажок на "Automatically start script".
впишите в редактор полный путь к скрипту. например:
Script source file
D:\radio\pal\scheduler.pal
перейдите на jaws курсор и нажмите кнопку - OK.
после этого скрипт будет подключен, а также запускаться автоматически при запуске Сэма.
далее настраиваем планировщик.

настройка планировщика:

открываем скрипт scheduler.pal в обычном блокноте и находим строку:
// укажите текущую директорию для файлов управления. в конце записи ставьте - "\".
Const CurrentPath= 'd:\radio\pal\Scheduler\';

это и есть путь к рабочей папке скрипта. измените его если есть необходимость.
не указывайте не существующих путей.
сохраните изменения в файле, если таковые были сделаны.

далее запускаем скрипт на выполнение - F9.
через некоторое время в рабочей папке - scheduler, будут созданы файлы управления.
заходим в эту папку и открываем в блокноте файл DJ листа - scheduler.lst
далее пишем программу вещания. после этого сохраняем результат и удаляем файл - loadlist.dm , чтобы программа вступила в силу.
также для этого, можно просто перезапустить скрипт - F10 потом F9.

синтаксис ваших команд следующий:

[@mon.day.dw-HH:MM:SS=PlayerMode|FileNamePath1|FileNamePath2|..]

где:
mon - означает имя месяца.
day - означает число месяца.
dw - означает день недели.
HH - означают часы.
MM - означают минуты.
SS - означают секунды.

левую и правую квадратные скобки не вписываем..
в левой части командной строки вписывается месяц, день месяца и день недели, потом "дефис", как разделитель и сразу же время срабатывания в часах, минутах и секундах, в правой (после знака "=") действие проигрывателя.
день месяца, день недели, часы, минуты и секунды обязательно указываются двусимвольными.
месяц указывается трех-символьным.
например:
"янв.05.сб-02:05:00".

если например нужно, чтобы файл проигрывался каждый день каждого месяца в 25 минут каждого часа,
тогда вместо абсолютных часов вписываем - "x" , только прописными буквами.
также прописными "x" прописываются любые параметры кроме минут и секунд, если нужно их применить как любое значение.

тоесть полная запись будет такая - "x.x.x-x:25:00" , без кавычек разумеется.

также можно вписывать сокращенные значения, кроме значение в поле часов - "x:25:00".
пример для срабатывания по субботам Января в 19 часов:
"@янв.x.сб-19:00:00"
можно это же записать сокращенно:
"янв.сб-19:00:00"

это является тождеством.
обратите внимание, что первым символом выступает знак "@".
он обязателен для парсера строки.
если вам необходимо закоментировать строку, то этот знак не вписываем.

ниже смотрите список корректных хэшей и их приоритеты срабатывания.

в правой части строки, после знака "=" - вы вписываете выражение - "PlayerMode|FileNamePath1|FileNamePath2"

где:
PlayerMode - режим проигрывания плеера.
FileNamePath - полный путь к медиа-файлу

PlayerMode может иметь следующие параметры:
"q" - поставить файл в очередь за играющим в данный момент треком.
"ftn" - остановить играющий трек и проиграть указанный файл (FadeToNext (фейд уменьшения на фейд увеличения))
"sdrm" - миксовать случайно выбранный трек из папки сэма "Sound FX (All)" если параметр не указан, или трек из другой папки (при указании ее имени), на играющий трек
"m" - миксовать файл на играющий трек
"ql" - работа со списком очереди - для загрузки папок. (пришлось сделать отдельно, так как тогда все глючит)
"ftp" - включить воспроизведение трека вверху очереди в списке Queue (работает только при остановленом плеере).
"fts" - остановить играющий трек (останова плеера).
"de" - (Deck Eject) извлечение деки A и деки B.
Рекомендуется для завершения эфира, после "fts".

FileNamePath может иметь как один параметр - полное указание пути к файлу, так и дополнительный тэг в префиксе пути.
дополнительный тег нужен, чтобы указать - будет ли файл ставиться следующим или текущим (который игрался последним).

например:
"@x:25:00=ftn|[n]c:\music\radio\*.mp3"

это значит , что в 25 минут каждого часа, каждого дня, каждого месяца в папке радио будет проигрываться очередной файл с расширением .mp3.
файлы должны быть пронумерованы в трехзначном формате - 001.mp3, 010.mp3, 100.mp3.
также можно проигрывать другие медиа-файлы поддерживаемые Сэмом.
также можно проигрывать любые плей-листы (нужно только поменять расширение файлов).
знак - звездочка в этом режиме обязателен!
тэг может иметь варианты:
[n] - поставить следующий файл.
[c] - поставить файл который проигрывался последний раз (например повтор передачи вечером).

также имеется подобная возможность для папок сэма.
[sdn] - поставить следующий трек из папки Сэма.
[sdr] - поставить случайный трек из папки Сэма.

тэги sdn, sdr - вписываются перед именем папки сэма ( [sdn]Music (All) ).
или другой..
в параметр - "ftn", "q" - можно вписывать очередность путей в любом порядке.
тоесть, как пути к конкретным медиа-файлам и плейлистам,
так и к папкам Сэма и папкам с индексными файлами.
а также и URL потоки (вывод новостей или прогноза погоды со сторонней станции).
учтите что URL поток не даст проиграться правосторонней части перечисляемых параметров-путей, пока вы вручную не промотаете список очереди вперед - F4.
также это может сделать и скрипт. достаточно ввести еще одну запись для включения например , какого-нибудь файла.

если в параметре PlayerMode вы указываете - "ftp", "fts", "de", то вписывать параметр "FileNamePath" не нужно..
всего можно перечислить 12 параметров.
для ftn, q - 11.
для ql - 9.
для m, sdrm - 1 (остальные игнорируются).

загрузка папок:
запись выглядит так - "ql|cas|ftn|folder1|other pathes|folder2"
вообщем поддерживаются те же параметры что и - ftn, q, но без возможности проигрывания
индексных файлов.
поддерживается загрузка папок, файлов и плей-листов со статическими именами.
собственно режим только для загрузки папок.
параметр "ql" означает, что применяется этот самый режим.
второй параметр может иметь следующие варианты:
cas - очистить список очереди, загрузить папку, перемешать загруженое.
ca - очистить список очереди, загрузить папку.
as - загрузить папку, перемешать загруженое.
a - загрузить папку.
s - перемешать список очереди.

третий параметр может иметь варианты:
q - не прерывать игру плеера (очередь..).
ftn - сразу после окончания работы режима ql воспроизвести трек, вверху очереди списка очереди.

остальные параметры , это пути к загружаемым папкам и файлам.
при указании пути к папке, обязательно последним символом ставьте - "\".

режимы - sdrm, m - имеют только один параметр FileNamePath.
в нем указывается статический путь к файлу или к папке Сэма.
но для режима "m", можно указать и перечисление файлов, как в режимах - q, ftn.
"@x:25:00=m|[n]c:\music\radio\*.mp3"
"@x.05.x-x:45:00=m|[c]c:\music\radio\*.mp3"

без кавычек разумеется.

пример генерации хэшей для даты - 16 Сентября воскресенье 15:25

приоритет срабатывания хэшей даты / времени следующий:
сен.16.вс-15:25:00
сен.16.x-15:25:00
сен.16-15:25:00
сен.x.вс-15:25:00
сен.вс-15:25:00
x.16.вс-15:25:00
16.вс-15:25:00
x.16.x-15:25:00
16-15:25:00
x.x.вс-15:25:00
вс-15:25:00
сен.x.x-15:25:00
сен-15:25:00
x.x.x-15:25:00
15:25:00
сен.16.вс-x:25:00
сен.16.x-x:25:00
сен.16-x:25:00
сен.x.вс-x:25:00
сен.вс-x:25:00
x.16.вс-x:25:00
16.вс-x:25:00
x.16.x-x:25:00
16-x:25:00
x.x.вс-x:25:00
вс-x:25:00
сен.x.x-x:25:00
сен-x:25:00
x.x.x-x:25:00
x:25:00

---------

чем выше запись хэша, тем выше приоритет.
учитывайте это в планировании передач.

ниже приведены сокращения дней недели и месяцев при указании их в списке планировщика:
вс - воскресенье
пн - понедельник
вт - вторник
ср - среда
чт - четверг
пт - пятница
сб - суббота

---

янв - Январь
фев - Февраль
мар - Март
апр - Апрель
май - можно догадаться
июн - Июнь
июл - Июль
авг - Август
сен - Сентябрь
окт - Октябрь
ноя - Ноябрь
дек - Декабрь

---------

обратите внимание, что между всеми параметрами выражения - PlayerMode и FileNamePath стоят всегда разделители - "|".
и обязательны для парсера разбора строки.

Внимание!
скрипт позволяет вписывать в DJ лист секунды.
лучше вписывать - 00 секунд.
так как этот механизм вычисления упреждающего срабатывания при всех стараниях работает медленно на уровне движка SamBroadcaster.
что приводит к пропуску срабатывания ваших программ заложеных в DJ лист.
чтобы это работало, нужно сделать так, чтобы между любыми программами по ходу времени вещания не было меньше 15 секунд.
причем на уровне минут и секунд. часы игнорируются из-за ограничения процедуры ожидания, заявленую разработчиком SamBroadcaster.
примеры неправильного срабатывания:

20:59:50=program1
21:00:00=program2
в этом случае программа2 не сработает, так как между записями 10 секунд.

20:59:50=program1
23:00:00=program2
тут тоже не сработает программа2, так как здесь также разница в 10 секунд.
напоминаю, что часы игнорируются.

для срабатывания можно записать так:
20:59:45=program1
21:00:00=program2

20:59:45=program1
23:00:00=program2
здесь уже разница в 15 секунд.

также сработает равное время:
20:00:00=program1
23:00:00=program2
здесь полное тождество - 00:00.
при тождестве проблема исчезает.
разные минуты - тождеством не являются.
главное, чтобы конец одной минуты имел разницу в 15 секунд с началом другой минуты.
пример:
20:59:50=program1
23:00:05=program2
здесь разница в 15 секунд.
или:
20:59:50=program1
23:01:00=program2
здесь разница в 1 минуту 10 секунд, что вполне допустимо.

также проблема срабатывания не случится и в пределах одной минуты. главное чтобы минимальная разница была в 15 секунд.
пример:
21:00:00=program1
23:00:20=program2
или:
21:35:25=program1
23:35:45=program2
здесь разница в 20 секунд.

если у вас очень большой DJ лист, то может случиться переполнение статической таблицы поиска хэшей времени.
в этом случае часть невместившихся программ вещания попросту не сработает. также возможно зависание скрипта.
узнать про это можно, открыв файл - Valerror.log
если вы не видите сообщение - "Ошибка! Превышен лимит длины таблицы", то значит все нормально.
обычно запись выглядит примерно так:
Занято столбцов таблицы хэшей - 367 из 2000

если оказалось, что лимит превышен, то откройте файл скрипта - scheduler.pal ,
найдите строку - // размер таблицы хэша поиска времени
и измените значение константы "C" :
Const c= 2000;  - на какое нибудь большее значение.
не ставьте значение больше - 32767.
старайтесь вообще не ставить большие значения, так как при запуске скрипта ваш SamBroadcaster затупит - скрипт загружается продолжительное время.

  Лисовой Игорь  Украина Киев  23 Января 2013