Met PAL voor een artiest een bepaalde track afspelen kan dat

Voor vragen over Playlist Automation Language.
Plaats reactie
Radionerd

Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Radionerd »

Hallo,

Ik heb een aantal liners van Artiesten (bijv. Ik ben Roel van Velzen en jij luistert naar BEST FM!) die zou ik graag standaard voor de liedjes gooien van Van Velzen. Is het mogelijk standaard een liner voor een liedje te gooien van een bepaalde artiest? Dat zou ik erg leuk vinden. Als iemand me hierbij kan helpen zou erg mooi zijn, want dit zou mijn zender echt verbeteren...!
Gebruikersavatar
Gerrit
Moderator
Berichten: 883
Lid geworden op: 16 nov 2008, 00:08
SAM-versie: 2018.7
Database: MySQL
Windows: 10
Locatie: Veenendaal
Contacteer:

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Gerrit »

Gewoon ff in CoolEdit of een soortgelijk programma ervoor plakken en "klaar is kees" !

Gerrit.
Vroeger was ik een twijfelaar, ik ben daar nu niet meer zo zeker van.
en
Ik houd van kritiek, maar ik moet het er wel mee eens zijn.
Radionerd

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Radionerd »

Gerrit schreef:Gewoon ff in CoolEdit of een soortgelijk programma ervoor plakken en "klaar is kees" !

Gerrit.
Bedankt, maar kan het ook met een PAL? Ik laat mijn muziekbestanden het liefst ongeroerd... Wel fijn dat je meedenkt!
Radionerd

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Radionerd »

Helaas heeft nog niemand mij kunnen helpen, hier iets wat dit misschien makkelijker maakt. Alle liedjes van dezelfde artiest staan in 1 bestandsmap. Is het dan makkelijker mogelijk om voor een bepaald liedje uit een bepaalde map een liner te draaien?

Hoop dat iemand mij kan helpen!

Albert
Gebruikersavatar
Gerrit
Moderator
Berichten: 883
Lid geworden op: 16 nov 2008, 00:08
SAM-versie: 2018.7
Database: MySQL
Windows: 10
Locatie: Veenendaal
Contacteer:

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Gerrit »

Zoiets heb ik wel voor je :

Code: Selecteer alles

PAL.Loop:=True;
PAL.WaitForTime('XX:03:30');
Queue.Clear; 
QueUe.AddFile('E:\AlarmSchijf.mp3',iptop);
QueUe.AddFile('E:\Jingle voor Alarmschijf.mp3',iptop);
ActivePlayer.FadeToNext;
En dit kun je dan meerdere malen met verschillende artiesten en tijden mee laten draaien !
FF de tijd invullen wanneer je hem wilt draaien en de verwijzing even veranderen !!

Suc6, Gerrit.
Vroeger was ik een twijfelaar, ik ben daar nu niet meer zo zeker van.
en
Ik houd van kritiek, maar ik moet het er wel mee eens zijn.
Radionerd

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Radionerd »

Gerrit schreef:Zoiets heb ik wel voor je :

Code: Selecteer alles

PAL.Loop:=True;
PAL.WaitForTime('XX:03:30');
Queue.Clear; 
QueUe.AddFile('E:\AlarmSchijf.mp3',iptop);
QueUe.AddFile('E:\Jingle voor Alarmschijf.mp3',iptop);
ActivePlayer.FadeToNext;
En dit kun je dan meerdere malen met verschillende artiesten en tijden mee laten draaien !
FF de tijd invullen wanneer je hem wilt draaien en de verwijzing even veranderen !!

Suc6, Gerrit.
Dank je werkt goed!!
ojee66

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door ojee66 »

Code: Selecteer alles

var Q                    : TDataSet;
var Song, Liner, nowSong : TSongInfo;
var MustCheck: Boolean = True;
var i,j,current    : Integer;
var hh,mm,ss,ms      : Integer;
var MustPlay         : Boolean;
var StayInLoop       : Boolean;
var nextName,nextArtist   : String;
var nextFile,tempStr : String;
var nextTime         : Integer = 0;
var followingType    : String;
var remainTime       : Integer;
var aPlayer, iPlayer : TPlayer;
var linerTime        : Integer = 0;
var startFade        : Integer;
var Spinner          : Integer;
var linerPlay        : DateTime;
var delayString      : String = '+00:00:01';
var Waiting : Boolean = True;
var Intro : Integer = 0;
var duration : Integer = 0;
var GetDuration : Integer = 0;

const MIN_LENGTH = 60*1000; //60 seconds
const LINERS_CATEGORY = 'ArtistJingle';
const MIN_WAIT  = '+00:07:00'; //Wait 07 minutes between liners



PAL.Loop := True; 

PAL.LockExecution;
// Declare variables 
var theArtistInQueue, theCountSongs, theSongChooser : TDataSet; 

WriteLn('Starting Jingles Script...'); 
WriteLn(''); 

// Choose a random song while enforcing the rules and put in queue bottom 
CAT['Italo'].QueueBottom(smRandom, noRules);

// Let's find out the artist and songid we just put in the queue 
theArtistInQueue := Query('select TOP 1title, artist, songID, queuelist.id as queueID ' + 
'.id as queueID ' +
'from songlist, queuelist ' +
'where songlist.id = queuelist.songID '+
'order by queueID asc',[],True);

//Get the category of the upcoming song.
Q := Query('SELECT category.name, songlist.filename, ' +
           'songlist.duration, artist, queuelist.songID, songlist.songtype ' +
           'FROM category, categorylist, songlist, queuelist ' +
           'WHERE (songlist.ID = categorylist.songID) ' +
           'AND (songlist.ID = queuelist.songID) ' +
           'AND (categorylist.categoryID = category.ID) ' +
           'ORDER BY queuelist.sortID ASC',[],True);
Q.First;
if not Q.IsEmpty then
  begin
    nextName := Q['name'];
    nextFile := Q['filename'];
    nextArtist := Q['artist'];
    nextTime := Q['duration'];
    WriteLn('Playing Next Category: ' + nextName );
    WriteLn('Playing Next File: ' + nextFile );
    WriteLn('Playing Next Artist: ' + nextArtist );
    WriteLn('Duration: ' + IntToStr(nextTime) );
    WriteLn('xfade='+Q['xfade']);
  end;

WriteLn('');
WriteLn('Looking for Jingles for: ' + QuotedStr(Q['artist']));
WriteLn('Looking for Jingles for songid : ' + IntToStr(Q['songID']) );
WriteLn('');

// Let's get a count of the remaining jingles by this artist 
theCountSongs := Query('select count(*) as cnt' + 
' from songlist' + 
' where id <> ' + IntToStr(Q['songID']) +
' and songtype = ''J'' ' +
' and artist = ' + QuotedStr(Q['artist']) +
' and artist <>  ''jingle'' ' ,[],True);

WriteLn('There are ' + IntToStr(theCountSongs['cnt']) + ' jingles to choose from'); 
WriteLn(''); 

if (theCountSongs['cnt'] = 0) then
begin 
WriteLn('ZERO jingles to choose from!'); 
end
else
if (QuotedStr(Q['artist']) = ' jingle') then
begin
WriteLn('A jingle doesn t have to be presented!');
end
else
begin 
WriteLn('Choosing random jingle...'); 
// Choose a random jingle from the remaining songs by this artist 
theSongChooser := Query('select filename' +
' from songlist' + 
' where id <> ' + IntToStr(Q['songID']) +
' and songtype = ''J'' ' +
' and artist = ' + QuotedStr(Q['artist']) +
' and artist <>  ''jingle'' ' +
' order by rand()',[],True); 

// Put random jingle in queue top 
// Queue.AddFile(theSongChooser['filename'],ipTop);


{Step1: Queue up the deck, ready for play}
Liner := CAT[LINERS_CATEGORY].ChooseSong(smRandom,NoRules);
if (Liner=nil) then
WriteLn('No valid liner found')
else if (not Aux1.QueueSong(Liner)) then
 WriteLn('Failed to queue song: '+Liner['filename']);

    {Start playing the liner if the current song matches our rules}
    if(Song['songtype']='S') and (duration>=MIN_LENGTH) then
     begin
      Aux1.Play;
      Waiting := False;
     end;
    Song.Free; Song := nil;

WriteLn('Added: ' + QuotedStr(Q['artist']));
 WriteLn(' ' + QuotedStr(Q['title']));
WriteLn(''); 

// Be nice... Free up the data structures 
theSongChooser.Free; 
theArtistInQueue.Free; 
theCountSongs.Free; 
end; 
PAL.UnlockExecution;
PAL.WaitForTime(MIN_WAIT);
PAL.WaitForPlayCount(1);





{................................................}
function ExtractIntro(Song : TSongInfo):Integer;
var
 P : Integer;
 XFade : String;
begin
 Result := -1;
 XFade := Trim(Song['xfade']);

 WriteLn('Decoding XFade string');
 WriteLn('XFade: '+XFade);

 if XFade = '' then
  Result := -1
 else
  begin
   P := Pos('&i=',XFade);
   if (P > 0) then
    begin
     Delete(XFade,1,P+2);
     P := Pos('&',XFade);
     if (P>0) then
      Delete(XFade,P,Length(XFade));

     Result := StrToIntDef(XFade,-1);
     WriteLn('Intro time detected: '+XFade);
    end;
  end;
end;

{--------------------------------------------------}




Zocht je zoiets???? :)

Was alleen iets met de naam van je jingle of de tag van de mp3 ????
De artiestnaam moet exact hetzelfde zijn als je plaatje tag artiestnaam ... eeeh als ik het mij goed herinnerde. Je kon zelfs meerdere artiest jingles (van 1 artiest) opnemen hij pikt er dan random 1 uit
Guus

Re: Met PAL voor een artiest een bepaalde track afspelen kan dat

Ongelezen bericht door Guus »

kiss regel?
keep it simpel stupid..
gewoon partij jingels maken die in een categorie zetten plaatjse (mp3s) van de artiest ook even in een aparte map en cat egorie dan random in beide mappen laten zoeken op het gewenste tijdstip in PAL en dan heb je presies hetzelfde met tig keer minder regels.. denk ik zo en afwisselende jingels.. 8)
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht