MLLyrics Plugin

From Cinemar Wiki
Jump to: navigation, search

About

MLLyrics Plugin for use with Mainlobby Server 3 and MainLobby 3. This is a plugin that will work with MusicLobby 3 to pull song lyrics.

This plug-in downloads and displays Lyrics from www.lyricsplugin.com.


Installation

Download and run the MLLyrics_Setup.exe installation file on the primary MLServer3 PC.

www.cinemaronline.com/software/beta/mllyrics/mllyrics_plugin.zip

Configuration

In Musiclobby, create a text button (hit the "library" tab, open "Mainlobby" list, hit "next" button until you find the "text" button you want, close library). Position the "text" button where you want it. Edit the button. In the label field type {{mllyrics_lyrics_zone 1}}. Change "zone 1" to whatever the name of the zone is that you want, ie kitchen, livingroom, etc. You may need to change the text color to fit your need.

MainLobby Server Commands

MLLyrics|GetLyrics~Artist~Song~Zone Name

or

MLLyrics|GetLyrics~Artist~Song

Zone name is optional.


Now supported is multizones that will create a per zone variable containing lyrics for that zone.

The lyric will be found in the "mllyrics_lyrics_<<your Zone Name>>" variable name

Put this in MusicLobby3's On Change field (On Change field is located in the JRMC, click on "Services and Plug-ins" (on left side of screen), then click MusicLobby Server. Select the Update Triggers tab. Add the below command for the zone you want to display the lyrics:

MLServeCmd.MLLyrics|GetLyrics~<<CURARTIST>>~<<CURTITLE>>~Zone 1

Change "Zone 1" to whatever the name of that zone. i.e. Kitchen, livingroom, etc.


Displaying Lyrics in a MLWebLobby window

Originally posted by 19rookie83

1. Setup a server rule so that when the current song title for zone 1 changes it writes down an HTML file containing the song lyrics, and runs a set of functions to refresh the weblobby object of clients that are viewing the song lyrics. There are only a couple of Mainlobby clients in this install and their names never change, nor do their numbers so we are able to call them directly. (Please note that the scenes for the house are stored locally in the a directory called "House" on the C drive, and there is a file server titled "thejerk" after the steve martin movie that all clients can access)

2. Create a scene titled MLLyrics.mls with a weblobby object set to view the HTML file that we created in step 1.

Two simple steps that make all the difference in the world.. now for the code

The server rule: WHENEVER:

Code:
{{mlmediacenter_dadold_zone 1_curtitle}} - this should be whatever variable displays the current track (my server is titled dadold... don't ask)


CHANGES VALUE THEN:

Code:
MLServeCmd.Macro|MLLyrics|GetLyrics~{{mlmediacenter_dadold_zone 1_curartist}}~{{mlmediacenter_dadold_zone 1_curtitle}}~Zone 1!MLPause|2!MLWriteFile|\\thejerk\music\lyricsTextFile.html~WRITE~<html><body bgcolor="#e6ccce">{{mllyrics_lyrics_zone 1}}</body></html>!MLLyrics.kitchenClientWebRefresh!mlLyrics.dadworkstationWebRefresh


(The server pauses for 2 seconds to allow for the amount of time it takes for mlLyrics to grab the new lyrics, it also writes the HTML file to a place that is viewable across the entire network)

The refresh functions that are specific to each client as follows:

Code:
MLLyrics.dadworkstationWebRefresh MLConditional|IsEqual##{{dadworkstationclient_currentscene}}##C:\House\MLLyrics.mls##MLCmd|MLCommand~dadworkstationclient~Web|Refresh~1


Code:
mlLyrics.kitchenClientWebRefresh MLConditional|IsEqual##{{kitchenclient_currentscene}}##C:\House\MLLyrics.mls##MLCmd|MLCommand~kitchenclient~Web|Refresh~1

and so on for each of your clients...

In the MLLyrics.mls scene with the weblobby object put this in the Label field: Code: 420~300~\\thejerk\music\lyricsTextFile.html~1

Bugs

Note that some of the variables have a typo ("lenght" should be "length")
mllyrics_lyrics_lenght_study1=866

New Feature Requests