Leuke PAL!

Voor vragen over Playlist Automation Language.
Gebruikersavatar
Eagle 1974
****
Berichten: 82
Lid geworden op: 02 okt 2011, 08:34
SAM-versie: 4.2.2.*
Database: MySQL 5.0
Windows: 7 64-bits
Locatie: Delft

Re: Leuke PAL!

Ongelezen bericht door Eagle 1974 » 27 mar 2012, 19:22

zal ik straks ff proberen zodra de dj klaar is die nu draait

edit
net getest,
PAL.LockExecution; & PAL.UnLockExecution uitgezet dmv //
heeft niet het gewenste effect,(herhaalt nog steeds een eerdere versie gesproken tekst)

Gebruikersavatar
Eagle 1974
****
Berichten: 82
Lid geworden op: 02 okt 2011, 08:34
SAM-versie: 4.2.2.*
Database: MySQL 5.0
Windows: 7 64-bits
Locatie: Delft

Re: Leuke PAL!

Ongelezen bericht door Eagle 1974 » 28 mar 2012, 22:55

Eeerst wilde hij het mp3 bestandje niet vervangen
nu vervangt hij hem wel maar....
Werkt de play knop niet mee van aux2,
hij geeft wel commando play maaraux2 gaat dan op pauze staan.

Code: Selecteer alles

PAL.Loop := True;
WriteLn('Nieuw nummer gestart');
PAL.LockExecution;
var verzoek, song : TSongInfo;
var map, almost, ready : string ;
Song := TSongInfo.Create;
WriteLn('Controleren of het een verzoekje is');
if ((ActivePlayer.GetSongInfo['requestID']) = 0) then WriteLn('Nummer is geen verzoekje');
if ((ActivePlayer.GetSongInfo['requestID']) > 0) then
  Begin
    WriteLn('Nummer is verzoekje');
    var reqInfo : TDataSet = Query('SELECT name, msg FROM requestlist WHERE id = ' + 

ActivePlayer.GetSongInfo['requestID'], [], true);
    var Requested_by : String = reqInfo['name'];
    var Dedication_Message : String = reqInfo['msg'];
    reqInfo.Free;

    If (Requested_by = '') then Requested_by := 'Anonymous';
    If (Dedication_Message = '') then Dedication_Message := 'Nothing...';

    If ((Requested_by = 'Anonymous') and (Dedication_Message = 'Nothing...')) then
      Begin
        WriteLn('Verzoekje');
        WriteLn(Requested_by);
        WriteLn(Dedication_Message);
        Song['artist'] := ActivePlayer.GetSongInfo['artist'] + ' - ' + 

ActivePlayer.GetSongInfo['title'];
        Song['title'] := '~Verzoekje~';
        Encoders.SongChange(Song);
      End
    else
      Begin
        WriteLn('Verzoekje met tekst');
        WriteLn(Requested_by);
        WriteLn(Dedication_Message);
        Song['artist'] := ActivePlayer.GetSongInfo['artist'] + ' - ' + 

ActivePlayer.GetSongInfo['title'];
        Song['title'] := 'Aangevraagd door ' + Requested_by + ' : Voor wie ? : ' + 

Dedication_Message + ' !';
        Encoders.SongChange(Song);

        Song := ActivePlayer.GetSongInfo;

        map :=  'g:\pal script\lol\test\nu.mp3' ;
        DeleteFile(map); //deze regel zorgt ervoor dat mp3 gewist wordt.
        verzoek := CAT['nu'].ChooseSong(smRandom, NoRules) ;

        almost :=  'Aangevraagd door ' + Requested_by + '  Voor  ' + Dedication_Message ;
        ready := URLEncode(almost) ;

        WebToFile(map,'http://translate.google.com/translate_tts?tl=nl&q='+ready) ;
        WriteLn(almost);
        WriteLn(ready);
        Aux2.QueueSong(verzoek);
        Aux2.Play;

      End;
    End;

PAL.UnlockExecution;
WriteLn('Klaar');

Song.Free;

WriteLn('Wachten tot het volgende nummer draait');
PAL.WaitForPlayCount(1);
zonder die regel ''DeleteFile(map);'' speelt hij hem wel af maar dan oude mp3 en niet de nieuwe, met die regel wordt de mp3 wel vervangen maar niet gespeelt.
ik weet het ff niet meer wat er fout kan zijn.

Gebruikersavatar
gert-jan221
*
Berichten: 17
Lid geworden op: 04 feb 2012, 17:52
SAM-versie: 4.9.0.*
Database: MySQL 5.0
Windows: 7 64-bits

Re: Leuke PAL!

Ongelezen bericht door gert-jan221 » 31 mar 2012, 10:13

kun je ook iets aanpassen dat deze PAL ook mischien de muziek dempt ofz? anders is het niet te vertaan!! :D :D :D

Gebruikersavatar
gert-jan221
*
Berichten: 17
Lid geworden op: 04 feb 2012, 17:52
SAM-versie: 4.9.0.*
Database: MySQL 5.0
Windows: 7 64-bits

Re: Leuke PAL!

Ongelezen bericht door gert-jan221 » 31 mar 2012, 23:21

gert-jan221 schreef:kun je ook iets aanpassen dat deze PAL ook mischien de muziek dempt ofz? anders is het niet te vertaan!! :D :D :D
ik heb iets gevonden:

Code: Selecteer alles

V := activeplayer.volume ;

Code: Selecteer alles

activeplayer.volume := ( V div 2 ) ;

Code: Selecteer alles

activeplayer.volume := V ;
zou iemand dit kunnen invoegen??? ik heb zelf namelijk geen verstand hiervan [smilie=no.gif] [smilie=no.gif]

Robert
****
Berichten: 92
Lid geworden op: 19 dec 2008, 11:29
SAM-versie: SAM 2014.5
Database: MySQL 5.0
Windows: 7 64-bits
Locatie: Loon op Zand

Re: Leuke PAL!

Ongelezen bericht door Robert » 09 apr 2012, 12:23

Ben ook al bezig geweest maar nog niet met het juiste resultaat, zijn er nog meer meedenkers ?

ojee66
******
Berichten: 224
Lid geworden op: 20 jul 2006, 21:42
SAM-versie: 4.2.2.*
Database: MySQL 4.1
Windows: 2000
Locatie: Waddinxveen
Contacteer:

Re: Leuke PAL!

Ongelezen bericht door ojee66 » 09 apr 2012, 15:45

Code: Selecteer alles

PAL.Loop := True ;
var volume, flag : Integer;
    var D : DateTime;
       D := T['XX:59:59'];
         var verzoek, song1 : TSongInfo;
        var map, almost, ready, title, artist : string ;
    repeat
        if Now < D then

        Song1 := ActivePlayer.GetSongInfo;

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

            map :=  'y:\jingles\request\nu.mp3' ;
            verzoek := CAT['nu'].ChooseSong(smRandom, NoRules) ;
artist := Song1['artist'];
title := Song1['title'];
            
title := StringReplace(title,'(', '', true);
title := StringReplace(title,')', '', true);
title := StringReplace(title,'[', '', true);
title := StringReplace(title,']', '', true);
title := StringReplace(title,'12inch', '', true);
title := StringReplace(title,'"', '', true);
artist := StringReplace(artist,'vs', 'versus', true);
artist := StringReplace(artist,'ft', 'featering', true);
artist := StringReplace(artist,'feat', 'featering', true);
            
            

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

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

  // Wait for SAM to add the next song to queue
PAL.LockExecution;
  // Define max volume
  volume := 300;

  // Set JinglePlayer to have the same max volume
  Aux2.Volume := volume;

  // reduce Volume for the time the Jingle Overlay plays
  DeckA.Volume := volume div 3;
  DeckB.Volume := volume div 3;
  Aux2.Play;
PAL.UnlockExecution;
  // LOCK OFF (Again don't lock while waiting)

  WHILE NOT (Aux2.status = psReady) DO
  BEGIN
    flag := 2;
  END;
  // LOCK ON
  PAL.LockExecution;
  // Reset the volume to normal level once jingle is finished
  DeckA.Volume := volume;
  DeckB.Volume := volume;
  PAL.UnlockExecution;


            PAL.WaitForPlayCount(1) ; 
            
                until Now > D;

    PAL.WaitForTime(T['XX:15:20']);


Gebruikersavatar
Radio Europe
***
Berichten: 64
Lid geworden op: 15 apr 2008, 01:02
SAM-versie: 4.9.0.*
Database: MySQL 5.1
Windows: XP

Re: Leuke PAL!

Ongelezen bericht door Radio Europe » 25 sep 2015, 00:26

Is deze pal nog actief eigelijk.
Heb het geprobeerd, maar zonder effect .
Aux2 speelt wel de mp3 af, maar is leeg.

Nico

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Leuke PAL!

Ongelezen bericht door Wout » 27 sep 2015, 09:09

Radio Europe schreef:Is deze pal nog actief eigelijk.
Heb het geprobeerd, maar zonder effect .
Aux2 speelt wel de mp3 af, maar is leeg.
Inderdaad, het werkt niet meer.
Zal eens onderzoeken waar het aan ligt, ik vermoed bij Google.
Afbeelding

ONLY JD
Beginnende SAM-gebruiker
Berichten: 2
Lid geworden op: 21 jul 2014, 21:58
SAM-versie: 4.2.2.*
Database: Geen Database
Windows: 8

Re: Leuke PAL!

Ongelezen bericht door ONLY JD » 09 mar 2016, 20:11

Misschien een stomme vraag van mij, maar waar moet ik dat CAT aanmaken, of instellen....?

alvast bedankt #beginnendepalscript lezer en maker

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Leuke PAL!

Ongelezen bericht door Wout » 09 mar 2016, 20:29

ONLY JD schreef:Misschien een stomme vraag van mij, maar waar moet ik dat CAT aanmaken, of instellen....?

alvast bedankt #beginnendepalscript lezer en maker
De PAL wekt niet meer. Google heeft de text to speech geblokkeerd.
Afbeelding

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Leuke PAL!

Ongelezen bericht door Wout » 08 jan 2017, 16:13

Ik dwarrel wat rond in mijn oude archief en vond mijn oude PAL.
Nadat ie ook op Spacial stond heb ik weer werkend gemaakt met de nieuwe aanpassing erin van andere user.

Om hem werkend te krijgen moet je even registreren bij http://www.voicerss.org/personel/ voor een api-sleutel.
De sleutel verander je bij 'api-sleutel' in de PAL.

Code: Selecteer alles

{ ******************************************************************************

With apologies and acknowledgement to the original writer of this PAL Script,
when I came across this script there was no mention of who wrote it.

I hope my additions add functionality in the manner the script was written.

********************************************************************************}

PAL.WaitForPlayCount(1);          // Change the number of tracks between announcements here
PAL.WaitForTime('+00:00:10') ; // wacht 10 seconden voordat het spreekt 
PAL.LockExecution;                // Lock Execution to speed up the script running
PAL.Loop := True;                 // Loop the PAL Script

// Declare Variables

var MyStation : string;
var StationTag : string;
var announcement, song : TSongInfo;
var map, almost, ready : string ;
var myDate : DateTime;
var addTime : DateTime;
var volume, duration, min, sec, ms : Integer;
var timeoffset : Integer = 0;
var MyTime : DateTime = Now;
var MyHour, MyMin, MySec, MyMSec, MyNow : Integer;
var MyHour1, MyMin1, MySec1, MyMSec1, MyNow1 : String;
var MyTime2 : string;
var Variety : integer;
//api from website http://www.voicerss.org/personel/
var api : string = 'api-sleutel' ;

volume := Aux2.Volume;
announcement := TSongInfo.Create;
map :=  'c:\test.mp3';

MyStation := 'radio wout fm';    // Insert your station name here
StationTag := 'you control the music'; // Insert your station tag line here

DecodeTime(MyTime, MyHour, MyMin, MySec, MymSec);   //Decodes the time into the respective parts

MyHour1 := FloatToStr(MyHour);    // Converts the decoded time from integers into strings
MyMin1 := FloatToStr(MyMin);
MySec1 := FloatToStr(MySec);

if Length(MyMin1) = 1 then
  MyMin1 :='0'+FloatToStr(MyMin); // Checks for a single number minute and adds a zero

MyTime2 := MyHour1+' '+MyMin1;    // Inserts a space (pause) between the time segments
Variety := RandomInt(5);          // Generates a random number which is used to randomize the link output in the CASE selection below

announcement['xfade'] := '&fie=0&foe=0&xf=0';

Song.Free;
Song := ActivePlayer.GetSongInfo;

announcement['filename'] := map;

CASE Variety OF                 // Play the announcement based on the contents of the integer Variety
0 : almost := 'You are listening to,'+Song['title']+'. by '+Song['artist'];
1 : almost := 'This is,'+Song['title']+'. from '+Song['artist']+'.  On '+MyStation;
2 : almost := 'You are listening to,'+Song['title']+'. by '+Song['artist']+'.  On '+MyStation+'.   It is,'+MyTime2;
3 : almost := 'Just for you,'+Song['title']+'. from '+Song['artist']+'.  On '+MyStation+'.   It is,'+MyTime2+' and '+MySec1+' seconds';
4 : almost := 'You are listening to,'+Song['title']+'. by '+Song['artist']+'.  On '+MyStation+'. '+StationTag;
5 : almost := 'You are enjoying,'+Song['title']+'. from '+Song['artist']+'.  On '+MyStation;
END;

ready := URLEncode(almost) ;

WebToFile(map,'http://api.voicerss.org/?key='+api+'&hl=en-us&f=44khz_16bit_stereo&c=mp3&src='+ready);

if FileExists(map) then
begin
   Aux2.QueueSong(announcement);
   duration := Aux2.Duration;
   if duration < timeoffset then
     timeoffset := 0;
   duration := duration-timeoffset;

   ActivePlayer.Volume := 100;   // Lower the Active Player Volume to overlay the soundbyte
   Aux2.Volume := 350;          // Raise the Axillary Player Volumes
   Aux2.Play;

   while duration > 999 do
   begin
      Inc(sec, 1);

      if sec > 59 then
        begin
         Inc(min, 1);
         sec := 0;
        end;
      duration := duration - 1000;
   end;

   ms := duration;

   myDate := Now;
   addTime := EncodeTime(0, min, sec, ms);
   myDate := Now + addTime;
   PAL.WaitForTime(myDate);
end;

PAL.UnLockExecution;
ActivePlayer.Volume := 250;   //Return the volume of the Active Player to the previous level

if FileExists(map) then       //Delete the previously used soundbyte
  DeleteFile(map);
announcement.Free;
Aux2.Volume := volume;        // Return the Axillary Player Volume to the previous level
 
Afbeelding

Plaats reactie