1 PAL of meerder PAL scripts

Voor vragen over Playlist Automation Language.
Plaats reactie
ojee66

1 PAL of meerder PAL scripts

Ongelezen bericht door ojee66 »

Graag de menig van anderen over het volgende...
Ik had eerst1 groot PAL script met uuropener, nieuws, format met jingles en promo's en info spotjes. Deze starte ik via event elk uur opnieuw op.
Ik had er veel problemen mee dat hij fouten tijdens uitvoer gaf. Iets over read acces in sambc.exe met een hex code erbij of zo.
Ik heb nu het script in 2en gehakt. 1 voor nieuws en uuropener en 1 voor het format. Het lijkt nu beter te gaan wat betreft die foutmeldingen. Toch dus de vraag Wat is beter????
Het format script heb ik ook nog weer onderverdeeld in aparte scriptjes voor ochtend middag avond en nacht. Het format ziet er voor die tijden anders uit.
Op het forum van spacialaudio stond nog de vraag om een soort uuropener te maken met iets van 'het komende uur hoort u'en dan van de nrs in de queue 3 sec laten horen. Het voorgestelde op het engelse forum was om 3 sec. van alle nrs in een aparte map te plaatsen en dan via sql te selecteren oid.
Mij lijkt het beter een queue van 1 uur klaar te zetten met een teller hoeveel S type nrs erin zitten. de 1 oppakken , is het een S type 3 seconden laten horen, onderaan de queue weer klaarzetten.
(tja ik denk mee en heb soms ook waanzinnige ideeen)

Zo mijn eerste post zit erop met vele vragen, laat de reacties maar komen

Groet
Gebruikersavatar
Kees
Beheerder
Berichten: 3149
Lid geworden op: 28 nov 2005, 22:07
SAM-versie: 4.2.2.*
Database: MySQL
Windows: 11
Locatie: Bergen op Zoom
Contacteer:

Ongelezen bericht door Kees »

Zal ik je eens op een leuke klus jagen hihi

Ik heb voor elk uur van de dag een PAL script.
Deze draait een uurwissel en zet daarna voor iets meer dan uur platen klaar.
Scripts worden gestart via de ES.
Deze is van 12 uur s'nachts.
  • Queue.Clear;
    Queue.AddFile('d:\uurwissel\nieuwsloper.mp3',ipTop);
    ActivePlayer.FadeToNext;
    Queue.AddFile('d:\uurwissel\00.mp3',ipBottom);
    Queue.AddFile('d:\uurwissel\opener.mp3',ipBottom);

    var QueueTime : Integer = (60*60*1200);
    While Queue.Duration < QueueTime do
    Begin

    Cat['60'].QueueBottom(smLemmingLogic, EnforceRules);
    Cat['70'].QueueBottom(smLemmingLogic, EnforceRules);
    Cat['Hits'].QueueBottom(smLemmingLogic, EnforceRules);
    Cat['Jingles (All)'].QueueBottom(smRandom, NoRules);
    Cat['80'].QueueBottom(smLemmingLogic, EnforceRules);
    Cat['90'].QueueBottom(smLemmingLogic, EnforceRules);
    Cat['Nederpop'].QueueBottom(smLemmingLogic, EnforceRules);
    Cat['Jingles (All)'].QueueBottom(smRandom, NoRules);

    end
Misschien heb je hier wel iets aan !
andy-dsl

Re: 1 PAL of meerder PAL scripts

Ongelezen bericht door andy-dsl »

OK. Hier ga ik dan voor mijn eerste post. Allereers wil ik even zeggen dat dit forum een geweldig initiatief is. ik ben pas met SAM bezig en heb hier al veel geleerd (yip, ben dus al een tijdje meelezer :)).
ojee66 schreef:Graag de menig van anderen over het volgende...
Ik had eerst1 groot PAL script met uuropener, nieuws, format met jingles en promo's en info spotjes. Deze starte ik via event elk uur opnieuw op. Ik had er veel problemen mee dat hij fouten tijdens uitvoer gaf. Iets over read acces in sambc.exe met een hex code erbij of zo.
Ik heb nu het script in 2en gehakt. 1 voor nieuws en uuropener en 1 voor het format. Het lijkt nu beter te gaan wat betreft die foutmeldingen. Toch dus de vraag Wat is beter????
Het format script heb ik ook nog weer onderverdeeld in aparte scriptjes voor ochtend middag avond en nacht. Het format ziet er voor die tijden anders uit.
Als ik zo het een en ander gelezen heb zou het eigenlijk mogelijk moeten zijn om voor het ganse format een groot PAL script te gebruiken. Probleem is dat die PAL scripts eigenlijk korte programmatjes zijn en er dus de nodige programmeerkennis nodig is om dit te kunnen doen. Volgens een aantal voorbeelden die ik heb gezien kan je perfect een voorwaarde aan een bepaald tijdstip plakken (bijvoorbeeld: is het huidig uur bijv 12:00 dan moet dit gebeuren). Zo kan je dit voor elk uur (of aantal uren doen). Eigenlijk een beetje hetzelfde als elk uur een ander script runnen met dit verschil dat je alles in een script giet. Nadeel hiervan is dat je dit moeilijk kan debuggen. Ik wil dit wel even proberen maar probleem is dat ik nog niet voldoende PAL ervaring heb. Daarmee bedoel ik dat het programmeren (de logica ervan) wel zou lukken maar dat ik nog niet genoeg kennis van de syntax heb waarmee de scripts zijn opgebouwd. Bestaat hiervoor eventueel een goeie refference guide?
ojee66 schreef:Op het forum van spacialaudio stond nog de vraag om een soort uuropener te maken met iets van 'het komende uur hoort u'en dan van de nrs in de queue 3 sec laten horen. Het voorgestelde op het engelse forum was om 3 sec. van alle nrs in een aparte map te plaatsen en dan via sql te selecteren oid.
Mij lijkt het beter een queue van 1 uur klaar te zetten met een teller hoeveel S type nrs erin zitten. de 1 oppakken , is het een S type 3 seconden laten horen, onderaan de queue weer klaarzetten.
(tja ik denk mee en heb soms ook waanzinnige ideeen)
Ik denk dat het idd beter is om een aparte map met telkens 3 seconden van elk nummer te maken. Is het de bedoeling om van elk nummer dat het komende uur gaat spelen een 3 tal seconden te laten horen of enkel van een paar. Je kan hiervoor criteria ontwikkelen zoals je zelf aanhaalt. Moet dus ook perfect mogelijk zijn.

Moet zeggen dat ik allemaal interessante materie vind. Ik wil me er best eens rustig in verdiepen :)
Gebruikersavatar
Kees
Beheerder
Berichten: 3149
Lid geworden op: 28 nov 2005, 22:07
SAM-versie: 4.2.2.*
Database: MySQL
Windows: 11
Locatie: Bergen op Zoom
Contacteer:

Ongelezen bericht door Kees »

Een dergelijk script wat jij volgens mij bedoelt ben ik al een tiijd aan het zoeken.
I.p.v. 24 x 7 scripts gewoon voor elke dag 1 script.
Met de voorwaarde dat, als je SAM opnieuw op moet starten na b.v. een stroomuitval, hij met de juiste dag en op het juiste uur verder gaat.
Wie weet komen we die nog wel ergens tegen.
We blijven zoeken en uitproberen.
andy-dsl

Ongelezen bericht door andy-dsl »

Kees schreef:Een dergelijk script wat jij volgens mij bedoelt ben ik al een tiijd aan het zoeken.
I.p.v. 24 x 7 scripts gewoon voor elke dag 1 script.
Met de voorwaarde dat, als je SAM opnieuw op moet starten na b.v. een stroomuitval, hij met de juiste dag en op het juiste uur verder gaat.
Wie weet komen we die nog wel ergens tegen.
We blijven zoeken en uitproberen.
Dit kan niet zo moeilijk zijn. Als je een script laat loopen en je vraagt telkens bij het begin van het script op welk het huidig uur is, kan je aan die waarden een voorwaarde koppelen. Ik wil dit wel eens uitpluizen maar zou een referentie nodig hebben ivm de syntax voor SAM.
ojee66

wat ik nu heb

Ongelezen bericht door ojee66 »

Je format voor het uur ziet er bijna precies hetzelfde uit als wat ik ook heb, het lijkt wel van hetzelfde script te komen :)
Omdat ik dit script elk uur start heb ik een clear.queue aan het begin staan. ik start het script 1 minuut over elk uur. ik heb exact op het hele uur het weather script van het spacialaudio forum en deze aangepast zodat hij het nieuws met een muziek bedje speelt. (als ik in de log kijkt lukt het overigens om diverse redenen niet altijd om het nieuws te laten meedraaien).

Even nog een opmerking aan Kees ,

Je jingles staat op random zonder regels, dat heb ik ook eerst gehad maar dan draaide hij 2 dezelfde jingles PAL achter elkaar.
( ik heb veel jingles door mijn format)
Ik heb het nu zo opgelost dat de artiest en titel herhaling op 2 uur staat, de weight van de nummers met 0 lager wordt en alles een rotatie weight van 70 heb.

Nu het probleem van de 3 sec.
Met nu een bestand van ong 4500 mp3 tjes welke ik ook nog allemaal moet nakijken op specifieke fade-in en out, intro en end. de info blok invullen enz nez. vind ik het niet leuk te horen om van elk nr ook 3 sec. te knippen en in een aparte map te zetten.
Kan een speler uberhaupt wel ergens midden in een nummer starten?
3 sec. is niet moeilijk met de regel ActivePlayer.Duration en ActivePlayer.Curtime.
Is het script ook wel snel genoeg om het zoals ik het schets op tijd te verwerken?

Ik heb op het spacialaudio forum d8 ik ergens een script voor een complete week programmering gezien. met elke dag en elk uur een apart format...
Ook een check op de week/tijd was d8 ik daar ergens te vinden.

Nadeel van zo'n groot script is het overzicht.
Ik hou het bij mijn kleine scriptjes
ojee66

mijn scripts

Ongelezen bericht door ojee66 »

de nieuws uur openener (welke meestal vast loopt)

Queue.Clear;

//CONFIG Change this to your zip code
//const Webfile : String = 'http://audio.pirateweather.com/27514.mp3';
const Webfile : String = 'd:\playlist\news.mp3';
//CONFIG Change this, too
//const ext : String = '27514.mp3';
const ext : String = 'anp.mp3';
//CONFIG this based on your SAM install
//const SpotDir : String = 'd:\Program Files\SpacialAudio\SAM2\Sound\weather\';
const SpotDir : String = 'd:\playlist\news\';


var WXSong, SongNow : TSongInfo;
WXSong := CAT['Newsbackground'].ChooseSong(smRandom,NoRules);
var WXTime : Integer;
Var Done : Boolean = False;
var fname : String;
var fnamehh : String;
var fnamemm : String;


//download the file
//WriteLn('downloading: '+Webfile);
//WebToFile(SpotDir+ext,Webfile);
Queue.AddFile('d:\playlist\news\anp.mp3', ipTop);
WriteLn('...anp.mp3 add in queue');

//prepare the decks
PAL.LockExecution;
Aux2.Eject;
Aux2.QueueSong(WXSong);

Aux2.Volume := 175;

//check if something else got queued instead of our expected weather
SongNow := QueuedPlayer.GetSongInfo;
PAL.UnLockExecution;

PAL.WaitForPlayCount(1);
// Queue.Clear;

while NOT (SongNow['songtype']='N')
Do Begin
SongNow := ActivePlayer.GetSongInfo;
End;

//play the frigging news
PAL.LockExecution;

Aux2.Play;
PAL.UnlockExecution;

//wait a moment before calculating to give the weather time to start
PAL.WaitForTime('+00:00:3');
//figure out when the weather has about 3 sec remaining and then fade
while not done do
begin
if (ActivePlayer.Duration >0) AND ((ActivePlayer.Duration-ActivePlayer.CurTime)<3000) then
begin
Aux2.FadetoNext;
done := True;
end;
end;

WXSong.Free;
SongNow.Free;
//reset volume
Aux2.Volume :=255;

Queue.AddFile('d:\playlist\news\dat-was.mp3', ipTop);



en mijn format

Queue.Clear;

var QueueTime : Integer = (60*60*1200);
While Queue.Duration < QueueTime do
Begin

cat['StationId'].QueueBottom(smRandom,NoRules);
cat['Dance'].QueueBottom(smLemmingLogic,EnforceRules);
cat['Jingle'].QueueBottom(smRandom,NoRules);
cat['Jingle'].QueueBottom(smRandom,NoRules);
cat['New Top40'].QueueBottom(smLemmingLogic,EnforceRules);
cat['Dance'].QueueBottom(smLemmingLogic,EnforceRules);
Queue.AddFile('d:\playlist\stationid\rsound-transition1.mp3',ipBottom);
cat['SIRE'].QueueBottom(smRandom,NoRules);
cat['Postbus51'].QueueBottom(smLemmingLogic,NoRules);
cat['StationId'].QueueBottom(smRandom,NoRules);
cat['12inch'].QueueBottom(smLemmingLogic,EnforceRules);
cat['Dance'].QueueBottom(smLemmingLogic,EnforceRules);
cat['Jingle'].QueueBottom(smRandom,NoRules);
cat['StationId'].QueueBottom(smLemmingLogic,NoRules);
cat['New Top40'].QueueBottom(smRandom,EnforceRules);
cat['Dance'].QueueBottom(smRandom,EnforceRules);
Queue.AddFile('d:\playlist\stationid\rsound-transition2.mp3',ipBottom);
cat['SIRE'].QueueBottom(smRandom,NoRules);
cat['Reclame'].QueueBottom(smRandom,NoRules);
cat['Italo'].QueueBottom(smLemmingLogic,EnforceRules);
cat['Jingle'].QueueBottom(smRandom,NoRules);
cat['Dance'].QueueBottom(smLemmingLogic,EnforceRules);
cat['Jingle'].QueueBottom(smRandom,NoRules);

end

mijn format aanpassen aan dagdeel moet ik nog doen maar dat kan pas als ik mijn muziek helemaal uitgesorteerd heb. :)

Groetjes
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht