Laatste nummer van uur exact passend vóór tijdsein

Voor vragen over Playlist Automation Language.
Gebruikersavatar
Wout
Beheerder
Berichten: 3501
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Wout »

Als je de tijdsein al vroeg hoort is omdat hij geen resultaat heeft gevonden.
tip- als je de PAL laat lopen open dan ook je PAL-editor, die zal regel voor regel door de PAL gaan en op de rechterscherm informatie aangeven.

Maar om nu weer een andere script te gaan gebruiken is niet verstandig.
Je bent nu op de goede weg en het einde is nu bijna in zicht en nu de weg opnieuw te betreden is zonde dan van je tijd.

Om code te posten staat hier.
viewtopic.php?f=216&t=2910#p18329
Afbeelding
Gebruikersavatar
Adrie
***
Berichten: 51
Lid geworden op: 29 jan 2009, 18:33
SAM-versie: 2020.2
Database: MySQL
Windows: 11
Locatie: Den Haag

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Adrie »

Beste Paul,

Ik wil niemand voor de voeten lopen, maar ik denk dat je beter iets om kan draaien en dan werkt het wel.
Tenminste je moet er ook wel voor zorgen dat er genoeg opvulnummers zijn, in je database, om uit te kiezen.
Dus allerlei lengtes, uiteenlopend van eigenlijk: 0:15 tot 5:00 min.
Anders krijg je het verhaal van Wout.

Dus zo dan:

Code: Selecteer alles

            if not D.EOF then
            begin
                Queue.Addfile(uur, ipTop) ;
                Queue.Addfile(+D['filename'], IpTop) ;
                D.next ;
            end
            else
            begin
                WriteLn('Geen Resultaat') ;
                Queue.Addfile(uur, ipTop) ;
            end ;
            D.free ;  
Het viel me toevallig op na bestudering van het script.

Korte uitleg;
"ipTop" wil zeggen dat die regel bovenaan word gezet,
maar er volgt nog een regel en die komt daarna dus die komt dan bovenaan te staan.

Ik hoop dat je hier nog iets mee kunt, want voor de rest klopt het script gewoon.

Groet, Adrie

PS: het is niet de bedoeling van mij om iemand te verbeteren.
Excuses daarvoor.
Gebruikersavatar
Wout
Beheerder
Berichten: 3501
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Wout »

damm, je hebt gelijk Adrie.
Zit hier te schrijven zonder te testen, geen pc meer alleen een smartphone. :D
Afbeelding
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Heren, heren, het werkt! Als de 'nood' het hoogst is, is de redding nabij. Fantastisch! Wat een klein shuffeltje teweeg kan brengen. Het tijdsein wordt nu als een aparte track toegevoegd aan de queue, wat voorheen niet gebeurde. Niet ontzettend van belang, want het tijdsein kwam toch wel, maar toch. En het allerbelangrijkste: het opvulnummer wordt volledig afgespeeld. Weliswaar soms met een paar seconden overlap, maar dit is van minder belang i.v.m. de streamvertraging die er toch al is. Het grenst aan perfectie, waar ik altijd naar op zoek ben.

Het enige schoonheidsfoutje wat er nog in zit, is het tijdsein van 12 uur middernacht. Dat staat als 24.mp3 in de map 'tijd', maar het script blijft volharden om 00.mp3 te vinden (waar ik hem vorige week per ongeluk naar vernoemd heb). Ondanks [verify songs] en [delete physical file). Ik ga alle tijdseinen opnieuw erin zetten, mocht ik er niet uitkomen, dan meld ik dat nog.

Wout, Dr. O en Adrie, nogmaals heel veel dank voor jullie hulp, hier typt een wat dit betreft blij mens! Jullie blijven tovenaars.

Groeten,
Paul
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Hoewel ik nog steeds een blij mens ben, blijft het tijdsein om 00:00 uur middernacht een spaak in het wiel steken. Alle tijdseinen van 01 t/m 24 uur opnieuw hernoemd (01 t/m 24) en opnieuw in C:\tijd gezet, maar SAM blijft het er niet mee eens zijn. Staat in C:\tijd als 24.mp3 en niet als 00.mp3. 00.mp3 via [Verify songs] en [Physical file] wederom verwijderd. SAM en pc opnieuw opgestart. Kan iemand hier nog een licht op werpen?

Edit: Na om de zoveel tijd [Verify songs] te doen, verwijdert SAM wel 1 track, maar het euvel blijft...

Groeten,
Paul

P.S. Het script blijf ik bewaren als een kloek op haar kuikens! :)
Tijdsein 24.00 uur in queue.JPG
Tijdsein 24.00 uur.JPG
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Gebruikersavatar
Wout
Beheerder
Berichten: 3501
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Wout »

Kan je de 24.mp3 niet veranderen naar 00.mp3 in de map c:\tijd?
Afbeelding
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Dat heb ik ook geprobeerd. Op zowel 24 als 00 pakt hij hem niet. Kijkt 'SAM' voor 12 uur middernacht naar 00 of 24? Of zou het een Windows fenomeen kunnen zijn en niet aan het script/SAM kunnen liggen?
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Vraag me niet hoe, maar als bij toverslag werkt het tijdsein van 00:00 uur nu wel. Hernoemd van 24 naar 00 (omdat de song-info steeds verwees naar 00.mp3). Die stond wel degelijk in de map maar werd toch niet gepakt.

Gehele map [tijd] naar ander schijfstation verplaatst, weer terug gezet naar C:\, nog steeds geen tijdsein. Vervolgens diverse malen de computertijd op 23:54 gezet en na een aantal keren kwam het tijdsein van 00:00 er plotsklaps uit...

Geen idee of dit er iets mee te maken heeft: Bij [Eigenschappen] van alle tijd-mp3's staat als [Kenmerk]: Al. De 00.mp3 stond als enige met Kenmerk A. Als ik nu kijk, staat deze nu ook op Al.

Hoewel me het een raadsel blijft, werkt ook dit nu en dat telt. Prijs de dag niet voor het avond is, dus nog even een poosje blijven testdraaien en dan zet ik alles over naar de pc waarop de stream draait. Dank nogmaals voor het meedenken en alle hulp!

Groeten,
Paul
drOhimself

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door drOhimself »

Goede berichten dus Paul !

Zou je ons (en alle andere mee-kijkers) nog blij willen maken met het plaatsen van jouw gebruikte PAL(s) hier?

Het is volgens mij gebruikelijk dat bij een oplossing eigenlijk iedereen naar het laatst geplaatste bericht kijkt, want daar staat dan vaak de oplossing.
In dit geval is/zijn jouw PAL script(s) de oplossing.
Dank !

Zodra alles op je stream pc staan, is het misschien ook nog leuk om een linkje te plaatsen zodat we je radio live kunnen beluisteren.....
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Vanzelfsprekend ga ik het script hier plaatsen en was dat uiteraard ook van plan. Momenteel loopt hij in de test en draait tot nu toe uitstekend, echt mooi zo! Mocht er toch nog een hapering voorkomen - wat ik niet verwacht - dan zou het script weer bekeken moeten worden en eventueel aanpassen, dus mogelijke verwarring. Ik kan niet wachten, maar wacht nog even de testronde af.

Groeten,
Paul
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Vandaag als een zonnetje op de test-pc gelopen. Vanavond (remote) dus het script en tijdmap overgezet naar de pc waarop de stream draait. Toen het script startte, gaf hij een foutmelding in row 1- Data truncated for column 'Songrights' at row 1 (zie plaatje). Eerder gaf hij ook de foutmelding 'Cannot start a closed dataset', maar die melding verdween later. Ik ga dus eerst op het forum op zoek naar wat dat nou weer zou kunnen zijn... Voor de volledigheid hier het complete script.

Groeten,
Paul
Error row 1.JPG

Code: Selecteer alles

        // Script uit Topic [Plaat uitspelen voor het nieuws - 24 maart 2013 Wout]

    PAL.Loop := True ;

   // Begin het script op elk uur vanaf 5 voor het uur
   PAL.WaitForTime(T['XX:55:00']) ;

   // Speed some things up
   PAL.LockExecution ;

      // Wat variabele instellen
      var RestTijd : Integer ;
      var Now_minutes, tijd, uur, nieuws : String ;
      var D : TDataSet ;
      var plus_uur : DateTime ;

      plus_uur := T['+01:00:00'] ;
      tijd := FormatDateTime('hh', plus_uur) ;

      // plaats hier de juiste directoy waar je nieuws & tijds-jingle staan
      uur := 'C:\tijd\' + tijd + '.mp3' ;
      // nieuws := '\\HOMESERVER\Jingle\NEWS\nieuws.wav' ;

      // Alleen de minuten van het uur
      Now_minutes := FormatDateTime('n', Now) ;

      // De aantal minuten afhalen van 1 uur en waar rekening is gehouden met de spelende nummer in miliseconden
      RestTijd := ( ( (60 - Now_minutes ) * 60000) ) - ( Activeplayer.Duration - ActivePlayer.CurTime ) ;

      // Hier zoek ie de nummer met de juiste lengte + een beetje meer
        D := QUERY('SELECT ' +
                 'filename, duration '+
               'FROM '+
                 'songlist, categorylist '+
               'WHERE '+
                 'songlist.ID = categorylist.songID '+
               'AND '+
                 'categoryID > 0 '+
               'AND '+
                 'date_played <= DATE_SUB(NOW(), INTERVAL :track MINUTE) '+
               'AND '+
                 'date_artist_played <= DATE_SUB(NOW(), INTERVAL :artiest MINUTE) '+
               'AND '+
                 'date_album_played <= DATE_SUB(NOW(), INTERVAL :album MINUTE) '+
               'AND '+
                 'date_title_played <= DATE_SUB(NOW(), INTERVAL :titel MINUTE) '+
               'AND '+
                  'duration '+
               'BETWEEN '+
                  ':RestTijd '+
               'AND '+
                  ':RestTijd + 9000 ' +      // Hier wat speling op de lengte van het gezochte nummer met 9 seconden
               'ORDER BY RAND() ' +         // Hij pakt een willekeurige nummer die voldoet aan de eisen
               'LIMIT 1', [PlaylistRules.MinTrackTime, PlaylistRules.MinArtistTime, PlaylistRules.MinAlbumTime, PlaylistRules.MinTitleTime, RestTijd], True ) ;

      D.First ;

        if not D.EOF then
            begin
                Queue.Addfile(uur, ipTop) ;
                Queue.Addfile(+D['filename'], IpTop) ;
                D.next ;
            end
            else
            begin
                WriteLn('Geen Resultaat') ;
                Queue.Addfile(uur, ipTop) ;
            end ;
            D.free ;

    // Slow some things down
    PAL.UnLockExecution ;

 
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Heb wat gegoogled en het stikt van topics met de foutmelding 'Data truncated for row 1'. Uitleg daarin is met programmeertermen die heftig boven mijn pet gaan. Men heeft het ook over de link met de database, MySQL etc. Op de test-pc loopt het script prima en alles 1 op 1 gekopieerd naar de stream-pc. Dat zou toch goed moeten gaan zou je zeggen. Maar op 1 meter voor de finish ga ik het niet opgeven!

Groeten,
Paul
drOhimself

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door drOhimself »

Met andere woorden : zowel je test-pc als je stream-pc werken nu met hetzelfde PAL script en roepen je database aan.

Maken ze dan een link naar een centrale MySQL database, of heb je die (MySQL db) op beide pc's staan ?
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Gezien de resultaten bij het googelen, zou het in de database (MySQL) kunnen zitten. Als ik me daarin begeef heb ik het gevoel op een wankel bruggetje te staan waar ik zo doorheen zak.

Op de test-pc staat versie 4.1 en op de stream-pc staat versie 5.1. Ik ga nu proberen met het tooltje van Wout viewtopic.php?f=226&t=2301&p=32458#p32421 of ik daarmee iets kan doen. Dat heb ik al eens eerder gedaan op de test-pc. In dat 'DOS schermpje' zag ik toen vreemde dingen: hij zegt dat de backup etc. gedaan is, maar daaronder eveneens een regel met 'kan opgegeven pad niet vinden' of zo...

Ik weet ook niet of dat ongestraft kan doen op de draaiende stream-pc, of SAM daarvoor moet afsluiten.

Gr. Paul
drOhimself

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door drOhimself »

Paul,
Zou geen kwaad kunnen om dat tooltje te laten lopen, hou rekening met het volgende:

SAM maakt gebruik van je MySQL database op het moment dat je queue leeg is, dan wordt er een/meerdere nummer(s) gezocht.
Ook rond het hele uur (xx:55:00) wanneer gekeken wordt welk nummer er past voor tijdsein.
Check je active PALs wanneer die de database benaderen.

Ik doe dat soort database acties altijd aan het begin van een heel uur, en aan het begin van een nummer.
Dan weet ik zeker dat SAM geen acties hoeft te doen naar de database.
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Ik heb het SAMrepair.rar tooltje gerund, omdat daar 5.1 bij stond. Geen idee of ik een Samwait gebruiker ben. Tooltje in de dir van SAMBC gezet en gerund. Het enige wat ik zie is een enorm snelle flits van een zwart dos-schermpje en daardoor niet leesbaar wat er geschreven staat. Soms 1 regel, soms 3 of 4 regels flitsend.

Script opnieuw erin gezet, maar foutmelding bleef. In een ander tooltje zou ik m'n wachtwoord moeten veranderen (cq. er in zetten), maar dat weet ik niet meer.

Als we het over hetzelfde hebben, dan is mijn queue met nummers nooit leeg. Ik heb er 20 in gezet. Als een nummer uit de queue wordt gedraaid, dan vult die automotatisch weer aan tot 20. Dus ook een continuing story (haha).

Ik heb maar 1 actieve PAL, die ene bewuste dus. Die werkt (dus?) alleen maar om xx:55.00 om een passend nummerke te zoeken en om xx:00:00 voor het tijdsein.

Zou het zin hebben om MySQL (en zo ja, welke versie) tijdens het uitzenden te deïnstalleren en opnieuw erin te zetten? SAM zelf is v4.2.2.
Gebruikersavatar
Wout
Beheerder
Berichten: 3501
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Wout »

SAMWait heeft geen nut, dat is om vertraagd op te starten.

SAM Repair wel inderdaad kijken en veranderen als je een andere versie heb dan 5.6

Code: Selecteer alles

C:\Program Files\MySQL\MySQL Server 5.6
Heb je MySQL 5.1 dan wordt de code.

Code: Selecteer alles

C:\Program Files\MySQL\MySQL Server 5.1
Maar dat moet je bekijken welke versie van MySQL je hebt en in alle map verwijzingen in de bat-file veranderen.
Tevens ook je username + password veranderen. (nu staat het standaard op root & wachtwoord)

Code: Selecteer alles

-uroot -pwachtwoord
Afbeelding
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Wout, op de test-pc draait SQL 4.1, op de stream-pc 5.1. Als ik dat tooltje draai, dan zie ik alleen een dos schermpje, verder niets. Alle mapverwijzingen aanpassen... geen idee waar die zitten. Ik heb NUL kennis van databases en sql. Dat is mijn probleem en van niemand anders. Ik vrees dat dit het dus niet gaat worden voor mij.

Jullie hebben me al enorm geholpen waar ik heel dankbaar voor ben. Vele uren ben ik ermee doende geweest. Dat is uiteraard niet erg en leuk als je resultaten ziet. De resultaten zijn alleen door jullie aangeleverd. Ben nu ff op een moment om het maar even te laten rusten.

Tezijnertijd ga ik sql 4.1 maar op de stream-pc zetten, want die deed het uistekend op de test-pc. Tegen die tijd zal ik me weer melden!

Groeten,
Paul
Gebruikersavatar
Wout
Beheerder
Berichten: 3501
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Wout »

Als je 4.1 erop gaat zetten zal sommige PAL scripten niet meer werken in de toekomst.
Een mapverwijzing is de bat-file openen met een txt-editor en veranderen.
Afbeelding
Paul538

Re: Laatste nummer van uur exact passend vóór tijdsein

Ongelezen bericht door Paul538 »

Ik heb RepairMySQL gepakt, bat gewijzigd in txt, maar daar staat al de juiste verwijzing naar 5.1. Alleen vrees ik dat ik het wachtwoord niet weet... Ik ga nog maar even een poging wagen.
Laatst gewijzigd door Paul538 op 20 aug 2013, 21:00, 1 keer totaal gewijzigd.
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht