nummer aankondiging

Voor vragen over Playlist Automation Language.
Plaats reactie
dirkafm
**
Berichten: 25
Lid geworden op: 21 jun 2009, 13:25

nummer aankondiging

Ongelezen bericht door dirkafm » 01 dec 2009, 20:08

Bij SLAMFM hoor ik heel vaak tijdens het reclame blok " zometeen op slamfm: (en dan een sample van de track)". Is het mogelijk dat een PAL script gewoon het komende uur inplant, maar tijdens de reclame de link legt tussen een zo'n sample en de plaat na het nieuws? En die sample dan ook in het reclame blok zet?

De samples staan allemaal in de map "SAMPLE". Ze zijn al gemonteerd.

alvast bedankt,
dirk.
Moderator Wout: *oplossing hieronder. (anders moet je 7 bladzijde`s gaan lezen) :(
viewtopic.php?f=81&t=2509&start=120#p35502

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: nummer aankondiging

Ongelezen bericht door Wout » 01 dec 2009, 20:11

Snap wat je bedoelt, maar dat zal 1 2 3 niet gaan met een PAL-script.

Bij BSI Simian zit echter wel z`n functie in, alleen moet je wel alles handmatig gaan que`en.

**edit** ik zie dat je al een aparte map voor heb gemaakt, dan lukt het wel.
Alleen iets verzinnen dat de sample ook de artiest zie voor het volgende uur. :-D
Afbeelding

dirkafm
**
Berichten: 25
Lid geworden op: 21 jun 2009, 13:25

Re: nummer aankondiging

Ongelezen bericht door dirkafm » 01 dec 2009, 20:13

maar hoe moet ik dat doen dan?

dirkafm
**
Berichten: 25
Lid geworden op: 21 jun 2009, 13:25

Re: nummer aankondiging

Ongelezen bericht door dirkafm » 13 jan 2010, 13:34

alsjeblieft???
Of kan dat niet in SAM Bc.?
Als dat niet kan dan weet ik dat, zeur ik ook niet verder..

alvast bedankt.. Dirk.

Gebruikersavatar
skeleton
******
Berichten: 208
Lid geworden op: 15 aug 2008, 19:25
SAM-versie: SAM 2016.11
Database: MySQL 5.5
Windows: 7 64-bits
Locatie: Belgie
Contacteer:

Re: nummer aankondiging

Ongelezen bericht door skeleton » 13 jan 2010, 19:31

dirkafm schreef:alsjeblieft???
Of kan dat niet in SAM Bc.?
Als dat niet kan dan weet ik dat, zeur ik ook niet verder..

alvast bedankt.. Dirk.
idd je zeurt :-)
Als er niemand antwoord wil dit zeggen dat we het zelf niet weten OF dat het waarschijnlijk niet mogelijk is in SAM

Ook actief op zoek gaan in SAM zelf is soms de beste leerschool om al "spelend" het PAL gebeuren beter te leren kennen ipv hier gewoon te wachten op een antwoord.
Radio NOVA
Eigenzinnig, Anders!
Luister via deze pagina : Radio Nova Stream

Cushionfm
**
Berichten: 40
Lid geworden op: 29 nov 2009, 20:44
SAM-versie: 2.7.9.
Database: Geen Database

Re: nummer aankondiging

Ongelezen bericht door Cushionfm » 30 jan 2010, 19:45

Het is eigelijk simpel, maar je moet het zelf opnemen je reclame.

Neem je eigen NUMMER AANKONDIGING op en plaats die achter je reclame blok om een bepaalde tijd.

En je muziek.

Maak een nieuwe event scheduler aan.
en zet je muziek er in door te klikken op +File

Stel je tijd in en dag/datum.

Zorg dat je de tijd 1 sec na de reclame doet. dan gooit hij eerst je reclame in je queue en daarna die nummers wat je erin hebt gezet.
Dus je event scheduler:

RECLAME BLOK 19.00.00
Je aangekondigde muziek : 19.00.01

Hoop dat je hier wat aan hebt,
het is dan wel wat werk als je voor elke dag anders wil doen.

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: nummer aankondiging

Ongelezen bericht door ojee66 » 31 jan 2010, 14:58

Je zal het moeten gaan aanpassen maar dit was een script om artist jingles voor een plaatje te draaien.

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 = 'Artistpromo (all)';
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['music (all)'].QueueTop(smRandom, noRules);

// Let's find out the artist and songid we just put in the queue 
theArtistInQueue := Query('select TOP 1 title, artist, songID, queuelist.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;

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

Ik zal nog ff je vraag een keertje lezen , misschien snapte ik die niet of zoooo




Je vraag nog een keer gelezen en nu dus een stappenplan

kijk in queue of reclame draait
zo ja
kijk in queue naar 3e of 4e nummer
neem daar dartist en titel van
zoek in de map samples of de artist en titel voorkomen
zo ja
draai deze ergens in de reclameblok



nu het programma eromheen nog :)

fratam
****
Berichten: 75
Lid geworden op: 19 jan 2009, 23:17
SAM-versie: 4.9.2.*
Database: MySQL 4.1
Windows: 7 64-bits

Re: nummer aankondiging

Ongelezen bericht door fratam » 01 feb 2010, 22:47

klinkt goed mocht het werken en ziet er mooi uit!

maar mijn vraag is!

zou je ook een pal kunnen maken dat ie bv 2 x per uur laat horen :

straks(met jingel) en dan 2 of 3 platen die er komen gaan in 2 of 3 samples!

dus dat ie dat 2 x per uur automatisch doet

heb geen reclame vandaar!!

dirkafm
**
Berichten: 25
Lid geworden op: 21 jun 2009, 13:25

Re: nummer aankondiging

Ongelezen bericht door dirkafm » 02 feb 2010, 17:49

Oke, ik ga het vanavond/morgenavond uittesten of het werkt. Dus, in ieder geval al heel erg bedankt.
Dirk.

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: nummer aankondiging

Ongelezen bericht door ojee66 » 10 mei 2010, 14:13

ben zelf eens aan de slag gegaan...
Heb ondertussen deze niet werkende code (terwijl het allemaal heel logisch is)

Code: Selecteer alles

var Song, Liner : TSongInfo;
var Track : TSongInfo;
//Track.Free;
Queue.Clear;

const snippet = 'jingle-snippet';  //CAT waar jingle in staat
Liner := CAT[snippet].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']);

Track := CAT['Top40new'].ChooseSong(smLRP,EnforceRules);
IdlePlayer.QueueSong(Track);
Pal.WaitForTime ('+00:00:02');  //laadtijd
IdlePlayer.Seek(120000);     //zet seekpoint
PAL.WaitForPlayCount(1);
Aux1.Play;
Pal.WaitForTime ('+00:00:15'); //tijd snippet te horen

ActivePlayer.FadeToNext;
PAL.WaitForPlayCount(3);
IdlePlayer.QueueSong(Track);
Track.Free;
Kunnen we hier eens op verder borduren.. wie heeft hie rnog een aanvulling op???

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: nummer aankondiging

Ongelezen bericht door Wout » 10 mei 2010, 16:40

ojee66 schreef: Kunnen we hier eens op verder borduren.. wie heeft hie rnog een aanvulling op???
Wat moet ie doen dan?
Nu doet hij over een top40 hit een jingle draaien.
En na 15 seconden weer de top40 hit uitfaden.
Afbeelding

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: nummer aankondiging

Ongelezen bericht door ojee66 » 10 mei 2010, 18:22

ja Wout dat moet hij inderdaad doen, en als het goed is ook die top40 hit ergens in het midden starten.....

Maar ik kreeg hele verwarrende dingen... (fade-out springt bijv naar einde nummer?)
Hier zou een fade to stop maar wel met gelijk een nieuwe fade-in (geen wit stukje ertussen) op zijn plaats zijn.

1e de jingle zou er eigenlijk voor of half voor moeten zitten.
de top40 hit ong 15 sec. laten horen.
daarna verder met de show en na x nummers de top40 hit helemaal draaien..


edit
Net nog even geprobeerd...
Nummer wordt in de idle player gestopt... je krijgt dan geen tijden te zien.
Als het zover is floept het gereed staande nummer eruit, en wordt van het eerstvolgende nummer uit de queue 15 seconden gespeeld.
Hieroverheen loopt de gewone AUX1 jingle.
De gereedstaande track wordt niet na 3 nummers in de queue gezet.
Er volgt een error in de PAL script editor.
mp3prodec:mp3ssc error invalid handle

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: nummer aankondiging

Ongelezen bericht door Wout » 11 mei 2010, 07:32

Code: Selecteer alles

IdlePlayer.Seek(120000); 
Pakt niet.

Onderstaand pakken wel de Seek`s.

Code: Selecteer alles

ActivePlayer.Seek(120000);
DeckA.Seek(120000);
DeckB.Seek(120000);
Aux1.Seek(120000);
Aux2.Seek(120000);
Aux3.Seek(120000); 
Dan kan je via de Aux het wel doen.
Het is alleen uitvogelen om de ..Player op pauze of op stop te zetten.
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: nummer aankondiging

Ongelezen bericht door Wout » 11 mei 2010, 22:26

Code: Selecteer alles

QueuedPlayer.Seek(120000); 
:-D Dan pakt ie het wel. Vervang IdlePlayer.Seek(120000); //zet seekpoint met bovenstaand.

Zal eens kijken of ik het automatisch max 7 dagen terug kan laten kijken in de map Top40.
Afbeelding

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: nummer aankondiging

Ongelezen bericht door ojee66 » 12 mei 2010, 13:04

queued.player is voor decka of b en de snippet zit in de aux...

Daarom heb ik de hele pal omgegooid en dan zitten er weer andere rare dingen tussen...

ff de code tot nog toe...

Code: Selecteer alles

var Song, Liner : TSongInfo;
var Track : TSongInfo;

Cat['jingle-snippet'].QueueTop(smLRP,NoRules);

Track := CAT['Top40'].ChooseSong(smLRP,EnforceRules);
Aux1.QueueSong(Track);
Pal.WaitForTime ('+00:00:01');  //laadtijd
Aux1.Seek(120000);     //zet seekpoint
PAL.WaitForPlayCount(1);
// check if ons jingle is played
Liner := ActivePlayer.GetSongInfo;
if (Liner<>nil) and (Uppercase(Copy(Liner['artist'],1,3))='SNI') then
Begin
// alle decks moeten ff op pauze uitgezonderd de AUX1
ActivePlayer.FadeToStop;
QueuedPlayer.FadeToStop;
IdlePlayer.FadeToStop;
Aux1.Play;
Pal.WaitForTime ('+00:00:15'); //tijd snippet te horen
Aux1.FadeToStop;
Aux1.Eject;
//queued player weer starten...
QueuedPlayer.Play;
PAL.WaitForPlayCount(3);
IdlePlayer.QueueSong(Track); //track is verdwenen en komt niet meer in de queue terug???
Track.Free;
Liner.Free;
end;
De Pal.WaitForTime ('+00:00:15'); //tijd snippet te horen voert hij niet uit..????

Waarvoor wil je 7 dagen terug in de top40????

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: nummer aankondiging

Ongelezen bericht door Wout » 12 mei 2010, 13:20

ojee66 schreef: Waarvoor wil je 7 dagen terug in de top40?
Wat ik uit je verhaal begrijpt, is dat je een aparte map maakt voor nieuwe Top40 nummers.
Als je geen aparte map maakt maar gewoon in de map Top40 stopt en elke week komen er nieuwe nummers in.
Hoef hij alleen maar 1 week terug te kijken en alles tussen nu & 1 week terug is dan nieuw.
En komen die alleen in aanmerking voor de seek + jingle.
Eventueel een repat dat alle nieuwe nummers een 5-tal seconden te horen zijn
en dan random pakt ie 1 nieuw nummer eruit om te spelen.

Maar je wilt alles in Aux laten spelen?
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: nummer aankondiging

Ongelezen bericht door Wout » 14 mei 2010, 00:22

Een teaser. :-D

Een PAL-script dat 1 week terug kijkt naar de laatst toegevoegde muziek.
Hij selecteer de laatst toegevoegde muziek Random in de lijst & hij begint steeds ergens anders in de plaat.
(dat is gedaan, anders krijg je steeds hetzelfde ritme qua nummers en dat is nu niet meer) :-D
Dan plaats hij een opening-jingle, Tussen-jingle (ongeacht hoeveel nieuwe platen max. 10) en een eind-jingle ertussen.

En dan krijg je als onderstaand te horen.
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Afbeelding

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: nummer aankondiging

Ongelezen bericht door ojee66 » 14 mei 2010, 07:37

dat is precies wat ik en de toppic starter wil ja.....

alleen de tracks waar hij de stukjes van laat horen moeten dan later in de queue gezet worden.

had je dees al lang op de plank liggen of heb je dees nu net ff in elkaar geflanst ????

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: nummer aankondiging

Ongelezen bericht door Wout » 14 mei 2010, 12:50

ojee66 schreef: had je dees al lang op de plank liggen of heb je dees nu net ff in elkaar geflanst ?
Gisterenavond mee bezig geweest.

Ik zie net dat de TS het anders bedoelde. :-D
Die wil graag van het komende uur wat hooks laten horen.

En de PAL van mij, laat alleen de laatst toegevoegde muziek (hooks) horen.
en begint met 1 ervan te spelen.
Afbeelding

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: nummer aankondiging

Ongelezen bericht door ojee66 » 14 mei 2010, 13:02

als je de afgespeelde stukjes, de tracks ervan ergens in een array opslaat kun je die later weer terug laten komen in de queue...

Heb nog ff op het engelse forum rondgekeken maar daar ook niks gevonden.

wil je de code plaatsen, dat ik eens mee kan denken...

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht