Is dit mogelijk?

Voor vragen over Playlist Automation Language.
Plaats reactie
Atletico

Is dit mogelijk?

Ongelezen bericht door Atletico »

Hoi allen,

Ik vroeg me af of het volgende mogelijk is. NU is het zo dat als ik SAM opgestart heb (ook al draai ik niet) en iemand vraagt op mijn website een verzoekje aan deze gewoon wordt geaccepteerd. Erg lastig als je gewoon zelf een beetje aan het puzzelen bent met SAM. Zou het mogelijk zijn via PAL om b.v. request alleen te enablen als er een encoder draait? Ik weet dat je dit zelf allemaal aan en uit kunt zetten maar het zou handig zijn als dit automatisch zou gaan bij het aan en uitzetten van de encoder.

Dus kortweg gezegd:

Encoder aan? Dan request enabled.
Encoder uit? Dan request disabled.

Via activeplayer heeft geen zin aangezien ik natuurlijk ook muziek draai met SAM als ik niet uitzend (gewoon omdat ik SAM prefereer boven media player etc).

Zou dit lukken?

Met vriendelijke groet,

Peter
Atletico

Re: Is dit mogelijk?

Ongelezen bericht door Atletico »

Even een Update:

Als ik de logica van wat scriptjes her en der zie zou het er ongeveer zo uit moeten komen te zien? Zou je hier eens naar kunnen kijken Kees en je oordeel geven voor ik mijn SAM om zeep help?

Code: Selecteer alles

IF (ENCODERS[0].status<>'Encoding') THEN
BEGIN ;
RequestPolicy.Enabled := False;
END
ELSE {IF (ENCODERS[0].status='Encoding') THEN}
BEGIN; 
RequestPolicy.Enabled := True;
END;
Peter..
Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door Wout »

Ik heb deze even gemaak.
Het werk bij me, getest op 2 sam-machine`s , met encoder uit (request uit) en encoder aan (request aan).

Code: Selecteer alles

var I : Integer;

for I := 0 to Encoders.Count-1 do
 if not Encoders[I].Started then
  RequestPolicy.Enabled := False;

for I := 0 to Encoders.Count-1 do
 if  Encoders[I].Started then
  RequestPolicy.Enabled := True;
 
Voor eventueel een loop te maken.
viewtopic.php?f=81&t=1266&p=7260&hilit= ... aien#p7260

Ik heb maar weinig ervaring ermee, dus niet te veel moeilijke vragen stellen :-D
Afbeelding
Atletico

Re: Is dit mogelijk?

Ongelezen bericht door Atletico »

wout schreef:Ik heb deze even gemaak.
Het werk bij me, getest op 2 sam-machine`s , met encoder uit (request uit) en encoder aan (request aan).

Code: Selecteer alles

var I : Integer;

for I := 0 to Encoders.Count-1 do
 if not Encoders[I].Started then
  RequestPolicy.Enabled := False;

for I := 0 to Encoders.Count-1 do
 if  Encoders[I].Started then
  RequestPolicy.Enabled := True;
 
Voor eventueel een loop te maken.
viewtopic.php?f=81&t=1266&p=7260&hilit=het+PAL+script+continu+in+een+loop+draaien#p7260

Ik heb maar weinig ervaring ermee, dus niet te veel moeilijke vragen stellen :-D
Werkt wel, evenals deze (had ik zelf al even getest):

Code: Selecteer alles

if (Encoders[0].status<>'Encoding') then
RequestPolicy.Enabled := False;
if (Encoders[0].status='Encoding') then
RequestPolicy.Enabled := True;
Dit werkt echter alleen als je 1 encoder hebt, als je er 2 hebt waarvan je maar 1 tegelijk gebruikt dan zou je dus steeds het encodernummer moeten veranderen als je wisselt. Iemand die daar nog een oplossing voor heeft?

grtz,

Peter..
Atletico

Re: Is dit mogelijk?

Ongelezen bericht door Atletico »

Hoi allen,

Ben er eindelijk uit. Heb besloten dit scriptje hier neer te zetten omdat ik denk dat andere mensen hier misschien ook wel iets mee kunnen. Vind het onzin hier te plaatsen dat het gelukt is en niemand weet waarom. Het script ziet er nu als volgt uit en als je met meerdere encoders draait kun je NOG een PAL script aanmaken maar dan met het andere encoder nummer uiteraard. Via ES kun je dan keuze maken uit het script. Dit script zorgt er dus voor dat de huidige DJ/Nonstop wordt gekickt van de shoutcast server en verzoekjes alleen aan staan als je daadwerkelijk draait en niet als je voor de fun in SAM zit (alhoewel je wel draait het ook FUN is natuurlijk hi).

Code: Selecteer alles

{Vaste gegevens voor dit script}

const shoutcast_password = 'wachtwoord';
const shoutcast_host = 'IP-adres';
const shoutcast_port = 'poortnummer';

{Bouw URL om commando naar SHOUTcast server te sturen}

var URL : String;
URL := 'http://admin:'+shoutcast_password+'@'+shoutcast_host+':'+shoutcast_port+'/admin.cgi?mode=kicksrc';

{Kick nonstop van de SHOUTcast server}

WebToFile('c:\dummy.txt',URL);

{ Start de encoder}

Encoders[0].Start;

{Geef encoder tijd om in te loggen}

PAL.WaitForTime(T['00:00:10']);

{Check of encoder daadwerkelijk verbinding heeft en zo ja schakel verzoekjes in zo niet laat ze uit}

if (Encoders[0].status<>'Encoding') then
RequestPolicy.Enabled := False;
if (Encoders[0].status='Encoding') then
RequestPolicy.Enabled := True;

{Check iedere 10 seconden of encoder is stopgezet of gekickt}

While (Encoders[0].status='Encoding')  Do
PAL.WaitForTime('+00:00:10');

{Schakel verzoekjes uit als encoder gestopt is}
RequestPolicy.Enabled := False;
Hopelijk kunnen jullie er wat mee!

Grtz, Peter
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 941
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2025.3
Database: MySQL
Windows: Virtual machine
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door cyberneticorganism »

Dan heb ik ook nog even een vraag/verzoek achtig iets :-D:

Ik wil het volgende: De live pc moet de nonstop pc van de shoutcast af kicken, de live pc start vervolgens de encoder en deck a. Dat is 1.

2: Dan dienen op de nonstop pc de requests te worden uitgeschakeld, zolang de live uitzending op de live pc loopt. De encoder van de nonstop pc staat zoiezo al op auto reconnect, dus als de live uitzending voorbij is dient deze weer gekickt te worden van de shoutcast, en maakt de nonstop pc weer verbinding.

Nu doe ik dit alles nog met de hand, een hoop gedoe. Misschien is er een manier om dit mogelijk te maken d.m.v. 1 of 2 PAL scripts. Volgens mij kan je niet op afstand de request bij een andere pc uitschakelen, dus zal er zowel op de live als op de nonstop pc een PAL script gemaakt moeten worden. Ideeen zijn welkom (en palscripts ook hoor :lol:).
Atletico

Re: Is dit mogelijk?

Ongelezen bericht door Atletico »

cyberneticorganism schreef:Dan heb ik ook nog even een vraag/verzoek achtig iets :-D:

Ik wil het volgende: De live pc moet de nonstop pc van de shoutcast af kicken, de live pc start vervolgens de encoder en deck a. Dat is 1.

2: Dan dienen op de nonstop pc de requests te worden uitgeschakeld, zolang de live uitzending op de live pc loopt. De encoder van de nonstop pc staat zoiezo al op auto reconnect, dus als de live uitzending voorbij is dient deze weer gekickt te worden van de shoutcast, en maakt de nonstop pc weer verbinding.

Nu doe ik dit alles nog met de hand, een hoop gedoe. Misschien is er een manier om dit mogelijk te maken d.m.v. 1 of 2 PAL scripts. Volgens mij kan je niet op afstand de request bij een andere pc uitschakelen, dus zal er zowel op de live als op de nonstop pc een PAL script gemaakt moeten worden. Ideeen zijn welkom (en palscripts ook hoor :lol:).
Volgens mij moet dit op de volgende manier lukken:

Op je live PC de volgende PAL toevoegen en handmatig opstarten als de uitzending begint (je bent daar toch aanwezig als je live zit neem ik aan hi):

Code: Selecteer alles

const shoutcast_password = 'wachtwoord';
const shoutcast_host = 'IP-adres';
const shoutcast_port = 'poortnummer';

var URL : String;
URL := 

'http://admin:'+shoutcast_password+'@'+shoutcast_host+':'+shoutcast_port+'/admin.cgi?mode=kicksrc';

WebToFile('c:\dummy.txt',URL);

Encoders[0].Start;

DeckA.next;
DeckA.play;

PAL.WaitForTime(T['00:00:05']);

if (Encoders[0].status='Encoding') then
RequestPolicy.Enabled := True;

While (Encoders[0].status='Encoding')  Do
PAL.WaitForTime('+00:00:10');

RequestPolicy.Enabled := False;

Op je nonstop PC het volgende PAL script toevoegen en deze op autostart zetten:

PAL.Loop:=True;

if (Encoders[0].status='Encoding') then
RequestPolicy.Enabled := True;

While (Encoders[0].status='Encoding')  Do
PAL.WaitForTime('+00:00:10');

RequestPolicy.Enabled := False;
Dit zorgt er voor dat als je nonstop wordt gekickt de verzoekjes uitgeschakeld worden en omdat deze in een loop draait weer aan worden geschakeld als de nonstop de stream weer terugpakt. Ben er vanuit gegaan dat je op beide pc's 1 encoder hebt en je moet natuurlijk bij script 1 even je paswoord enz. invullen.. Ook de verzoekjes van je live worden in en uitgeschakeld als je de encoder aan/uit zet. Is dit wat je bedoeld?

Grtz, Peter
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 941
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2025.3
Database: MySQL
Windows: Virtual machine
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door cyberneticorganism »

Klopt het is inderdaad wat ik bedoel! Ik ga het van het weekend nog ff testen, moet ook nog ff wat anders testen :lol: (Je blijft altijd bezig hiermee heh :-D). Alleen op de live pc werkt het requestsysteem niet, is ook niet nodig. Als ik live ben kunnen mensen gewoon een mailtje sturen of in msn om een verzoekje vragen. Het requestsysteem heb ik alleen gekoppeld aan de nonstop pc. Dus die code kan ik dan weglaten bij het "live pc PAL script". Ik heb het even doorgelezen, wat is hier precies de functie van:

Code: Selecteer alles

WebToFile('c:\dummy.txt',URL);
Dat vraag ik me ff af.
Atletico

Re: Is dit mogelijk?

Ongelezen bericht door Atletico »

cyberneticorganism schreef:Klopt het is inderdaad wat ik bedoel! Ik ga het van het weekend nog ff testen, moet ook nog ff wat anders testen :lol: (Je blijft altijd bezig hiermee heh :-D). Alleen op de live pc werkt het requestsysteem niet, is ook niet nodig. Als ik live ben kunnen mensen gewoon een mailtje sturen of in msn om een verzoekje vragen. Het requestsysteem heb ik alleen gekoppeld aan de nonstop pc. Dus die code kan ik dan weglaten bij het "live pc PAL script". Ik heb het even doorgelezen, wat is hier precies de functie van:

Code: Selecteer alles

WebToFile('c:\dummy.txt',URL);
Dat vraag ik me ff af.
Dit creeert een file die nodig is om de stream te kicken. Als je deze leest nadat hij is aangemaakt zie je ook dat de stream down is (dus geen source heeft). Op dat moment log je in met de live pc (in jouw geval gaat dit dus automatisch). Laat me even weten of het gelukt is...

Peter...
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 941
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2025.3
Database: MySQL
Windows: Virtual machine
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door cyberneticorganism »

Aha ok... ik snap hem. Ik heb zondag en maandag weekend, dus ga er denk ik dan mee aan de gang... :-D
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 941
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2025.3
Database: MySQL
Windows: Virtual machine
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door cyberneticorganism »

Ik heb het even getest: allereerst, als de encoder op de nonstop pc blijft draaien dan telt hij in een loop telkens 10 seconden af. Dat is de bedoeling?

Als ik het script op de live pc start kan hij niet connecten met de shoutcast server... de source wordt niet gekickt om een of andere reden. De encoder op de nonstop pc staat op 30 seconden auto reconnect, dus als de source wordt gekickt heeft de live pc maar liefst 30 seconden om te connecten met de shoutcast server. Dat moet dus ook geen probleem vormen. Probleempje is dus dat hij niet kickt... enig idee wat er mis kan zijn?
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 941
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2025.3
Database: MySQL
Windows: Virtual machine
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door cyberneticorganism »

Oeps :oops: Foutje van de zaak... ik had het gewone wachtwoord ingevuld, i.p.v. het wachtwoord om in te loggen in de shoutcast admin :lol: Maargoed, alles werkt perfect! Op 1 ding na: op het moment dat ik stop met de live uitzending, en de nonstop pc het weer overneemt, dan blijven de request gedisabled. Hij enabled ze niet meer om een of andere reden. Terwijl het wel weer begint met aftellen (die 10 sec). Als hij ze eenmaal disabled, blijft het ook zo staan...
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 941
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2025.3
Database: MySQL
Windows: Virtual machine
Contacteer:

Re: Is dit mogelijk?

Ongelezen bericht door cyberneticorganism »

Hmmmz... ik heb het script nog even grondig getest, maar het blijkt toch uitstekend te werken. Hij schakelt de requests wel weer in zodra de encoder start. Ik heb zo een donkerbruin vermoeden in me boxer :butthead: dat ik op de live pc zat te kijken vorige keer, i.p.v. op de nonstop server :oops: en daar maak ik geen gebruik van een requestsysteem, dus die staan altijd uitgeschakeld :lol: Euhh... foutje van mij dus denk ik. Ik heb niks gezegd bij deze... Nou dat andere probleem nog met het weglaten van de jingles in artiest + titel van shoutcast af scriptje.
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht