-- of course this will be a part of a bigger Lua file, I just wanted to keep it
-- simple. copy and paste for genre ( song:GetGenre() ) and artist ( song:GetDisplayArtist() ).
-- also you can throw other shit like maxwidth in the init; I suggest that since
-- you'll be generating these dynamically, unlike IIDX. may also want to throw
-- in some horizaligns.

local SmallRefresh = cmd(finishtweening;diffusealpha,0.5;glow,1,1,1,0.75;bounceend,0.25;diffusealpha,1;glow,1,1,1,0;);
local LargeRefresh = cmd(finishtweening;glow,1,1,1,0.75;zoomy,1.15;decelerate,0.25;glow,1,1,1,0;zoomy,1;);

local t = Def.ActorFrame {
    OffCommand=cmd(bouncebegin,0.3;zoom,0;);
	-- Genre
	LoadFont( "PreviewText","Genre" )..{
	Text="jews";
	InitCommand=cmd(playcommand,"Set";horizalign,right;shadowlength,0;maxwidth,SCREEN_WIDTH/2);
	SetCommand=function(self)
		local song = GAMESTATE:GetCurrentSong();
		if not song
			-- exit early, hide
			then self:visible(false);
                
			return;
		end;
		-- otherwise, set it to the song title
		self:visible(true);
		self:settext( song:GetGenre() );
        self:playcommand("Animate");
	end;
	CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
    AnimateCommand=SmallRefresh;
	};
	-- Main Title
	LoadFont( "PreviewText","Title" )..{
	Text="jews";
	InitCommand=cmd(playcommand,"Set";y,37;horizalign,right;shadowlength,0;maxwidth,SCREEN_WIDTH/2);
	SetCommand=function(self)
		local song = GAMESTATE:GetCurrentSong();
		if not song
			-- exit early, hide
			then self:visible(false);
			return;
		end;
		-- otherwise, set it to the song title
		self:visible(true);
		self:settext( song:GetDisplayMainTitle( ) );
        self:diffuse( color(1,1,1,0) );
        self:diffusebottomedge( SONGMAN:GetSongColor(song) );
        self:playcommand("Animate");
	end;
	CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
    AnimateCommand=LargeRefresh;
	};
--~ 	-- Main Title
	LoadFont( "PreviewText","Title" )..{
	Text="jews";
	InitCommand=cmd(playcommand,"Set";blend,"BlendMode_Add";y,37;horizalign,right;shadowlength,0;maxwidth,SCREEN_WIDTH/2);
	SetCommand=function(self)
		local song = GAMESTATE:GetCurrentSong();
		if not song
			-- exit early, hide
			then self:visible(false);
			return;
		end;
		-- otherwise, set it to the song title
		self:visible(true);
		self:settext( song:GetDisplayMainTitle( ) );
        self:diffuse( color(1,1,1,0) );
        self:diffusebottomedge( SONGMAN:GetSongColor(song) );
        self:diffusealpha( 0.25 );
        self:playcommand("Animate")
	end;
	CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
    AnimateCommand=LargeRefresh;
	};
--~ 	-- Course
	LoadFont( "PreviewText","Title" )..{
	Text="jews";
	InitCommand=cmd(playcommand,"Set";y,37;horizalign,right;shadowlength,0;maxwidth,SCREEN_WIDTH/2);
	SetCommand=function(self)
		local song = GAMESTATE:GetCurrentCourse();
		if not song
			-- exit early, hide
			then self:visible(false);
			return;
		end;
		-- otherwise, set it to the song title
		self:visible(true);
		self:settext( song:GetDisplayFullTitle() );
        self:diffuse( color(1,1,1,1) );
        self:diffusebottomedge(color("#00aeef"));
        self:playcommand("Animate")
	end;
	CurrentTrailChangedMessageCommand=cmd(playcommand,"Set");
    CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
    AnimateCommand=LargeRefresh;
    Condition=GAMESTATE:IsCourseMode();
	};
		-- Artist
	LoadFont( "PreviewText","Artist" )..{
	Text="jews";
	InitCommand=cmd(playcommand,"Set";y,78;horizalign,right;shadowlength,0;maxwidth,SCREEN_WIDTH/2;);
	SetCommand=function(self)
		local song = GAMESTATE:GetCurrentSong();
		if not song
			-- exit early, hide
			then self:visible(false);
			return;
		end;
		-- otherwise, set it to the song title
		self:visible(true);
		self:settext( song:GetDisplayArtist() );
        self:playcommand("Animate")
	end;
	CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
    AnimateCommand=SmallRefresh;
	};
};

return t;