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

Может кто сталкивался с проблемой добавления треков в сэм... Каким образом добавить трек в активный дек, если этот трек еще не был в БД сэма? К примеру вот скрипт:

Будь другом, подскажи пожалуйста, у меня не работает данный скрипт:

var Song : TSongInfo;
var P : TPlayer;
//Queue.AddFile('H:\востоновление\РАДИОВЕЩАНИЕ\Передачи\Flying Through The Universe',ipTop);
//Song := CAT['H:\востоновление\РАДИОВЕЩАНИЕ\Передачи\Flying Through The Universe'].ChooseSong(smRandom,NoRules);
//Queue.Add(song,ipTop);
DIR['H:\востоновление\РАДИОВЕЩАНИЕ\Передачи\Flying Through The Universe'].QueueTop(smRandom,EnforceRules);
P := ActivePlayer;
if P <> nil then P.FadeToNext;

Этот скрипт при выполнениии выбирает случайный трек из папки H:\востоновление\РАДИОВЕЩАНИЕ\Передачи\Flying Through The Universe. Но! Скрипт выполняется и добавляет файл в дек только в том случае, если он уже есть в БД.
Подскажи пожалуйста, как добавить трек в дек, которого еще нет в БД, например если мне трек залили по фтп или я его только что скачал? Заранее спасибо за ответ

Сознание того, что чудесное было рядом - приходит слишком поздно...
http://fmhost.me/out/?id=751

277

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

var Song : TSongInfo;
var P : TPlayer;
Queue.AddFile('H:\востоновление\РАДИОВЕЩАНИЕ\Передачи\Flying Through The Universe',ipTop);
P := ActivePlayer;
if P <> nil then P.FadeToNext;

Просто добовляешь трек сначало в Queue а потом фейдишь в активный плеер.

278

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

Как с помощью скрипта заставить СЭМ запускать одновременно енкодеры, скрипты и добавлять треки в queue? Очень нужен для нон-стоп базы.

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

Ребята, подскажите, каким скриптом проверять Queue на наличие треков?

Сценарий такой:

Скрипт зацикливается и проверяет есть ли очередь в Queue, если треков 0 или 1 то добавляет рендомом трек из категории в очередь. Все! Получается в Queue всегда будет очередь из 2-х треков и деки не будут молчать. Заранее спасибо!

280

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

пишет Тарасов Александр:

Ребята, подскажите, каким скриптом проверять Queue на наличие треков?

Сценарий такой:

Скрипт зацикливается и проверяет есть ли очередь в Queue, если треков 0 или 1 то добавляет рендомом трек из категории в очередь. Все! Получается в Queue всегда будет очередь из 2-х треков и деки не будут молчать. Заранее спасибо!

А зачем писать для этого пал скрипт? Чем обычный ротатор не устраивает? Он отлично с этим справится

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

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

пишет Falcon:

пишет Тарасов Александр:

Ребята, подскажите, каким скриптом проверять Queue на наличие треков?

Сценарий такой:

Скрипт зацикливается и проверяет есть ли очередь в Queue, если треков 0 или 1 то добавляет рендомом трек из категории в очередь. Все! Получается в Queue всегда будет очередь из 2-х треков и деки не будут молчать. Заранее спасибо!

А зачем писать для этого пал скрипт? Чем обычный ротатор не устраивает? Он отлично с этим справится

Имеешь в виду AutoDJ? Он не подойдет, т.к. играет из всех категорий в плейлисте, а не конкретно из заданного, да и ко всему по времени планировщик добавляет треки в очередь Queue. В общем подробно это выглядит так:

Играет очередь Queue заданная DJ-ем, все окей. Скрипт проверяет, если ли треки в Queue, гуру Leff27 подсказал, спасибо ему за это:

PAL.Loop := True;
if (Queue.Count < 2) then
begin
...
end;
PAL.WaitForPlayCount(2);

если треков меньше 2 то добавляем из категории любой трек в очередь и пока DJ не вернется, в очереди всегда будет минимум 2 трека, в общем шарманка не заглохнет. Скрипт для этого нужен еще потому, что в определенное время срабатывает планировщик и докидывает в очередь еще плейлист в Top Queue

По планировщику понятно, просто в заданное время он кидает плейлист в ТОР очереди, а знает ли кто, что дописать, чтобы перед плейлистом добавился джингл, причем без наезда трека на трек.

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

Отредактировано Тарасов Александр (22-09-2012 10:51:31)

282

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

пишет Тарасов Александр:

пишет Falcon:

пишет Тарасов Александр:

Ребята, подскажите, каким скриптом проверять Queue на наличие треков?

Сценарий такой:

Скрипт зацикливается и проверяет есть ли очередь в Queue, если треков 0 или 1 то добавляет рендомом трек из категории в очередь. Все! Получается в Queue всегда будет очередь из 2-х треков и деки не будут молчать. Заранее спасибо!

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

Лучше добавлять не из категорий, а из папок, т.к. если в категориях сэма много треков, личный опыт(перепробовал около 5 версий сэма), то появляются затыки и лаги...
Я делал так, с (smLemmingLogic, EnforceRules) можешь поэкспериментировать, другие варианты найдешь в Шудлере(правила ротации/добавления)

PAL.Loop := True;
if (Queue.Count < 3) then
begin
SubDir['C:\Put\Na\Latinice\Jingles'].QueueTop(smLemmingLogic, EnforceRules);
SubDir['C:\Put\Na\Latinice\Songs'].QueueBottom(smLemmingLogic, EnforceRules);
SubDir['C:\Put\Na\Latinice\Songs'].QueueBottom(smLemmingLogic, EnforceRules);
end;
PAL.WaitForPlayCount(3);

Отредактировано Leff27 (22-09-2012 11:24:51)

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

Узнал, спасибо, что в Playlist Rotation Rules можно настроить правила ротации, хм, ну это конечно большое преимущество перед скриптом, главное, конечно, что возможность повтора трека сокращается правилом и можно указать и категорию и как советует из опыта Leff27 папку. Интересно, а когда запущен AutoDJ можно ли в Queue добавлять в Тор треки из папки в заданное время по средствам планировщика?

И еще вопрос почему AutoDJ жалуется? Треков в листе достаточно, хм, в чем дело?

SAM was unable to queue a song after 20 tries. This can be caused by incorrect playlist rotation rules or having too few files in your media library. Virtual DJ mode has been set to "Queue mode" so you can fix this problem. (Remember to set the Virtual DJ back to "Auto DJ" mode after you have fixed the problem.)

284

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

В queue нет треков, а все треки из категорий он уже проиграл и они не подходят под правила ротации(нужно больше треков)

Можно добавлять, этим же скриптом, только в качестве задержки ставим "дожидаться часа", например:

PAL.Loop := True;
PAL.WaitForTime('00:30:00'); // Ждем 00:30:00 и запускаем или например так PAL.WaitForTime('+00:30:00'); // Каждые 30 минут
SubDir['C:\Put\Na\Latinice\Jingles'].QueueTop(smLemmingLogic, EnforceRules);

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

пишет Leff27:

В queue нет треков, а все треки из категорий он уже проиграл и они не подходят под правила ротации(нужно больше треков)

Можно добавлять, этим же скриптом, только в качестве задержки ставим "дожидаться часа", например:

PAL.Loop := True;
PAL.WaitForTime('00:30:00'); // Ждем 00:30:00 и запускаем или например так PAL.WaitForTime('+00:30:00'); // Каждые 30 минут
SubDir['C:\Put\Na\Latinice\Jingles'].QueueTop(smLemmingLogic, EnforceRules);

Отлично, попробую. Большущие спасибо светлой голове Leff27 очень помог. Вот думаю еще в самих правилах поковыряться, сокращу время повтора, посмотрю как он отреагирует. Кстати в конфиге такой код, все понимают что он говорит?

Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);
Cat['Music (All)'].QueueBottom(smLRPA, EnforceRules);
Cat['Music (All)'].QueueBottom(smWeighted, EnforceRules);

Вызывает вопрос это:

smLemmingLogic
smLRPA
smWeighted

и что значит Cat['Music (All)']... ? Вся музыка, какая? Что это за категория? Можно ли снести все это к чертям и оставить только Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);   ?

BARKLAY(WOLF) писал так:

Cat['Tracks'].QueueBottom(smRandom, EnforceRules);    вместо     Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);

286

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

пишет Тарасов Александр:

пишет Leff27:

В queue нет треков, а все треки из категорий он уже проиграл и они не подходят под правила ротации(нужно больше треков)

Можно добавлять, этим же скриптом, только в качестве задержки ставим "дожидаться часа", например:

PAL.Loop := True;
PAL.WaitForTime('00:30:00'); // Ждем 00:30:00 и запускаем или например так PAL.WaitForTime('+00:30:00'); // Каждые 30 минут
SubDir['C:\Put\Na\Latinice\Jingles'].QueueTop(smLemmingLogic, EnforceRules);

Отлично, попробую. Большущие спасибо светлой голове Leff27 очень помог. Вот думаю еще в самих правилах поковыряться, сокращу время повтора, посмотрю как он отреагирует. Кстати в конфиге такой код, все понимают что он говорит?

Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);
Cat['Music (All)'].QueueBottom(smLRPA, EnforceRules);
Cat['Music (All)'].QueueBottom(smWeighted, EnforceRules);

Вызывает вопрос это:

smLemmingLogic
smLRPA
smWeighted

и что значит Cat['Music (All)']... ? Вся музыка, какая? Что это за категория? Можно ли снести все это к чертям и оставить только Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);   ?

BARKLAY(WOLF) писал так:

Cat['Tracks'].QueueBottom(smRandom, EnforceRules);    вместо     Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);

Это

smLemmingLogic
smLRPA
smWeighted

правила ротации, т.е. как выбирать, по какому признакому, о каждом есть в шудлере при выборе или в документации по SAMу

В Cat['Music (All)'] я точно не помнЮ, но вродебы можно взять все, что есть в любой категории, Cat['All music'] взять из папки(категории) All music, Cat['Tracks'] - взять из категории Tracks

^ точно не уверен

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

В общем снес к чертям

Cat['All music'].QueueBottom(smLemmingLogic, EnforceRules);
Cat['Music (All)'].QueueBottom(smLRPA, EnforceRules);
Cat['Music (All)'].QueueBottom(smWeighted, EnforceRules);

оставил только

Cat['All music'].QueueBottom(smRandom, EnforceRules);

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

Осталось теперь разобраться еще в пару вопросах:

1. Планировщик должен добавлять в заданное время категорию с треками в Тор, но перед этими треками должен отыграть конкретный джингл (это обсуждалось кажется тут, попробую найти) но вот еще задача, треки в SAM наезжают друг на друга в момент перехода, а надо чтобы на Джингл не наезжал предыдущий трек и после тоже не было перехда, в общем Джинг отыгрывает чисто без стандартного перехода, а потом все как обычно.

2. Каждые 3 часа играет Джингл по верх музыки (видел как кто-то решал задачу AUX-ом), можно сделать немного умнее, чтобы отыграл в начале след-го трека, т.е. ждет 3 часа и начала трека, как-то так.

3. Кто как решает вопрос резервирования вещания, на случай если например ночью вырубили свет в студии, UPS сел, а генератор не завелся, SAM потух и эфире озарилась тишина. Есть какие-нибудь решения? Поделитесь плз. опытом.

4. Да и есть у кого-нибудь опыт в подключению к потоку другого SAM-a. Например есть два DJ-я, играет сперва один у себя в студии через SAM потом подключается другой к потоку из своей студии и играет из своего SAM-a. В Airtime хорошо реализовано, как я понял из описания, но это ПО серверное, да и не дотянет до SAM-a.

5. Думаем вещать в AAC+, но столкнулись с тем что не все плееры читают этот формат, и вывести плеер на сайте по средствам HTML5 тоже не просто. Кто что скажет в защиту этого формата? Или, кто что посоветует?

Всем спасибо, в частности еще раз Leff27.

288

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

На все вопросы ответить не могу, нет времени.

1. Отключи в настройках нужного трека(song info или как-то так) функцию crossfade

3. IceCast2 ставится на линукс, туда же ставится ices, аля резервный поток, поверх подключается сэм-нонстоп с винды, поверх может подключиться DJ, т.е. получается что, ices будет нонстопом сэма, а сэм нонстопом лайв-эфира....

5. Вещать в ААС+ прекрасная идея, которой пользуется уже не одна радиостанция. HTML5 AAC/MP3 поддерживает не каждый браузер, посему нужно писать обработчик(как на radiopassazh.ru), который меняет флеш-плеер на HTML5, если зашли с айпада и делает редирект на моб. версию сайта, если зашли с моб. устройства.

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

пишет Leff27:

На все вопросы ответить не могу, нет времени.

1. Отключи в настройках нужного трека(song info или как-то так) функцию crossfade

3. IceCast2 ставится на линукс, туда же ставится ices, аля резервный поток, поверх подключается сэм-нонстоп с винды, поверх может подключиться DJ, т.е. получается что, ices будет нонстопом сэма, а сэм нонстопом лайв-эфира....

5. Вещать в ААС+ прекрасная идея, которой пользуется уже не одна радиостанция. HTML5 AAC/MP3 поддерживает не каждый браузер, посему нужно писать обработчик(как на radiopassazh.ru), который меняет флеш-плеер на HTML5, если зашли с айпада и делает редирект на моб. версию сайта, если зашли с моб. устройства.

Leff27, мысль поймал, но не совсем, первый раз слышу, про ices sad
Как будет время, можно подробнее описать процесс реализации резерва и "горячего" подключения DJ ? Или хотя бы источники где копать. Спасибо

290

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

Всем привет smile Есть скрипт, который я запускаю через шледулер в определенное время. Скрипт очищает старую очередь, затем берет определенный плейлист, добавляет его в новую очередь, перемешивает треки и ставит в деку трек из нового плейлиста. Есть один нюанс: если в деке уже играет трек, то скрипт ставит в другую деку трек, и делает кроссфейд. То есть старый трек до конца не доигрывает. Вот в этом и проблема. Как бы скрипт переделать так, чтобы последний трек, из старой очереди, из старого плейлиста доиграл до конца, и только затем начал играть следующий, из нового плейлиста ?

{==================================================}
IF ActivePlayer <> NIL THEN
BEGIN
PAL.WaitForTime('+00:00:01');
ActivePlayer.FadeToPause;
PAL.WaitForTime('+00:00:02');
END;

DeckA.Eject;
DeckB.Eject;

Queue.Clear;
Queue.AddList('D:\playlist.m3u',ipTop);
Queue.Shuffle;

var Song : TSongInfo;
var A,P  : TPlayer;

A := ActivePlayer;
P := IdlePlayer;

Song := Queue.NextInQueue;
if Song = nil then
WriteLn('Queue is empty')
else
begin
if P <> nil then P.QueueSong(Song);
if P <> nil then P.Play;
if A <> nil then A.FadeToNext;
end;

Скрипт запускаю через

291

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

пишет ra1nbowman:

Всем привет smile Есть скрипт, который я запускаю через шледулер в определенное время. Скрипт очищает старую очередь, затем берет определенный плейлист, добавляет его в новую очередь, перемешивает треки и ставит в деку трек из нового плейлиста. Есть один нюанс: если в деке уже играет трек, то скрипт ставит в другую деку трек, и делает кроссфейд. То есть старый трек до конца не доигрывает. Вот в этом и проблема. Как бы скрипт переделать так, чтобы последний трек, из старой очереди, из старого плейлиста доиграл до конца, и только затем начал играть следующий, из нового плейлиста ?

{==================================================}
IF ActivePlayer <> NIL THEN
BEGIN
PAL.WaitForTime('+00:00:01');
ActivePlayer.FadeToPause;
PAL.WaitForTime('+00:00:02');
END;

DeckA.Eject;
DeckB.Eject;

Queue.Clear;
Queue.AddList('D:\playlist.m3u',ipTop);
Queue.Shuffle;

var Song : TSongInfo;
var A,P  : TPlayer;

A := ActivePlayer;
P := IdlePlayer;

Song := Queue.NextInQueue;
if Song = nil then
WriteLn('Queue is empty')
else
begin
if P <> nil then P.QueueSong(Song);
if P <> nil then P.Play;
if A <> nil then A.FadeToNext;
end;

Скрипт запускаю через

if A <> nil then A.FadeToNext;

В здоровом теле - здоровый дух!

292

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

Народ, помогите вычислить время до окончания трека!

Duration считает общее время звучание трека, мне же нужно, чтобы когда до конца трека остается менее 5 секунд, скрипт выполнялся (независимо от общей длительности трека)

293

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

PAL.Loop := True; // Цикилим скрипт
Var Done : Boolean = False;
var P    : TPlayer;
var Song : TSongInfo;
var mytime : DateTime = now; // Переменной mytime присваеваем значение "Время сейчас"
var I : Integer;
var start_time, end_time, end_time2 : DateTime;  //переменные
start_time := T['10:00:00']; //время начало выполнения
end_time :=T['11:00:00'];   //время остановки выполнения
while not done do
  begin
   if((ActivePlayer.Duration-ActivePlayer.CurTime)<4000) and ( mytime >= start_time) // и теперешнее время больше или равно времени начала выполнения
  and (mytime <= end_time)  // и теперешнее время меньше или равно времени окончания
   Then
   begin

P := Aux1;
if P <> nil then
begin
Song := CAT['Хип-Хоп'].ChooseSong(1,NoRules);
if Song <> nil then
begin
P.QueueSong(Song);
P.Play;
Done := True;
end;
end;
end;
  end;

Как сделать включение этого скрипта в другое время?
В 19:00 до 20:00 и в 02:30 до 03:30?

294

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

т.е. я хочу сделать следующее:
1. С 06:00 - 10:00 играет по правилам ротации (Папка 1 Нон-стоп)
2. При этом Джинглы и Заставки так-же идут вместе с (Папка 1Нон-Стоп)
3.С 10:00 -11:00 - Играет по правилам ротации (Папка 2 Хип-Хоп)
4. При этом джинглы и Заставки не вставляются.
5. Но после каждого трека вставляется "Сухарь" в течении этого времени.
с 19:00 все повторяется с пункта 3, только меняется время на 19:00 - 20:00

Возможно поможет шекулдер, но в нем невозможно установить время окончания.
Мне же нужно, просто отключать в определенное время Папку 1 с джинглами из другой папки, и начинать хип-хоп, по окончанию которого, возвращаться к Нон-стопу и включать джинглы.

295

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

Всем привет)
Можете мне помочь, я никак не могу сделать рабочим скрипт: скрипт заключается в том что бы воспроизводить по верх муз трека, джингл...можете мне скинуть рабочий скрипт, пожалуйста! буду очень благодарен!

296

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

пишет evgenyi-lev96:

Всем привет)
Можете мне помочь, я никак не могу сделать рабочим скрипт: скрипт заключается в том что бы воспроизводить по верх муз трека, джингл...можете мне скинуть рабочий скрипт, пожалуйста! буду очень благодарен!

Скрипт в целом работает, он дабовляет джингл в Uqeue но не воспроизводит в Aux...как я понял он должен воспроизводится именно там...но в принципе он вообще не воспроизводится...
var Song : TSongInfo;
var P : TPlayer;
PAL.Loop := True;  // скрипт будет выполнятся постоянно
PAL.WaitForTime('+00:10:00'); // задержка в 10 секунд
P := SoundFX; // через что играть
if P <> nil then
begin
Song := CAT['Каталог'].ChooseSong(1,NoRules);
if Song <> nil then
begin
P.QueueSong(Song); //
P.Play;
end;
end;

строка Song := CAT['Каталог'].ChooseSong(1,NoRules); хотелось бы ещё узнать вот что, можно ли в строке каталог прописывать просто путь к джинглу ? к примеру >Song := CAT['D:\Program Files\SpacialAudio\SAMBC\Sound\Jingels\001.mp3'].ChooseSong(1,NoRules);< ????

297

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

Джингл поверх муз трека - это лайнер. Запомните

Лучшая музыка за 15 лет! www.radiopassazh.ru
Лучшая русская популярная музыка! www.rusongs.ru

298

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

пишет radiopassazh:

Джингл поверх муз трека - это лайнер. Запомните

Не знал, извините) Так вы мне поможете со скриптом?

299

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

пишет radiopassazh:

Джингл поверх муз трека - это лайнер. Запомните

В некоторых программах автоматизации (в часности в Jazler) почему-то называется "свипер" "sweeper"

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

300

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

пишет evgenyi-lev96:

пишет radiopassazh:

Джингл поверх муз трека - это лайнер. Запомните

Не знал, извините) Так вы мне поможете со скриптом?

Учитесь пользоваться поиском. в гугле набираем "sam broadcaster liner"

Первая же ссылка ведет на официальный форум с таким же вопросом как у вас.

http://forums.broadcastingworld.net/sho … roadcaster

Удачи

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