alex9490 / editor-on-fire

Automatically exported from code.google.com/p/editor-on-fire
Other
0 stars 0 forks source link

Allow tracking of "freestyle" lyric status #120

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Currently, to make a lyric freestyle, users must append a pound (#) character 
to each freestyle lyric.  This could be somewhat time-consuming when marking 
several phrases worth at a time.  It would be useful for EOF to allow multiple 
lyrics to be altered for freestyle at once.

However, instead of tracking it as a phrase (in the way that an overdriven 
lyric phrase is used), it could instead just ensure that each affected lyric 
would just end in pound.  This is because instead of being tied to MIDI timing 
like overdrive phrases, Rock Band tracks it per-lyric.

Something along the lines of a menu to control this would include:
Note>Lyric Lines>Freestyle>Enable
Note>Lyric Lines>Freestyle>Disable

The Enable option would ensure that the last character in each selected lyric 
would be a pound character.  It has been documented by Harmonix that for 
partial word lyrics, all parts of the word must have the same freestyle status, 
so ideally, EOF would need to use hyphen checking to see if there were any 
partial words that would need to be added to the selection.

The Disable option would likewise ensure all selected lyrics had any trailing 
pound or circumflex (^) character removed from the end of the lyric.

To render freestyle lyrics, I feel that italic font would be the most 
recognizable way to display it, but otherwise something like an underline or 
another font color could be used?

Original issue reported on code.google.com by raynebc on 21 Jun 2010 at 1:33

GoogleCodeExporter commented 8 years ago
I think since freestyle is a note status it should be applied to lyrics and not 
lyric lines. Having a menu option such as "Toggle Freestyle" that applies to 
all selected lyrics would be ideal. This has the advantage that the user can 
apply the freestyle status without having to have already defined the lyric 
lines. Also, if a whole song is freestyle they can apply the status all at once 
instead of once for each line.

Original comment by xander4j...@yahoo.com on 9 Aug 2010 at 10:35

GoogleCodeExporter commented 8 years ago
That makes sense.  Now the only tricky part is dealing with the freestyle 
characters, I think they should probably be kept outside of the lyric text, and 
the lyric just tracks whether it is freestyle or not.  So if they enter a lyric 
whose text contains '#' or '^', the lyric should be flagged as freestyle, and 
EOF should remove all instances of those freestyle characters from the string.  
Perhaps the lyric text input dialog could have a checkbox so the user has 
another way of indicating if it's freestyle, as an alternative to providing an 
indicator in the lyric text or flagging the lyric as freestyle afterward.

During export, the freestyle indicator could be appended to each lyric that was 
freestyle.  Since the freestyle characters will be removed automatically, the 
freestyle lyrics would need to be rendered in a way that made their status 
obvious, such as a different color, font style, underline, etc.  I don't think 
we can rely on background color because the overdrive rendering already uses 
that, and it could get complicated for lyrics that are both freestyle and 
overdrive (which I believe is valid).

Original comment by raynebc on 9 Aug 2010 at 10:41

GoogleCodeExporter commented 8 years ago
Not sure why the "Toggle Freestyle" function couldn't just go through and put 
or remove '#' from the end of the lyric text. Applying it directly to the lyric 
text is the most obvious way to do it. I don't see the advantage of using a 
flag.

Original comment by xander4j...@yahoo.com on 9 Aug 2010 at 11:10

GoogleCodeExporter commented 8 years ago
I suppose it could go either way, but if the freestyle characters are 
maintained in the lyric text, every edit of the text would have to check for 
the character to make sure it was at the absolute end of the string, and not 
someplace incorrect such as before a hyphen.

Original comment by raynebc on 9 Aug 2010 at 11:19

GoogleCodeExporter commented 8 years ago
Did you prefer to have both a note status bit flag and the pound character 
maintained simultaneously, or just the pound character?  I'm not sure if 
there's a point to maintain both since it would be redundant, but I figured I'd 
ask.

Original comment by raynebc on 10 Aug 2010 at 8:26

GoogleCodeExporter commented 8 years ago
I am for using the pound character only unless there is some advantage to using 
a flag as it's easier to implement.

With the flag you are hiding details of the implementation from the user which 
could be good or bad. I tend to see it as a bad thing to encourage ignorance 
but in this case it could be either way. If someone is editing their lyric 
after applying freestyle would they wonder why there is a '#' there? I see most 
people applying freestyle after they've already entered the lyric text most of 
the time. Only if they spotted an error would they go back and edit the text.

I suppose user-friendliness is about hiding those kind of details from the 
user. One thing about using the flag is it forces the user to do things the EOF 
way. This might confuse people who are looking at RBN learning how to do a 
proper PART VOCALS chart.

With all that said I think I am definitely against using a flag to specify 
freestyle lyrics. The documentation for "Toggle Freestyle" could explain the 
'#' symbol and how the game interprets it thus eliminating any confusion.

Original comment by xander4j...@yahoo.com on 11 Aug 2010 at 12:03

GoogleCodeExporter commented 8 years ago
r287 adds logic to put this into action.  I suppose it would be best to call 
eofFix_lyric() for each lyric when the chart is loaded and each time a lyric is 
added or edited.  This will guarantee that the lyric has is correctly 
formatted, with the freestyle at the end of the lyric string.  The main 
limitation I see with this function is that it will force all '^' freestyle 
characters to be rewritten as '#'.  This behavior can be altered, but I don't 
know if it's a very important issue.

Other than that, menu items and perhaps keyboard commands can be added to 
enable/disable/toggle freestyle for selected lyrics.

Original comment by raynebc on 12 Aug 2010 at 9:14

GoogleCodeExporter commented 8 years ago
We'll need to make a decision about how to handle pitchless lyrics.  We can 
either deal with them during export (appending a pound character and assigning 
a pitch) or automatically append the pound character after the pitchless lyric 
is placed.  Since some users may place them as pitchless and would assign the 
pitch later, it might annoy them if they had to remove the pound character that 
was automatically added.  One possible solution to this would be to use a lyric 
status to track whether the lyric was automatically made to be freestyle.  If a 
lyric with this status had a pitch assigned later, the pound character that was 
automatically appended to the lyric text could be automatically removed.

Original comment by raynebc on 13 Aug 2010 at 5:29

GoogleCodeExporter commented 8 years ago
r290 completes most of this functionality.  Now all that's left is to address 
the pitchless lyric handling.

Original comment by raynebc on 13 Aug 2010 at 10:51

GoogleCodeExporter commented 8 years ago
The rest of this can be addressed in issue 110.

Original comment by raynebc on 15 Aug 2010 at 7:27