Teaser-pal 2.0.

Voor vragen over Playlist Automation Language.
Plaats reactie
Gebruikersavatar
Wout
Moderator
Berichten: 3247
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Teaser-pal 2.0.

Ongelezen bericht door Wout » 25 dec 2019, 14:10

Sterk gebaseerd op pal/topic2509.html#p16061 maar dan anders ingeschoten. ;)

Wat is een teaser?
Een teaser is een stukje (sample) muziek wat komt op je radiostation.
Hierbij hoop je dat de luisteraar wordt geprikkeld om langer te blijven luisteren. 8-)

Wat is het verschil met de oude PAL en de nieuwe versie?
Voor de luisteraar is er nagenoeg geen verschil. Hij hoort nog steeds stuken van muziek wat er aan komt.
Voor de website is het wel een verbetering. Hij maakt van 3 stukken muziek één muziekblok.
Voorheen was het --jingle--muziekfragment1(6 sec)--jingle--muziekfragment2(6 sec)--jingle--muziekfragment3(6 sec)--jingle in je queuelist.
Nu is het één WAV-bestand met daarin bovenstaande.

#hoedan?
Om hiervan gebruik te maken dien je wel enkele dingen te doen.
  • Het werkt vanaf SAM Broadcaster versie 2017.8.
  • Je hebt kennis van PAL
  • Je dient een PAL te draaien
  • Je dient een map te maken (sox)
  • Je queue is gevuld met minimaal 6 nummers
Wat dien ik nog te veranderen?
In de PAL staat nog alles op de e:\ disk. Dit dien je nog te veranderen naar jouw geschikte disk.

Code: Selecteer alles

PAL.Loop := True ;

	// wacht steeds een kwartier
	PAL.WaitForTime(T['NEXT15']) ;

	PAL.LockExecution ;
	
		var CntsA : Integer = 0 ;
		var TR : Integer ;
		var songQA : array[0..4] of string ;
		// Zoek een sample in de muziek vanaf x seconden. 20 is 20 seconden vanaf het begin
		var RN : Array of String = ['20', '60', '80', '100', '120', '140'] ;
		var A : TDataSet ;
		var Now_minutes : String ;
		
		Now_minutes := FormatDateTime('n', Now) ;
		TR  := RN.length ;

	PAL.UnLockExecution ;

	if (Now_minutes = '0') then Pal.WaitForTime('+00:01:25') ;

	PAL.LockExecution ;
  
		A := Query('SELECT filename FROM songlist AS s '
		+'INNER JOIN (SELECT songID FROM queuelist ORDER BY sortID ASC LIMIT 8) AS q ON s.ID = q.songID '
		+'AND duration >= 160000 '
		+'ORDER BY RAND() LIMIT 3 ',[],True) ;

		A.First;
		while not A.EOF do
		begin
			songQA[CntsA] := A['filename'] ;
			WriteLn(songQA[CntsA]) ;
			CntsA := CntsA + 1 ;
			A.Next ;
		end;
		A.Free ;

	PAL.UnLockExecution ;
  				
	Repeat 
		// maak samples van 8 seconden ergens random (RN) in het nummer 
		ExecuteCmd('E:\sox\sox.exe', ['"'+songQA[CntsA]+'" e:\output'+IntToStr(CntsA)+'.wav trim '+RN[RandomInt(TR)]+' 8']);
		CntsA := CntsA - 1 ;
	Until CntsA < 0 ;

	// maak één bestand met daarin de jingles & de 8 seconden samples van de komende muzieknummers
	ExecuteCmd('E:\sox\sox.exe ', ['e:\begin.wav e:\output0.wav e:\tussen.wav e:\output1.wav e:\tussen.wav e:\output2.wav e:\eind.wav e:\teaser.wav']) ;
	// zet de teaser.wav bovenaan de queuelist
	Queue.Addfile('e:\teaser.wav', IpTop) ;
Muziek.rar
sox.rar
Veel plezier ermee!
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Afbeelding

Bugger
Beginnende SAM-gebruiker
Berichten: 1
Lid geworden op: 21 feb 2020, 08:28
SAM-versie: SAM 2020.2
Database: MySQL 5.7
Windows: 7 64-bits

Re: Teaser-pal 2.0.

Ongelezen bericht door Bugger » 21 feb 2020, 09:57

Mooi script waarvoor mijn dank, ik liep echter tegen een kleine syntax aan.

ExecuteCmd('E:\sox\sox.exe', zou ExecuteCmd('E:\sox\sox.exe ', moeten zijn (spatie achter exe zodat hij de muziek file er niet vast aan plakt.

Groet,
Bugger

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht