226

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

-

Отредактировано radioplus (13-04-2022 12:25:00)

227

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

Друзья помогите!Я прочитал много тем но так и не нашел ответ!В общем что нужно прописать в PAL скрипте что бы песни играли не в случайном порядке (Random) а по порядку (1-20) выручайте!

228

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

Нашёл скрипт  времени с новостями (или тем что вам захочется)

var strFile, strPath : String;
var P,F : Tplayer;

strPath := 'd:\RADIO\Clock\';

PAL.Loop:=True;
PAL.WaitForTime('XX:59:50');
PAL.LockExecution;
strFile := strPath + FormatDateTime('hh', now+1/24) + '-00.mp3';
Case strFile Of
'd:\RADIO\Clock\07-00.mp3' : Begin
                                  If (DayOfWeek(Now) = Sunday) Or (DayOfWeek(Now) = Monday) then
                                  Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop)
                                  Else
                                  Queue.AddFile('d:\RADIO\news\новость 20.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\08-00.mp3' :  Begin
                                  If (DayOfWeek(Now) = Sunday) Or (DayOfWeek(Now) = Monday) then
                                  Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop)
                                  Else
                                  Queue.AddFile('d:\RADIO\news\новость 20.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\09-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\гороскоп.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\11-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\гороскоп.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\12-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\новость 12.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\13-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\новость 12.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\15-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\новость 15.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\16-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\новость 15.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\18-00.mp3' :  Begin
                                  Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\19-00.mp3' :  Begin
                                  If (DayOfWeek(Now) <> Sunday) AND (DayOfWeek(Now) <> Saturday) then
                                  Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop);
                                  Queue.AddFile(strFile, ipTop);
                                  Aux1.QueueSong(Queue.NextInQueue);
                                  If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
'd:\RADIO\Clock\20-00.mp3' :  Begin
                                   If (DayOfWeek(Now) = Sunday) Or (DayOfWeek(Now) = Saturday) then
                                   Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop)
                                   Else
                                   Queue.AddFile('d:\RADIO\news\новость 20.mp3', ipTop);
                                   Queue.AddFile(strFile, ipTop);
                                   Aux1.QueueSong(Queue.NextInQueue);
                                   If DeckA.Status = psPlaying then
                                                                  Begin
                                                                       DeckB.QueueSong(Queue.NextInQueue);
                                                                       DeckA.FadeToPause;
                                                                       F := DeckA;
                                                                       P := DeckB;
                                                                       Aux1.FadeToPlay;
                                                                   End
                                                               Else
                                                                   Begin
                                                                         DeckA.QueueSong(Queue.NextInQueue);
                                                                         DeckB.FadeToPause;
                                                                         F := DeckB;
                                                                         P := DeckA;
                                                                         Aux1.FadeToPlay;
                                                                    End;

                              End;
Else
     Begin
     Queue.AddFile(strFile, ipTop);
     If DeckA.Status = psPlaying then
                                      Begin
                                            Aux1.QueueSong(Queue.NextInQueue);
                                            DeckA.FadeToPause;
                                            P := DeckA;
                                            F := DeckB;
                                            Aux1.FadeToPlay;
                                        End
                                   Else
                                       Begin
                                             Aux1.QueueSong(Queue.NextInQueue);
                                             DeckB.FadeToPause;
                                             P := DeckB;
                                             F := DeckA;
                                             Aux1.FadeToPlay;
                                        End;
    End;
End;
PAL.UnlockExecution;
PAL.WaitForTime('+00:00:09');
P.FadeToPlay;
If P.Status <> psPlaying then F.Play
Else F.QueueSong(Queue.NextInQueue);

229

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

пишет LAZ2735:

Нашёл скрипт  времени с новостями (или тем что вам захочется)

Спасибо за скрипт,давно искал...:)

Первая сумская интернет радиостанция "LIVE" - http://www.radiolive.sumy.ua

230

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

Может подскажет кто, как реализовать подобное для Sound FX?
Перед проигрыванием Sound FX - убавление громкости играющей деки, после проигранного Sound FX, возвращение громкости обратно. Пытался вставить из этого примера, работает только изначальное снижение громкости, но как только запускается наложение Sound FX (код ниже), то громкость резко возвращается на исходную,
То есть по сути, не выходит нормально сделать тайм ожидания, для возвращения громкости.
Исходное

var Song : TSongInfo;
var P : TPlayer;
PAL.Loop := True; 
PAL.WaitForTime('+00:05:00');
P := SoundFX;
if P <> nil then
begin
Song := CAT['Sound FX (All)'].ChooseSong(smRandom,NoRules);
if Song <> nil then
begin
P.QueueSong(Song); //
P.Play;
end;
end;

То, что пытался сляпать (ибо не варю пока в pal)

var Song : TSongInfo;
var P : TPlayer;
var i : integer;
PAL.Loop := True; 
i := ActivePlayer.GetVolume;
PAL.WaitForTime('+00:05:00'); 
ActivePlayer.Volume := i - 40;
ActivePlayer.Volume := i - 80;
ActivePlayer.Volume := i - 120;
ActivePlayer.Volume := i - 160;
P := SoundFX;
if P <> nil then
begin
Song := CAT['Sound FX (All)'].ChooseSong(smRandom,NoRules);
if Song <> nil then
begin
PAL.WaitForTime('+00:00:10');
ActivePlayer.Volume := i - 160;
ActivePlayer.Volume := i - 120;
ActivePlayer.Volume := i - 80;
ActivePlayer.Volume := i - 40;
ActivePlayer.Volume := i;
P.QueueSong(Song);
P.Play;
end;
end;

Как и куда только не вставлял PAL.WaitForTime с возвратом громкости, но результата не удалось получить. Как только стартует наложение Sound FX, громкость просто резко возвращается.
Помогите подправить в работоспособный вариант... (может уже было решение где-то этой проблемы, не удалось найти)

231

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

пишет JamStyle:

пишет LAZ2735:

Нашёл скрипт  времени с новостями (или тем что вам захочется)

Спасибо за скрипт,давно искал...:)

Опишите пожалуйста подробнее, что это за СКРИПТ ВРЕМЕНИ С НОВОСТЯМИ? Как он применяется и для чего он нужен.

232

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

UP. Помогите, ребятушки.

233

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

пишет Render:

UP. Помогите, ребятушки.

Для тех кто в танке, громкость для активного плеера ActivePlayer.Volume и не каким макаром не влияет на SoundFX
Соответственно меняй ActivePlayer на SoundFX, хоть немного думай.

Отредактировано KyPIIaToB (10-02-2012 12:40:14)

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

234

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

пишет KyPIIaToB:

пишет Render:

UP. Помогите, ребятушки.

Для тех кто в танке, громкость для активного плеера ActivePlayer.Volume и не каким макаром не влияет на SoundFX
Соответственно меняй ActivePlayer на SoundFX, хоть немного думай.

Видимо не совсем правильно объяснил, мне и не нужно влиять на громкость SoundFX.
Нужно всего лишь перед запуском звука из SoundFX, снижать громкость ActivePlayer, во время выполнения SoundFX (наложения), громкость ActivePlayer - всё так же должна оставаться на сниженном уровне, то есть некий timewait, пока проигрывается звук SoundFX и затем после окончания некого timwait равного к примеру 5 секундам, возвращение громкости ActivePlayer в предыдущее положение.
Повторюсь, начало - работает, как нужно. То есть громкость снижается на ActivePlayer перед запуском SoundFX, но вот дальше...
Как только стартует наложение звука, громкость резко возвращается назад и как сделать, чтобы даже во время наложения, бегунок громкости на ActivePlayer оставался на том же месте и ждал своего "прихода", мне не известно.

Если совсем на простом языке, то:
Играет трек.
В какой-то момент, громкость трека уменьшается где-то на 50%
Сверху накладывается какой-то звуковой эффект (причём громкость трека всё так же 50%)
По окончании наложения, возврат громкости трека на предыдущее значение.

Фуф. Вроде так neutral

235

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

if Song <> nil then
begin
P.QueueSong(Song);
P.Play;
PAL.WaitForTime('+00:00:10');
ActivePlayer.Volume := i - 160;
ActivePlayer.Volume := i - 120;
ActivePlayer.Volume := i - 80;
ActivePlayer.Volume := i - 40;
ActivePlayer.Volume := i;
end;

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

236

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

Falcon, спасибо, но немного не то, так тоже пробывал уже.
KyPIIaToB, тоже спасибо за направление почти на путь истинный.
В итоге удалось достичь результата таким безобразием. Может кому-то пригодится.

var Song : TSongInfo;
var P : TPlayer;
var i : integer;
PAL.Loop := True;
i := ActivePlayer.GetVolume;
PAL.Loop := True; 
PAL.WaitForTime('+00:05:59'); 
ActivePlayer.Volume := i - 20;
ActivePlayer.Volume := i - 40;
ActivePlayer.Volume := i - 60;
ActivePlayer.Volume := i - 70;
P := SoundFX; 
if P <> nil then
begin
Song := CAT['Sound FX (All)'].ChooseSong(smRandom,NoRules);
if Song <> nil then
begin
P.QueueSong(Song); //
P.Play;
end;
end;
PAL.WaitForTime('+00:00:05');
ActivePlayer.Volume := i

237

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

Обнаружил прикольный скрипт, который озвучивает название трека с помощью ranslate.google.com
Видео примера можно глянуть тут http://www.youtube.com/watch?v=zN25zVBN … re=related

Создаем категорию nu , туда помещаем c:\test\nu.mp3
Ну это как пример конечно же

    PAL.Loop := True ;

        var verzoek, song : TSongInfo;
        var map, almost, ready : string ;

        Song := ActivePlayer.GetSongInfo;

        if (Song['songtype'] = 'J') then
            begin
                PAL.WaitForTime('+00:00:10');
            end
        else
         Song.Free;
            Song := ActivePlayer.GetSongInfo;

            map :=  'c:\test\nu.mp3' ;
            verzoek := CAT['nu'].ChooseSong(smRandom, NoRules) ;

            almost := 'Now Playing.'+Song['artist']+'. with.'+Song['title']+'.' ;
            ready := URLEncode(almost) ;

            WebToFile(map,'http://translate.google.com/translate_tts?tl=en&q='+ready) ;

            Aux2.QueueSong(verzoek);
            Aux2.Play;

            PAL.WaitForPlayCount(1) ; 

Источник http://broadcasterforum.nl/viewtopic.ph … 929#p24862

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

238

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

Я совсем новичок в етом деле так что прошу строго не судить. Скажите как PAL скриптом сохранить в файл содержимое Queue???
И просветите меня, есть ли какая-нибуть документация по PAL скриптам???

239

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

http://support.spacialaudio.com/wiki/PAL_Scripts
http://support.spacialaudio.com/wiki/PA … anguage%29

240

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

Спасибо.
А по русски нет ничего подобного??

241

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

по русски гугл переводчик ))

242

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

Ребят, просмотрел тему. не нашел...
Какая команда отвечает за кол-во треков в Queue?
Мне надо, сделать условие if Queue.Size(например)='1' then и поехали smile

243

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

Queue.Count

244

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

Благодарю!

245

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

PAL.Loop := True;
if (Queue.Count < 3) then
  begin
  SubDir['C:\Users\Administrator\Downloads\music'].QueueBottom(smLemmingLogic, EnforceRules);
  SubDir['C:\Users\Administrator\Downloads\music2'].QueueBottom(smLemmingLogic, EnforceRules);
  end;
PAL.WaitForPlayCount(3);
  

Вставил в pal файл, сохранил, вставил в сэм, проверяю в режиме правки кода в сэме, все срабатывается, если в queue больше 3 треков, то ждет 3 трека, затем повторяет и если меньше, то добавляет... жму окей, выключаю-включаю скрипт через блок PAL scripts, он выполняется независимо сколько треков в queue, все равно добавляет треки из папок, чего не так!?!?!'

зы Разобрался, не актуально

Отредактировано Leff27 (05-05-2012 14:19:23)

246

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

Как можно узнать сколько осталось до конца песни и если менее 3-х секунд пустить лайнер в aux?
типо

if (DeckA.Time = 3) or (DeckB.Time = 3)  then
begin
Aux.Play(...);
Глушим в деках звук до 20%;
Высчитываем длину трека в Aux(который играет);
time = длина_трека_aux - 3;
WaitForTime(+time);
Возвращаем звук в деках...
end;

Можно такое натворить?))

247

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

если нет нужных переменных в pal то можно через базу взять эти переменные
http://support.spacialaudio.com/wiki/PA … anguage%29

248

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

пишет Leff27:

Как можно узнать сколько осталось до конца песни и если менее 3-х секунд пустить лайнер в aux?
типо

if (DeckA.Time = 3) or (DeckB.Time = 3)  then
begin
Aux.Play(...);
Глушим в деках звук до 20%;
Высчитываем длину трека в Aux(который играет);
time = длина_трека_aux - 3;
WaitForTime(+time);
Возвращаем звук в деках...
end;

Можно такое натворить?))

ActivePlayer.Duration вот так узнаем время трека.

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

249

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

Интересует подобное решение, может кто осилит подсказать, реально или нет такое сделать и если реально, пример не помешал бы.
Примерные действия:
-  указывается переменной директория для сканирования
-  сканирование всех треков из этой директории, высчитывание bpm (есть подобная кнопка если смотреть инфо о треке в sam)
-  сохранение bpm каждого трека (рекурсивно), можно как в сами файлы, в id-теги, так и в бд (в моём случае fb).
В конечном результате должно быть так, чтобы можно было просмотреть в инфо о треке и его bmp был уже известен, без нажатия на эту кнопку.
Были бы широкие познания в pal, да и вообще в sam, не задавался бы таким вопросом. hmm

250

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

Приветствую )
Есть мысль автоматизировать весь процесс радио вещания, ну что касательно записей...
Создан шаблон расписания, по рубрикам к примеру, соответственно к каждой рубрике привязана папка с mp3 файлами. Так вот есть ли такой скрипт, что бы в определенное время SAM загружал файлы из определенной папки и рандомом естественно.. ?

Отредактировано Ramalinga (15-05-2012 11:07:31)