RadioBOSS 7.0.1.7

HMMMM

Active member
HI I am currently testing RadioBOSS 7.0.1.7

All is looking ok so far with deployment I will report back on this thread. we are testing this version I hope this help.

1. The 'Run Now' button is still not enabled upon opening RB until you click in the schedule window. This happens every time you start RB it has not been resolved in the previous version:

7a858f2e3d66199df74b9e2685fa0f8d.png


 
2. Pressing 'RunNow' does not set new schedule event countdown to 2 hours but carries on the same countdown irrespective of the new 2 hour playlist. Tis cuts of some of the playlist as it is short timed.
 
3. Report Notifications no longer work with parameters because of policy policing servers the data is stripped (this is not usable) a requirement to fire this as a hook after the XML files is uploaded via FTP is required. This will enable the FTP data to be acted upon.

4. The XML BOM file type refers to BOM image encapsulating promised to be included in next version versation after 6.9 which dd not get included.
 
1. The 'Run Now' button is still not enabled upon opening RB until you click in the schedule window. This happens every time you start RB it has not been resolved in the previous version:
This button is only available when you have an event selected in the list. If no event is selected, button is not enables as there's nothing to do for it.

2. Pressing 'RunNow' does not set new schedule event countdown to 2 hours but carries on the same countdown irrespective of the new 2 hour playlist. Tis cuts of some of the playlist as it is short timed.
It's not supposed to. The purpose of this button is to start an event, and this is what is does, nothing else. This is not a bug, I'd ask you to stop "reporting" this every day.
 
3. Report Notifications no longer work with parameters because of policy policing servers the data is stripped (this is not usable) a requirement to fire this as a hook after the XML files is uploaded via FTP is required. This will enable the FTP data to be acted upon.
There's no such policy, at least it's not widespread. Looks like it's an issue with some odd hosting provider - not our problem.

4. The XML BOM file type refers to BOM image encapsulating promised to be included in next version versation after 6.9 which dd not get included.
The BOM encoding means that the nowplaying file is prepended by the UTF8 preamble, its purpose is to help identifying file's encoding.
 
5. The Generate Pro still takes too long 3:13 to be used in a schedule event This does not cope with genre separated by ';' or ',' the industry standard tags.

Generation started.
Loading category "All Dance"
Category "All Dance": loaded 30058 tracks
Tracks after filters applied: 0
Creating playlist...
No appropriate tracks in category "All Dance".
Time spent: 03:14
Completed. Playlist duration: 00:00

5fafb8bdb93a92539531bd8dba15fd83.png
 
There's no such policy, at least it's not widespread. Looks like it's an issue with some odd hosting provider - not our problem.


The BOM encoding means that the nowplaying file is prepended by the UTF8 preamble, its purpose is to help identifying file's encoding.
I have tried five websites none coped with this. Please read our history on this I posted tech feed back to you on one of the sites that it was scrubbed.

BOM: https://medium.com/@openbom/openbom-image-property-and-why-its-useful-c45fc3b050c2
 
Last edited:
2. Pressing 'RunNow' does not set new schedule event countdown to 2 hours but carries on the same countdown irrespective of the new 2 hour playlist. Tis cuts of some of the playlist as it is short timed.
It's not supposed to. The purpose of this button is to start an event, and this is what is does, nothing else. This is not a bug, I'd ask you to stop "reporting" this every day.

I am reporting what this does in your new version RadioBOSS 7.0.1.7 so not every day, so we are clear. So why does it not take 2 hours from the set-up dialog this makes this feature unusable as it does not give playlist enough time to play while playlist. I don't understand why you would write something that is not useful. Why would you write something that pulled in a schedule playlist halfway through a playlist and when it played the next it would only play half of it. I understand you don't want to change this or hear about it being reported?
 
5. The Generate Pro still takes too long 3:13 to be used in a schedule event
The time it takes to create a playlist depends on how many tracks you have in the categories, as it needs to load and process them all. Using SQLite for additional information: https://manual.djsoft.net/radioboss/en/remote_controlapi.htm and SSD drive will speed up things. But 3 minutes for 30k tracks seem good enough. You can create playlists in advance, and then load them when they are needed: https://manual.djsoft.net/radioboss/en/automatic_playlist_generation.htm

This does not cope with genre separated by ';' or ',' the industry standard tags.
Currently, it's not supposed to. We never promised that it'll separate multiple genres from the Genre field. We'll consider adding this feature in the future - thank you for the suggestion.
 
So why does it not take 2 hours from the set-up dialog this makes this feature unusable as it does not give playlist enough time to play while playlist.
This button merely starts an event. It's mostly used in two cases: when the Scheduler is in Manual mode, to start events. Or for testing how the events work when you initially configure them/during learning.
 
So why does it not take 2 hours from the set-up dialog this makes this feature unusable as it does not give playlist enough time to play while playlist.
This button merely starts an event. It's mostly used in two cases: when the
Scheduler is in Manual mode, to start events. Or for testing how the events work when you initially configure them/during learning.

Wel, I give up asking with this point 2. then as you won't fix it and you think this is the way it should work then. I would have thought this was basic functionality but what do I know. I also note what if I wanted to run two schedule events a two-hour playlist and a 2-hour random playlist.

b1eb18ea0ba724329d1e48a4d9a77405.png

This hasn't fired yet on my i9 when you press Run Now
 
Yet another one
1708622372237.png





1708622419210.png


When i drag it into playlist

1708622480911.png



As you can see there is nothing wrong with the file Its not corrupt just not loading
 
I also note what if I wanted to run two schedule events a two-hour playlist and a 2-hour random playlist.
This is easily done, you simply create events to start those playlists when needed.

Yet another one
This is clearly an error with your playlists. Windows' properties window shows that the file is located in "C:\Music & Video" while in Track Tool (and meaning in the playlist too) the path is completely different: "C:\My Music". As was said many times before: the playlist has incorrect paths, and now it's officially confirmed.
 
Not at all Dmitri they are only text files as I said these silly directory changes have now been pointed to current directory positions, this why there has been no comments, but we are running new release version 7.0.1.9 and Thimmeo 10.21 to see if it's been improved with more ram. I must admit sound is awesome through my speakers. The --.-- may not be associated with this time will tell if it reappears. thank you fry the update and hard work I know there is lot of changes but it's much better for it. I hope you nailed it in release :)
 
I also note what if I wanted to run two schedule events a two-hour playlist and a 2-hour random playlist.
This is easily done, you simply create events to start those playlists when needed.

Not really sure why to say that there is no easy way to start timer. It only works properly if it auto runs everything else with 'run now' does not work the same I don't know why you included it as it has no purpose and does not run 2 hr.
 
I note we have lyric tick
1709295084673.png


we need %lyric / or similar %lyrictext and export to xml please?

Whoops if you click on tick you get lyrics wahooo, yay loves RadioBoss
 
Last edited:
As you did something nice for us Dimitri with Lyrics . So I am sharing our windows XML to SQL PHP code complete without Lyrics enjoy
Code:
<?php
/*

// * Create SSQL Entry from FTP delivery
// *


/*
<?xml version="1.0" encoding="utf-8"?>
<PLAYER name="RadioBOSS" version="6.2.3.2">
<TRACK ARTIST="Morcheeba" TITLE="The Sea" ALBUM="Parts of the Process" YEAR="2003" GENRE="Lush;downbeat;" COMMENT="Ripped by Winamp" FILENAME="C:\Music &amp; Video\Morcheeba - Parts of the Process\01 - Morcheeba - The Sea.mp3" DURATION="05:49"  STARTED="2022-12-19 01:37:03" PLAYCOUNT="4" LASTPLAYED="2022-12-19 01:37:02" INTRO="0.00" OUTRO="0.00" LANGUAGE="" RATING="0" BPM="150" TAGS="" F1="" F2="" F3="" F4="" F5="" CASTTITLE="Morcheeba - The Sea" LISTENERS="0" />
<PREVTRACK><TRACK ARTIST="Metric" TITLE="Nobody Home" ALBUM="Fantasies" YEAR="2009" GENRE="Lush; Rock; Indie Rock; New Wave;" COMMENT="http://mp3caprice.com" FILENAME="C:\Music &amp; Video\Metric - Fantasies\14_nobody-home.mp3" DURATION="03:13"  STARTED="2022-12-19 01:37:03" PLAYCOUNT="13" LASTPLAYED="2022-12-19 01:34:14" INTRO="182.68" OUTRO="1.26" LANGUAGE=" English" RATING="6" BPM="166" TAGS="" F1="" F2="" F3="" F4="" F5="" CASTTITLE="Metric - Nobody Home" /></PREVTRACK>
</PLAYER>

*/

//exit(); /*************************************************** TERMIATE ********************************************/

$baseurl = "http://website.com/";
$servername = "databaseservername";
$username = "";
$password="";
$dbname = "databasename";
$filename = "images/nowplaying.txt";
$artwork_filename = "images/nowplaying.txt";
$textXML = "";
$title = "";
$artist = "";
$album = "";
$length = "";
$bpm = "";
$genre = "";
$listeners = "";
$comment = "";
$artwork = "";

include "mp3/check_remote_server.php";
$remote_server = checkRemoteServerStatus(
    "http://vtatadustries.net:27274/",
    19200,
    0
);
function ReturnError($code, $text)
{
        $protocol = isset($_SERVER["SERVER_PROTOCOL"])
            ? $_SERVER["SERVER_PROTOCOL"]
            : "HTTP/1.0";
        //header($protocol . ' ' . $code . ' ' . $text);

        echo "<HTML>";
        echo "<img src ='images/favpng_construction-worker-architectural-engineering-cartoon-royalty-free.png' width='200' height='240'></img><br><br>";
        echo "SERVER_PROTOCOL ERROR<BR><BR>";
        echo "Add data to SQL -." . $text . "<br><br>";
        throw Error("EXIT CODE");
        exit();
}

$stat = stat("images/nowplaying.xml");
if($readtime != $stat["mtime"]) {
       readtime= $stat["mtime"];
} else exit();

if ($remote_server == true) {
    // Data Processing  
    $r = fopen("images/nowplaying.xml", "r");
    if ($r !== false) {
        $readdate =
        $length = filesize("images/nowplaying.xml");
        $textXML = fread($r, $length);
        fclose($r);
    } else {
        close($r);
        ReturnError(500, "Failed to read (".$length.") bytes of XML from file XML.");
    }
 
    if($textXML =="") {
    $artist = substr(
        $textXML,
        strpos($textXML, "ARTIST=") + 8,
        strpos($textXML, " TITLE=") - strpos($textXML, "ARTIST=") - 9
    );
    $title = substr(
        $textXML,
        strpos($textXML, " TITLE=") + 8,
        strpos($textXML, " ALBUM=") - strpos($textXML, " TITLE=") - 9
    );
    $album = substr(
        $textXML,
        strpos($textXML, " ALBUM=") + 8,
        strpos($textXML, " YEAR=") - strpos($textXML, " ALBUM=") - 9
    );
   
    $exit_old = false;
   
    // note there is now num_rows  in PDO so we have to calculate a new one to get record number.
   
    } else {
        ReturnError(500, "Failed to write /read from xml."   );
    }
    try {
        $n = 0;
        $conn = new PDO( "mysql:host=$servername;dbname=$dbname",  $username, $password  );
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql =  "SELECT * FROM `played_songs` ORDER BY `datetime` DESC LIMIT 1";
        $result = $conn->query($sql); // Use query as we are returning records.
       
        $row = $result->fetch();
        $conn = null;
        } catch (PDOException $e) {
            ReturnError(500, "Failed to write /read from SQL." . $e->getMessage() );
        }
     
        if (!($artist == $row["artist"]& $title == $row("title")) )
        {
               
            $exit_old = true;

            $genre = substr(
                $textXML,
                strpos($textXML, " GENRE=") + 8,
                strpos($textXML, " COMMENT=") - strpos($textXML, " GENRE=") - 9
            );
            $comment = substr(
                $textXML,
                strpos($textXML, " COMMENT=") + 10,
                strpos($textXML, "FILENAME=") - strpos($textXML, " COMMENT=") - 12
            );
            $length = substr(
                $textXML,
                strpos($textXML, " DURATION=") + 12,
                strpos($textXML, "  STARTED=") - strpos($textXML, " DURATION=") - 13
            );
            $rating = substr(
                $textXML,
                strpos($textXML, " RATING=") + 9,
                strpos($textXML, " BPM=") - strpos($textXML, " RATING=") - 10
            );
            $bpm = substr(
                $textXML,
                strpos($textXML, " BPM=") + 6,
                strpos($textXML, " TAGS=") - strpos($textXML, " BPM=") - 7
            );
            $listeners = substr(
                $textXML,
                strpos($textXML, " LISTENERS=") + 12,
                strpos($textXML, " />") - strpos($textXML, " LISTENERS=") - 13
            );
            $t = fopen("images/nowplaying_artwork_2.png", "r");
            if ($t !== false) {
                $artwork = fread($t, filesize("images/nowplaying_artwork_2.png"));
                fclose($t);
            } else {
                fclose($t);
                ReturnError(500, "Failed to write artwork to a file.");
            }
            $base64artwork = base64_encode($artwork);
            $sql3 = "INSERT INTO `played_songs` (`song`, `artist`, `album`, `length`, `bpm`,`genre`, `listeners`,`track_user_rating`,`track_user_num`,`comment`,`ImageBase64`) VALUES ('$title','$artist', '$album', '$length', '$bpm', '$genre','$listeners','0','0', '$comment','$base64artwork') ON DUPLICATE KEY UPDATE  `listeners`='$listeners'";
            $conn = new PDO( "mysql:host=$servername;dbname=$dbname",  $username, $password  );
            $sql = "INSERT INTO `played_songs` (`song`, `artist`, `album`, `length`, `bpm`,`genre`, `listeners`,`track_user_rating`,`track_user_num`,`comment`,`ImageBase64`) VALUES ('$title','$artist', '$album', '$length', '$bpm', '$genre','$listeners','0','0', '$comment','$base64artwork')";
           
            $conn->exec($sql3);
            $conn = null;
        }
            //echo "New record created successfully";
       
   
        // note there is now num_rows  in PDO so we have to calculate a new one to get record number.
        /*try {
            $n = 0;
            $conn = new PDO( "mysql:host=$servername;dbname=$dbname",  $username, $password);
        } catch (PDOException $e) {
            //echo $sql . "<br>" . $e->getMessage();
            ReturnError(
                500,
                "Failed to write/read record to SQL." . $e->getMessage()
            );
        }
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "SELECT COUNT(`datetime`) FROM `played_songs` ORDER BY `datetime` ASC";
        $result = $conn->query($sql); // Use query as we are returning records.
        $row = $result->fetch();
        $n = $row["COUNT(`datetime`)"] - 500;
        $conn = null;
        if ($n > 1) {
            $sql =
                "SELECT `datetime` FROM `played_songs` ORDER BY `datetime` ASC";
            $q = $conn->query($sql);
            while ($n) {
                $r = $q->fetch();
                $id = $r["datetime"];
                $conn->prepare("DELETE FROM `played_songs` WHERE `datetime`=?"    )
                $conn->execute([$id]);
                $n--;
            }
            $conn = null;
        }
        */
     
   
    } else {
        //Server disconnected
       $readtime="";
    }

?>
 
Last edited:
Back
Top