No announcement yet.

Spinner TIVO with Framed Now Playing Integration

  • Filter
  • Time
  • Show
Clear All
new posts

    Spinner TIVO with Framed Now Playing Integration

    Spinner TIVO is the "Now Getting" companion to "Now Playing". It is the agent that goes onto the internet and records the streaming media comming from streams a very large library with very flexible genre selection.

    The ID3 tag is captured and used to place the tracks into the library which is structured as Artist / Album / Track.mp3

    The agent can also download all the lyrics and artists bio's for all entries in the library.

    A library management script is also included that assures that the Nirvis user.mdb library database is consistent with the contents of the library files as well as internally consistent. It processes songfiles, album covers, and playlists. It updates the library if new items are present or if they have been deleted. All organization and naming conventions are consistent with those used by MusicMatch and Nirvis CDJ.

    The front-end to Spinner TIVO / "Now Getting" is a web page with three views. One view provides the statistics as to number of tracks captured and the hit-rate for new tracks. A second view allows playlist profiles to be developed so the agent can populate them when the track is played by A third view shows the tracks that have been recorded by and the frequency which each is being played by

    The integration with Now Playing took a multiframed / hidden frame approach so that only information that changes on the page is updated. Once created, the page does not need to be refreshed, yet all data and button clicks will be current with CDJ. The frames appoach also allowed for a few additional features to Now Playing. One of these is display/control of Spinner TIVO components from the Now Playing page.

    Files are located in the Script Libary at SpinnerTIVO
    Attached Files

    Michael can you use your version of Nowplaying as a stand alone? I am interested in the framed version.



      Keep up the good work!!


        Jake, the looks (and guts) are all yours. I just put it in a different package. At Christmas time you may drool over the packaging, but what you really want is what is inside.

        John, NPFrame can be run standalone. Just use the file and you should be all set.


          V1.1 Added ID3 tag processing with the following performed
          1. Encodes ID3 information into the converted MP3 files
          2. Verifies that file names are the same as the ID3 tag names in the .mp3 file and will change the name of the file to match.
          3. Added a new .exe SpinnerBurnID3.exe that is manually run (double click) That will read all files in the library and install the database information into the ID3 tag segment of the file.
          4. Added a new file /Scripts/SpinnerID3Listing.vbs that will produce an html page containing all the tracks in the library and their ID3 information. This is based off of a program by Tim Smulders

          NPFrame Updates:
          v1.1 4-16-02
          Added homeseer.ini configuration variable that can be set to false if the Spinner tables are not installed to prevent attempts to access the Bio text from the spinner table. This should allow NPFrame to be fully run without Spinner TIVO installed

          Added "B" and "L" to track info pane to show if Bio and Lyrics data has been found for the Artist / Track currently playing. The "B" or "L" will appear if data is available

          Fixed problem with Bio search reference that prevented access to web to obtain the data.

          Added monitoring for playlist to augment the existing monitoring for play/stop/pause
          to accomdate multiple client configuration where other client changed the playlist

          Fixed CDJ_Albums_2.txt reference to allow reference to NPFrame or NowPlaying


            Michael, I wonder whether you might be able to help out with some suggestions.

            I am trying to get NPFrames to work under IIS, and for the most part, I have it working.

            However, the Navigation buttons at the bottom of the page for stop/play etc do not seem to do anything.

            From a quick look at the cod, it seems each click is processed by javascript which posts a message to another frame.

            I would like to add in some log statements into this other frame to track down where the proiblem lies.

            Would you be able to point out to me which frame, and thus which ASP script I should add my log commands? I can't seem to work out which one it should be.

            I really appreciate your work, NPFrames is great!

            Many thanks


              I am having an issue with the npframelyrics page. For some reason I am not able to get the lyrcis from a webpage. If I use the old nowplaying lyrics page, it works just fine. Is it possibly something in my config?

              Since there is no error messages besides it was unable to locate the lyrics, is there anything else I should look out for?

              If I click on the WWW button, the lyrics come right up on a web page.

              Any help to get this awesome mp3 integration working, would be great.


              PS. I also have not installed Message Central on my machine since I do not need it. Is this something that is required?

              [This message was edited by Mike Lagase on Saturday, 27 April 2002 at 10:09 AM.]



                I've been working with John Wilson making NPFrame leaner and more robust so I would suggest that you work from the version 2.3 that is part of SpinnerBundle 1.3 posted today.

                When any of the row of buttons at the bottom of the screen (NPFrameR2B.asp) are clicked two actions occur. One is local to the client in javascript which changes the button icon to acknowledge that it was clicked. For most button it will be changed back in about 1/2 second. The explode, play, pause, and stop buttons are changed to a new state based upon the server's response and this response is detected in NPFrameMonitor. NPFrameMonitor will detect that TTF has changed the explode/condense state or the play/pause/stop state and it will formulate a command that is executed in the hidden frame to change the icon's .src property. The hidden frame used by NPFrameMonitor to do this is now named hMonitor and I believe it was previously hR1C2B. The "UpdateHiddenFrame" call in NPFrameMonitor is where the javascript is built with the necessary commands to make the icon changes.

                Going in the other direction, a button push is delivered via the hidden frame hFR2B back to NPFrameR2B for service. It's name has been transfered to the value contained in the request.QueryString("ClientAction"). NPFrameR2B evaluates in a Select statement and forwards the request to \Scripts\cdj_playit.vbs. cdj_playit.vbs will write to the homeseer log that will result in a callback to Track_to_File from which a CDJ command will be delivered. TTF will recognize that the status from CDJ changed and update the virtual devices. NPFrameMonitor will see a change in status and start the cycle again.

                Some debug thoughts -
                1) make certain you have the \Script version of cdj_playit.vbs. When I ported NP to IIS I changed this to an ASP procedure and modified the input interface to use the querystring.

                2) a button push should first be seen by NPFrameR2B and shortly after that by TTF data in the homeseer log. There is a constant in the .ini file (debugMode) that when set and the install program run will provide a trace of how data is flowing in the package. ClientAction is the common item used to deliver all actions initiated by the client except the two playlist pulldowns. The javascript in NPFrameR2B makes the transformation.

                Mike -

                I originally wrote the lyrics algorithm for Spinner TIVO based on Jake's. When NPFrame was integrated then it was modified to share common code. I suspect that I broke it during this transformation. It is a function that I do not use much so it did not get much attention. You are welcome to do a little debugging or eventually I will get back and figure out what is not working with it. It should not be a big thing since I did have it working when Spinner TIVO was stand-alone. At that time I populated my lyrics library via Spinner TIVO.


                  Ive just installed your latest NPFrames into my IIS web server, and Ive come across a command IIS doesn't seem to like.

                  Its from the NPFrameMonitor.asp file, and the command is
                  Response.Write WDT("Target.....)
                  It doesn't like the commnad WDT.

                  What does this command do?

                  Many thanks


                    It performs the function of assuring that a heartbeat exists between the server and the hidden frame that updates changes on the client. It is contained in version which is included in the SpinnerBundle 1.3


                      Well, following your advice, Michael, regarding the cause of the errors I'm having on NowPlaying, I'm trying to implement NPFrame v1.3.

                      It is working... sort of.

                      First thing I could use some help with: I'm trying to remove the header altogether. While I had no troubles doing this with NowPlaying, it seems to me that every file associated with NPF has a "includes header" and I can't seem to get it to go away. Which one do I need to edit?

                      Also, the top of the page is reading "Now Playing,,bgcolor='#000000' background='/cdj/images/backs/d01_bg.gif',,nostyle"

                      Next, there's a "Lyrics" button floating in the middle of the right side of the screen.

                      Next, the frame that has all the actual data on it has sliders and the content is pretty whacked: it appears that the homeseer.ini did not propagate to some of the .asp files, as there's errors in there of attempts to reference default directories.

                      Where did I go wrong? I have a feeling I missed something in the RTFM process, but I've re-read it a few times and can't see what I'm missing.


                      PS Update: I looked at the errors I was getting and checked the HS logs. I didn't realize that I needed to load the HiddenFrame and IniTool packages as well - as least I didn't notice that in the NPFrame package. I loaded the DatabaseUtilities package as well, for good measure. I did not load the MessageCentral or Spinner packages; do I need them for NPFrame?

                      Also, I noticed that the page errors I was getting were referring to a SpinnerArtist database. I found the references in three .asp files and manually modified them to "use spinnerartist databse = false"; not sure why it didn't work with the .ini stuff.

                      Odd item: clicking on "NPLyrics" button sent HS to launching three instances of the lyrics script; I have not been able to repeat this error - it stopped after I moved off the web page.

                      Still haven't figgered how to get rid of the header.



                      (see profile for environment)

                      [This message was edited by Gregory X on Monday, 29 April 2002 at 10:33 PM.]


                        The header is the R0 frame so if you go into NPFrame.html and remove the src='/cdj/NPFrameR0.asp' you should eliminate the header. This will also leave a white frame. More likely you will want to eliminate the customheader call in NPFrameR0.asp, unless you want to reallocate screen space which is done in NPFrame.html.

                        The display you are seeing with the Now Playing,, etc comes from the customerheader call which uses my variant of header.asp which is in the archive. If you remove R0 then this should no longer appear.

                        There is a new Lyrics and Bio button to the right of the top playlist pulldown. These are used to display the lyrics or bio in the window where the track info normally shows.

                        After you make your changes to homeseer.ini you need to run NPFrameInstall.txt. Each time a change is made to the .ini file the same needs to be rerun to propogate the changes to all the files that need to know about the change.

                        You are welcome to email your homeseer.ini and any files that you would like me to look at. From that I can likely give better advice.


                          I got the .ini issue worked out - I hadn't loaded the IniTool package or the HiddenFrame package, so the NPFrameInstall.txt script wasn't doing anything - just bombing when it couldn't find the necessary scripts it was supposed to run.

                          It sounds like much of the changes I want to make will be in the NPFrame.html file, as I'm trying to do with NPFrame what I was doing with NowPlaying: strip it down to the raw "stuff" and stretch everything out to fill an 800x600 screen for my Fujutsu P510s.

                          Yeah, I know... all written to run with the customheader on an Audrey... but this is for use JUST to show what's playing and/or change it.

                          So, what I'm trying to do it lose the (now) white block at the top of the screen, then resize everything else - except the control buttons at the bottom. Well, that's what I had going with NP that I (and the ever-important wife) would like to see again. So... how to kill the "header frame" first... then how to resize the frames for everything else, plus resize the fonts and the pictures and the multi-choice lists - did I forget anything?

                          I hashed it all out in short order with NP, but your (much more reliable) NPFrame has all the sizing stuff all scattered... or am I just not looking in the right place?

                          Uh... hopefully after I get that all done, I'll have a better idea how to go after resizing the Lyrics, Bio and Search screens - again, I figgered it with NP, but this seems a bit tougher for a simpleton as I.


                          (see profile for environment)


                            Thanks for the help with WDT.

                            I now have your latest version of NPFrame working better than ever before! The peformance is GREAT!

                            This is no mean feat, given that I am using IIS instead of HS' inbuilt WebServer AND that CDJ and HS/IIS are running on completely different computers.

                            I staill have a few issues I have to resolve to do with lyrics,bio and building the music sets.

                            Well done!

                            Many thanks


                              When I use DCOM to distribute my applications I have a long authentication delay. Did you do something to circumvent this or does the delay not cause any real problems with NP? I think I will port my web applications to IIS to assure that homeseer is not busy servicing web pages when some X10 actions are needed. I would like to get your updates for IIS so I will not need to go through the NP on IIS cycle again from scratch.

                              I'm glad it has worked out for you. I gave up earlier on "splitting" CDJ / TTF / NP. I never even considered your approach. It is a good way of doing it.

                              Note also that there appears to be a bug in the Lyrics from web code so if you are having problems in this area it is not something with the port, but with the original. It did work before I integrated Spinner TIVO with NP, but have not got back to fixing it.