ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
3   •   Посмотреть все темы

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

 

6
Ares @Ares
Доброго времени суток!
Вопрос такой, как можно скрипт для рандома джинглов который использует PAL.WaitForPlayCount(4), заставить не считать определенные файлы из категории Station ID. Т.е. если играют треки из этой категории, то их не учитывать в методе PAL.WaitForPlayCount(). Заранее спасибо.

53
wisher @wisher
Ares пишет:

Доброго времени суток!
Вопрос такой, как можно скрипт для рандома джинглов который использует PAL.WaitForPlayCount(4), заставить не считать определенные файлы из категории Station ID. Т.е. если играют треки из этой категории, то их не учитывать в методе PAL.WaitForPlayCount(). Заранее спасибо.


доброго утречка Ares!
эта строчка PAL.WaitForPlayCount(4) просто действие с интервалом 4 трека
замени на эту
PAL.WaitForTime('+00:05:30'); // 5 мин. 30 сек. ожидания

укажи свой интервал времени и всё будет чётко работать. Удачки!

6
Ares @Ares
wisher пишет:

Ares пишет:

Доброго времени суток!
Вопрос такой, как можно скрипт для рандома джинглов который использует PAL.WaitForPlayCount(4), заставить не считать определенные файлы из категории Station ID. Т.е. если играют треки из этой категории, то их не учитывать в методе PAL.WaitForPlayCount(). Заранее спасибо.


доброго утречка Ares!
эта строчка PAL.WaitForPlayCount(4) просто действие с интервалом 4 трека
замени на эту
PAL.WaitForTime('+00:05:30'); // 5 мин. 30 сек. ожидания

укажи свой интервал времени и всё будет чётко работать. Удачки!



Это понятно, но вопрос не в этом именно надо по трекам считать просто может можно как-то поставить выполнение скрипта с джинглами в паузу, в этот момент выдать рекламу, и опять его стартануть? И еще нигде не нашел - как можно сохранить записи шедуллера? Допустим если слетела база и был софт переустановлен, чтобы с нуля не настраивать. С учетом того, что бэкапа базы нет)

53
wisher @wisher
Приветик Ares! Если тебе нужен скрипт для твоих целей, при котором нужно считать треки или ставить в паузу и затем запускать что либо конечно-же - это уже индивидуальный получится скрипт! я не специалист по этим вещам сам ещё учусь, не зная конкретики различных манипуляций и действий мне трудно тебе помочь. Что касается когда слетает база и по поводу сохранения Планировщика.. так я тоже подобного ничего в инете не нашёл. Саму базу данных по трекам и настройках программы можно сохранить там есть такая опция... Я использую самый надёжный и проверенный способ, после настройки всех параметров Сэма и загрузки всех треков в базу просто полностью копирую две папки MySQL... и SpacialAudio в другое место и всё, и затем после новой инсталяции программ меняю их на копии единственное, что папку MySQL... при включённом Windows заменить или удалить нельзя потому что он запускается как сервис (Служба) так его нужно отключить или остановить в Диспетчер задач Windows и после замены перезагрузить комп.... так я себе таких копий создал уже весь комп замусорил, но это мне не мешает всегда можно вернутся назад и всё изменить. Удачки тебе!

Отредактировано wisher - 12.06.2015
6
Ares @Ares
wisher пишет:

Приветик Ares! Если тебе нужен скрипт для твоих целей, при котором нужно считать треки или ставить в паузу и затем запускать что либо конечно-же - это уже индивидуальный получится скрипт! я не специалист по этим вещам сам ещё учусь, не зная конкретики различных манипуляций и действий мне трудно тебе помочь. Что касается когда слетает база и по поводу сохранения Планировщика.. так я тоже подобного ничего в инете не нашёл. Саму базу данных по трекам и настройках программы можно сохранить там есть такая опция... Я использую самый надёжный и проверенный способ, после настройки всех параметров Сэма и загрузки всех треков в базу просто полностью копирую две папки MySQL... и SpacialAudio в другое место и всё, и затем после новой инсталяции программ меняю их на копии единственное, что папку MySQL... при включённом Windows заменить или удалить нельзя потому что он запускается как сервис (Служба) так его нужно отключить или остановить в Диспетчер задач Windows я себе таких копий создал уже весь комп замусорил, но это мне не мешает всегда можно вернутся назад и всё изменить. Удачки тебе!

Ок. ладно как разберусь скину решение сюда. Может кому пригодится)

53
wisher @wisher
это будет очень здорово! помощь другим не помешает!

53
wisher @wisher
для автоматизации и различный манипуляций в Сэме я использую скрипт на основе этого и без планировщика
PAL.Loop := True; // Скрипт будет выполнятся постоянно
// -----------------------------------------------------------------------------
// Не изменяйте код ниже этой линии, если вы не уверены в том, что вы делаете!
// -----------------------------------------------------------------------------
var WeekDayW1 : Boolean; // W1 = Working1 (1 сценарий)
var WeekDayW2 : Boolean; // W2 = Working2 (2 сценарий)
///////////////////////////// 1 сценарий ///////////////////////////////////////
var Working1Start : string = '23:58:00'; // Старт (Время не изменять)
var Working1End : string = '23:59:59'; // Стоп (Время не изменять)
// -----------------------------------------------------------------------------
///////////////////////////// 2 сценарий ///////////////////////////////////////
var Working2Start : string = '00:00:01'; // Старт (Время не изменять)
var Working2End : string = '23:58:00'; // Стоп (Время не изменять)
////////////////////////////////////////////////////////////////////////////////
// -------------------------- начало 1 сценария --------------------------------
// Старт (Working1) Работа во все дни недели по Будням и Выходным

это часть кода с предыдущей страницы
у меня он более длинней... наверное если распечатать метров 5 будет
я там увеличил сценарий до 18 и внутри каждого сценария вложил еще и так до бесконечности ...

var WeekDayW1 : Boolean; // W1 = Working1 (1 сценарий)
var WeekDayW2 : Boolean; // W2 = Working2 (2 сценарий)
..............................................................................................
..............................................................................................
..............................................................................................
..............................................................................................
var WeekDayW18 : Boolean; // W18 = Working2 (18 сценарий)

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

Отредактировано wisher - 12.06.2015
6
Ares @Ares
В общем так. Если нужно сохранять ваши эвенты то есть два варианта:
1) при создании бэкапа средствами SAB, создаются в директории C:\Users\Artist\AppData\Local\SpacialAudio\SAMBC\backup папки с содержанием которое копирует таблицы из базы САМ-а с расширением *.csv. В случае выхода из строя можно тупо сделать restore за нужную дату;
2) Если нужно восстановить определенную таблицу, то можно средствами БД импортировать нужную *.csv-ку, но нужно следить за связями в БД, чтобы ее не уронить.
Как-то так

53
wisher @wisher
такой вариант я тоже использую, если добавил в базу новых треков, а копии программ не делал.
так после востановления копий я добавляю из backup утерянные новые треки и так дал...
как вновь добавляю новые треки в базу данных, я всегда делаю backup

ладненько убегаю... Хороших выходных!

Отредактировано wisher - 12.06.2015
85
YNC @pluta
У меня есть допустим часовой микс, и я хочу что-бы он начал играть допустим с середины/с конца (рандомно) , можно ли это осуществить скриптами ?

53
wisher @wisher
pluta пишет:

У меня есть допустим часовой микс, и я хочу что-бы он начал играть допустим с середины/с конца (рандомно) , можно ли это осуществить скриптами ?


Приветик pluta! я ничего подобного не нашёл в инете, чтоб такое реализовать, кроме этого тега вернее действия для скрипта по твоему запросу. решение думаю будет очень сложным
Пример:DeckA.Seek(60000); // 60 секунд
даже проверил его у себя в Сэме с дополнением других обязательных параметров, в итоге он выполняет свою функцию, запускает файл как нужно, но получается проблема, что его действие происходит очень быстро, резкий запуск, что приводит к разработке дополнительный действий. нужно приблизительно так, за ранее убирать громкость до нуля, затем плей и одновременно DeckA.Seek(60000); плюс громкость выводить в первоначальное состояние, конечно таким образом можно будет запускать твой микс с нужной тебе позиции по времени. возникает ещё вопрос, как осуществить рандом? для одноразового запуска подходит, а вот запуск с другой позиции времени уже нет, снова придётся разрабатывать новый сценарий и так дал....
мне кажется легче будет порезать твой часовой микс на кусочки и запускать стандартными средствами.
очень жаль, что не могу тебе помочь.

Отредактировано wisher - 15.06.2015
6
Ares @Ares
День добрый! Кто нибудь сталкивался с "фантомными" треками? И как с ними бороться? Допустим работает такой скрипт:

PAL.WaitForTime('07:19:50');
Dir['D:\Morning\07'].Rescan;
Dir['D:\Morning\07'].QueueDir(ipTop);
PAL.Loop := False;

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

Все не надо спасибо) Разобрался сам

Отредактировано Ares - 15.06.2015
85
YNC @pluta
wisher пишет:

pluta пишет:

У меня есть допустим часовой микс, и я хочу что-бы он начал играть допустим с середины/с конца (рандомно) , можно ли это осуществить скриптами ?


Приветик pluta! я ничего подобного не нашёл в инете, чтоб такое реализовать, кроме этого тега вернее действия для скрипта по твоему запросу. решение думаю будет очень сложным
Пример:DeckA.Seek(60000); // 60 секунд
даже проверил его у себя в Сэме с дополнением других обязательных параметров, в итоге он выполняет свою функцию, запускает файл как нужно, но получается проблема, что его действие происходит очень быстро, резкий запуск, что приводит к разработке дополнительный действий. нужно приблизительно так, за ранее убирать громкость до нуля, затем плей и одновременно DeckA.Seek(60000); плюс громкость выводить в первоначальное состояние, конечно таким образом можно будет запускать твой микс с нужной тебе позиции по времени. возникает ещё вопрос, как осуществить рандом? для одноразового запуска подходит, а вот запуск с другой позиции времени уже нет, снова придётся разрабатывать новый сценарий и так дал....
мне кажется легче будет порезать твой часовой микс на кусочки и запускать стандартными средствами.
очень жаль, что не могу тебе помочь.


Да , жалко, ну ладно. Спасибо за попытку

15
Till @Till
wisher пишет:

Till пишет:

Всем привет. Для вставки джингла использую простой скриптик.

PAL.Loop := True;
PAL.WaitForPlayCount(3);
CAT['Station IDs (All)'].QueueTop(smRandom, NoRules);

Но на пои IDшки не работает fade in и fade out. Т.е. начинаются и обрываются резко. В настройках каждого трека настройки затухания выставлены общие, но, почему-то не работают. Подскажите, в чём может быть проблема? Заранее спасибо


Возможно у тебя джинглы очень короткие по длине, у меня тоже была такая подобная проблема к примеру джингл около 8-10 сек. конечно же этого мало для фейдинга, так что я увеличил их в аудио-редакторе добавил около 3-4 сек в начале и в конце лёгкий тональный фон уменьшив громкость (опытным путём), так чтобы при вещании этот фон не было сильно заметно, и всё стало хорошо работать, таким образом я все свои джинглы- заставки обработал в аудио-редакторе! Теперь всё чётко работает! Удачи!


Спасибо большое! Действительно помогло)

Скажите, а короткие совсем джинглы никак между треками не вставить? Т.е. те, которые 2-3 секунды. Может как то запускать их за секунду до начала запуска следующего трека (до его fade in)

Отредактировано Till - 26.06.2015
53
wisher @wisher
Приветик Till! очень рад что тебе помогло!
Ответ на твой вопрос: Даже если разработать специальный скрипт под джинглы, всё равно ничего не получится...
Почему? Просто изначально саму программу SAM Broadcaster разработали так. чтобы любую тишину в существующих треках вырезать, всё это сделано для плавного перехода от трека к треку чтоб был красивый фейдинг. Я пробовал для тестирования создать джингл с тишиной в файле по 20 сек. в начале и конце и всё равно SAM Broadcaster всю тишину вырезает... Поэтому тебе нужно прибегнуть к выше описанному правилу и добавлять на все короткие джинглы лёгкий тональный фон, только так, иначе не получится! Удачки тебе!

Отредактировано wisher - 29.06.2015
15
Till @Till
wisher пишет:

Приветик Till! очень рад что тебе помогло!
Ответ на твой вопрос: Даже если разработать специальный скрипт под джинглы, всё равно ничего не получится...
Почему? Просто изначально саму программу SAM Broadcaster разработали так. чтобы любую тишину в существующих треках вырезать, всё это сделано для плавного перехода от трека к треку чтоб был красивый фейдинг. Я пробовал для тестирования создать джингл с тишиной в файле по 20 сек. в начале и конце и всё равно SAM Broadcaster всю тишину вырезает... Поэтому тебе нужно прибегнуть к выше описанному правилу и добавлять на все короткие джинглы лёгкий тональный фон, только так, иначе не получится! Удачки тебе!


Привет тебе самый отзывчивый форумчанин :)

Подскажи пожалуйста ещё один момент.

Вот скрипт:

PAL.Loop := True;
PAL.WaitForPlayCount(10);
CAT['Station IDs (All)'].QueueTop(smRandom, NoRules);

Как я понимаю, каждый раз после десятого трека из папки Station IDs (All) будет браться рандомный трек?

Но ведь возможен и такой вариант, что из этой папки 2 раза подряд возьмётся один и тот же трек. Т.е. на радио один и тот же трек повторится через 10 треков... Совсем нехорошо.. Можно это как-то обойти? Заранее большое спасибО!

15
Till @Till
Отвечаю на свой вопрос) NoRules нужно поменять на EnforceRules ;)

2
Psilocybe_Semilancea @Psilocybe_Semilancea
Друзья здравствуйте!! Нид хелп!!! Нужен скрипт который с 08.00 до 22.00 будет дергать джинглы с одной папки, а с 22.00 до 08.00 с другой!!! всю тему просмотрел, не нашел!!!

53
wisher @wisher
Привет Psilocybe.Semilanceata!
В этой теме много чего есть, только нужно кое-что добавить или изменить под себя
вот к примеру самый простой:

var P : TPlayer;
var OldTime : DateTime;

OldTime := Now;

PAL.Loop:=True; // Скрипт будет выполнятся постоянно

/////////////////////////////////// 1 сценарий ///////////////////////////////////////
if (OldTime>=T['08:14:00']) and (OldTime<=T['19:45:00']) then // ежедневно с 8 утра до 20 вечера
begin
cat['1-folder'].QueueTop(smRandom,NoRules); // ставим 1 джингл в начало очереди из ['1-folder']
PAL.WaitForTime(T['+00:30:00']); // задержка 30 минут
end;

/////////////////////////////////// 2 сценарий ///////////////////////////////////////
if (OldTime>=T['20:14:00']) and (OldTime<=T['23:45:00']) then // ежедневно с 20 вечера до 0 ночи
begin
cat['2-folder'].QueueTop(smRandom,NoRules); // ставим 1 джингл в начало очереди из ['2-folder']
PAL.WaitForTime(T['+00:30:00']); // задержка 30 минут
end;
////////////////////////////////// продолжение 2 сценария ////////////////////////////
if (OldTime>=T['00:14:00']) and (OldTime<=T['07:45:00']) then // ежедневно с 0 ночи до 8 утра
begin
cat['2-folder'].QueueTop(smRandom,NoRules); // ставим 1 джингл в начало очереди из ['2-folder']
PAL.WaitForTime(T['+00:30:00']); // задержка 30 минут
end;
////////////////// в итоге получаем трансляцию 2 джинглов каждый час в течении 24 часов ////////////////


названия категорий 1-folder и 2-folder меняем на своё
возможно и ещё что-то придётся скоректировать... Удачки тебе!

Отредактировано wisher - 20.09.2015
54
wwc @wwc
Доброго времени суток...

Интересует скрипт выводящий в WInAmp на подобии скрипта "баннера" информацию о проигрываемой композиции с картинкой.

p.s. Быть может есть у кого-то аналогичный по функционалу код на java воткнуть на сайт ?

Спасибо.

Отредактировано wwc - 24.09.2015