To center text in a panel manually requires some scripting. This x coordinate variable example is how I find the x position:
$puts(ARTIST.X,$sub($div(%_width%,2),$div($gettextwidth(%artist%,bauhaus,22,),2)))
The reasoning behind this is as follow. First find the middle point of the panel by dividing the total width of the panel by 2. Then find the middle point of your text width. Then subtract half the panel with with half the text width and this will get you the middle point to align the center of the text with the center point of the panel width. The function gettextwidth makes the textlength into a variable.
Change ARTIST.X variable name to whatever you want (be sure to call the variable also by it's changed name), change %artist% to whatever tag you want to use, change bauhaus to font you want to use and change 22 to the font size.
When drawing your text be sure you use the same values like this:
$font(bauhaus,22,)
$drawtext(%artist%,$get(ARTIST.X),13,%_width%,40,0-0-0,)
For your second question to have pieces of text on the same line is possible but a bit tricky if the sizes of both text elements have variable sizes since for both text elements you'd have to calculate the center x coordinate relative to each other's sizes.
You can't define font color twice within the same $drawtext function thus each separate color needs to be drawn once and thus for each a separate x coordinate needs to be set. Doing something like $drawtext(%artist% - %title%,x,y,w,h,color1, color2) doesn't work.