Bugs/Mark

From kJams Wiki
Jump to navigation Jump to search

Notes in italics

In order of priority (subject to change):

Some of these things I suspect are trivial, specifically fixing the fact that meta data gets reverted, extending the bleep.txt file functionality to global search and replace ("yeh" --> "yeah, "cuz" -> 'cause, etc.) and adding a warning if quitting Producer will lose changes The two tricky ones that will provide the most benefit are the top two. Together these items are the bulk of the problem.

Word spacing

Note: This is potentially just an incorrect assumption somewhere in the code..

ADDENDUM: As mentioned in e-mail, One common trait of all such conjoined words is the lack of terminal white space on the first word. So "<>love <>" becomes "<>love<>". Although there are other times that this white space is missing, it seems key here in that it prevents the following word from being separated from the first word in lines so affected. This theoretically makes it much simpler to fix, and as such, bumps this up to the top of the list.

Second most time consuming, because every track must be checked, it is hard to do by visual inspection, and since when a track needs one edit, it often needs MANY, and involves lots of zooming in and zooming out, and blob dragging, which is not particularly efficient in the current interface:

Sometimes words that are supposed to be separated are not. They are placed right next to each other. E.g., "Willyou" instead of "Will you", even though they are separate words in the actually .fly file. Because of this, although it is not particularly common, I still have to go through every track, page by page, checking to see if this has occurred. This can be time-consuming and a bit frustrating. When one is found, there are usually repeats, and editing them all can take significant amounts of time. Of almost equal priority, since it has to be checked in every file, and if not corrected, forces a redo (unlike the previous one, which can sneak by the quality control staff!):

you can also put any related song files into this folder too, and make a link to them so everything is accessible directly from this web page, like this:

Test file: SFDT-2741 The Beatles - Tomorrow Never Knows
1:35 "nowlove" should be "now love"
01:53 "theymourn" should be "they mourn"
02:23 "soplay" should be "so play"

There are probably more examples in this file. These are the ones in this file that slipped by my first edit, and so were brought up by SF QC.

Note: I am pretty sure that this phenomenon only occurs on the first words of a line.

-- from an email So, I think I have figured out the issue where words are joined together. Apparently in the fly file the word is missing terminal white space. This seems to always be the case in the examples I have looked at.
However, there are some caveats:
1) I have seen other words with no terminal space, and they seem to render fine (so maybe I am misunderstanding the file format).
2) This problem always occurs on the first word of a line,so maybe that information can be used to generate afix.

This info may (hopefully) greatly aid in expediting a solution.

Better pre-post gap settings

As discussed before, being able to set a maximum percentage to reduce the size of the final blobs on each page to accommodate the post and pre gaps, first shrinking the final blob until it reached 100 - max percentage, and then shrinking the next one, etc., until the post and pre gaps fit, would finalize this procedure. Currently, Producer just shrinks the last blob on the "pre" page to nothing, and only then goes on to shrink the next to last blob, with the result being that the final word just flies by. this has a very disconcerting psychological effect that hampers finding your place on the next page.

a percentage of what though? it can't be "percentage of original duration" because that can vary wildly. i think instead it should just be a "minimum duration" in seconds, then you could enter something like "0.25" for one quarter second? if this seems like it would work, let me know. -dave (talk) 22:56, 12 June 2012 (PDT)

No, I really do mean percentage of original duration. For instance, if the last blob needs a full second to sweep, but does not have enough time, it gets squeezed. As of now, if there is less time left in the current page than there is space, it gets squeezed to a "singularity" (no apparent width and instant sweep time). If that is still not enough, the next to last blob gets squeezed, also possibly to a singularity, and so on and so one, causing a set of lyrics that can just flash by before the whole page disappears, which is very psychologically disconcerting. I am proposing that the last blob only gets shrunk to a certain extent, and after that, each successive blob can only be shrunk by 25% (75% of its original size) before the next left-most blob gets squeezed. This results in a minimal disruption of the timing, as well as leaving a reasonably sized blob to sweep. Because of the realities of how the pages get made, I suspect there will be few incidents where the blobs will be affected past the last three. For instance, the bigger the penultimate blob (gotta use that word at every opportunity) the more time 25% of that blob will be, and thus the bigger cushion you have to fit the final blob. No blob should be able to be shrunk more that a certain minimal duration (enough to ensure that it will actually appear to sweep) so the amount any one blob can shrink is limited by either 75% of original size or the minimum duration parameter, whichever comes first. For example: the final four blobs each last 0:75.3. The next page however must come up 1:50.0 after the final blob. As such, the pre and post gap settings would force the final two blobs to reduce to essentially 0:00.0, and the third to last blob being shrunk to accommodate the post gap. To prevent these word from just flashing to the sweep colour and the page disappearing it would instead reduce the final blob to the minimum blob size parameter. It would then check how much it would need to reduce the penultimate blob to accommodate the last word, which would be over 75% of its current size, so it would only be reduced by 25%. Then the penpenultimate blob would be checked. It too would have to be reduced beyond 75%, so it would hit its maximum reduction at 24%. Lastly, the third to final blob wuld be shrunk a small amount, less than 25%, which would successfully accommodate the space needed. Alternately, if we presuppose that the second to last blob was only 0:50.0 to begin with, and the minimum blob size was set to, say, 0:40.0, shrinking the full 25% would leave a blob only 0:37.2 seconds wide, below the minimum blob size. As such, the blob would only be shrunk to 0.40.0, and the next blob to the left would have to shrink more to accommodate the difference.

But whatever works. The ultimate goal is just to prevent it from doing those instantaneous sweeps, where the singer thinks he has a certain amount of time, but the word just vanishes, and the page changes. If it is better to do it with a minimum duration in seconds, that is fine. I just suspect that it would be more accurate to the original if it were a percentage.

Arrow key nudging/time entry for blobs in Inspector

It would be really nice if it were possible to nudge elements around on the page using the arrow keys, instead of the error-prone use of the mouse/trackpad.

In the same vein, it would be very helpful to have a blob's time position editable in a field in the Inspector window, just like you can enter scrubber position by clicking in the time field on the left of the Timeline.


Fix "save MSI default"

Dave, this ^^^ is a separate thing® from the item below it

Right now, saving the default text and sweep colours and font size etc does NOT work. It was supposed to be fixed, but never actually was. Some things sorta, kinda, partially save, but mostly it just doesn't work.

Steps:

  1. Select track
  2. Open in Producer
  3. Select Get Media Info
  4. Change something (say, sweep colour)
  5. Option click "OK" to save <-- (Dialogue box comes up saying it is saved)
  6. Open another track that you have never opened before in Producer
  7. Select GMI

Note that the sweep colour is NOT the colour that you saved, but rather the original colour from before the save (or sometimes, even, another colour entirely).

Also, I have tried to edit the xml by hand, and while I can get certain things to change, I have not been able to reliably get the RIGHT thing to change. Colours seem to change at random, or sometimes not at all. If I could just get a working copy of the XML with all the right settings, then being able to correctly save wouldn't matter. I could just lock the file, and possibly swap another copy in as needed, but nothing I do in the file works reliably, and nothing really makes sense, anyway.

NOTE: I think one of the main problems here is that you are trying to save based on the Singer type (Male Vocal 1, Rap, Sing, Female, etc.). I think this is a problematic way of doing things, because these names can change from song to song quite a bit. If possible, and perhaps it simplifies things, the real way to do this would be to just assign default colours based on position (first item in the list gets colours a, b, c, and d; the next item, say Male 1, gets colours e, f, g, and h, the next item, say Male 2, gets colours i, j, k, and l. This way there is only a need to store three or four default colour sets, not an unlimited number. The one caveat being that if there is only one singer, that should have it's own default.

That forum post

https://karaoke.kjams.com/forum/viewtopic.php?f=7&t=1965&p=10944#p10944

The separate thing® (Meta data gets reverted)

Meta Revert

Warn if quitting Producer will lose changes

Self-evident, no?

Trailing Punctuation

It would be nice if, if the final blob on a given line was punctuation, that it actually be placed directly adjacent to the previous word, rather than separated by white space. E.g., "you …." would be "you…." This is important stylistically, not only because of aesthetics, but because of consistency, as some times, for instance, an ellipsis will appear as part of one blob, and other times as a separate one, in the same phrase in the same sentence in the same song.

please provide a .fly/.mp3 pair that shows this problem

I can upload, but it is any file where the punctuation is a separate blob from the word before it. So, for example, sometime they might have "love...." as a single entity, and others they may have "love" as one word, and "...." as another. As a result, kJams does what it "should" do, puts a gap between these "words". But not only does this look bad, it makes it inconsistent when SF is inconsistent, and has it so that sometimes there is a space between words and punctuation, and sometimes there is not. IMO, there should NEVER be white space between the word and the following punctuation, be it period, ellipsis, comma, or what have you. Certainly in implementation, this could take the form of an exclusion list.

Words with hyphens incorrectly sized

In the YSTHs tracks, Words with hyphens get incorrectly sized. The hyphen is too long but more interestingly, the bounding box is made too big vertically. This is probably a font issue (Univers 67 condensed bold) but when I replace the hyphen in the blob with the keyboard hyphen, I get the correctly sized character. I thought the preference we added, "producer: interpret hyphens as syllable markers" was supposed to ignore syllable markers, and thus allow the standard keyboard hyphen-minus char to survive the encoding process? If not, it really should!

please provide a .fly/.mp3 pair that shows this problem

Can not create break screen

Also in the YSTHs tracks, I still can not create a YSTHs-specific break screen (like "Instrumental/n 10 seconds) that does not crash kJams like a stone.

send me your home-made break screen and any accompanying media, and i'll see why it's crashing

It might be easier for you to just recreate the same one I am trying to use. The YSTHs break screen is just red text that reads "Instrumental xx seconds". As such, I just took the standard SunFly one, deleted the SF graphic, and changed the text colour of the text asset, which had the tag [msg ]. When I do this, it crashes immediately.

In fact, no matter what I change it to, even if it has no tag at all, if the screen specified in the prefs is not the SF one, and the track has a break, it crashes.

definitely easier (for me) if you give me something to work with that is already crashing

I think you said this is fixed, no?

AE Video Insert

In the last YSTHs issue, it would be nice if I could get a video upcard out of AE that I could correctly paste into QT. As it is now, I get a time code error, and as such, am forced to use AE to re-encode the entire video, just to add the terminating upcard onto the end. Don't know if this is an AE error, or something I am doing wrong.

Note: I think I have fixed this, by opening the asset in QT, and exporting using QT.

send me an AE project and accompanying media, that has an RQ item that exports the file you wish could be pasted into QT, and i'll have a look at it

As mentioned, I got it to work, by bypassing AE, and using QT to reencode. That said, I uploaded the assets along while ago, back when I first brought this up, and they are still on the server. I do believe you opened them then and got the same error trying to C&P in QT.

FLY file fail

Certain .FLY files still do not convert correctly. There appears to be either a math error or a faulty assumption that breaks certain files. I will upload one (Madonna - Borderline) to the FTP.

yep, let me know

Test files: Two versions of Madonna - Borderline

Crash / slow switching venues

Switching venues multiple times, as I have to do in my copy singers script, often crashed kJams.

send dem crash reports (with log files)

It is also SLOWWWWW, but I suspect fixing that will require a re-architecting.

i've done some optimizations for r57, let me know

Random crashes

Heads up: There is still an issue of random crashes, I think server-related, but not sure. More data coming if I can catch it with Activity monitor and get code samples.

As discussed, probably not server related. OSX related.

Editing a playlist for case

Editing a playlist for case does not do anything
Fixed in r54+

Duration missing

kJams does not appear to be properly pulling metadata. As of a few versions ago, Most items in the library no longer have an entry for duration. This effects several items, including estimating rotation times.

Quit producer with cmd-.

Hitting cmd-. while in an editable text box in Producer does NOT quit Producer (as expected) rather it nulls out the text field, in an obnoxiously non-undoable fasion.

Mark Song as Sung

Please please PLEASE add a "Mark Song as Sung" context menu to a song in a singer's tonight list. Many times there is a song with a LONG outro that you want to fade out and move to the next song, but when you do so, the song fails to be added to the singer's History list.

New

Warn in Producer if trying to quit without saving current changes

Hyphens as syllable separators does not appear to work with FLY files.

Whether set to true or false, the hyphen still shows up, and does not join the words together, as in latest e-mail, reproduced below:

So sometimes SF texters, for whatever reason. split words on syllable boundaries. However, there is no clear delineation, like with KTP, or how to rejoin them. So I figured I could find those leading syllables, add a hyphen in the fly file, and trick kJams into stitching them back together. For instance, the following: <dtIcdgEventText>

   <TextID>6</TextID>
   <HeaderID>0</HeaderID>
   <PageID>3</PageID>
   <orderPageTLBR>3</orderPageTLBR>
   <orderGlobal>9</orderGlobal>
   <StartX>117</StartX>
   <StartY>521</StartY>
   <EndX>136</EndX>
   <EndY>553</EndY>
   <VoiceID>1</VoiceID>
   <LyricText>lo</LyricText>
   <hiliteStartATimeMinutes>0</hiliteStartATimeMinutes>
   <hiliteStartATimeSeconds>23</hiliteStartATimeSeconds>
   <hiliteStartATimeFrames>40</hiliteStartATimeFrames>
   <hiliteDurATimeMinutes>0</hiliteDurATimeMinutes>
   <hiliteDurATimeSeconds>1</hiliteDurATimeSeconds>
   <hiliteDurATimeFrames>46</hiliteDurATimeFrames>
 </dtIcdgEventText>
 <dtIcdgEventText>
   <TextID>7</TextID>
   <HeaderID>0</HeaderID>
   <PageID>3</PageID>
   <orderPageTLBR>4</orderPageTLBR>
   <orderGlobal>10</orderGlobal>
   <StartX>136</StartX>
   <StartY>521</StartY>
   <EndX>187</EndX>
   <EndY>553</EndY>
   <VoiceID>1</VoiceID>
   <LyricText>sing </LyricText>

which should be "losing" but shows as "lo sing", and changing it to:

<dtIcdgEventText>

   <TextID>6</TextID>
   <HeaderID>0</HeaderID>
   <PageID>3</PageID>
   <orderPageTLBR>3</orderPageTLBR>
   <orderGlobal>9</orderGlobal>
   <StartX>117</StartX>
   <StartY>521</StartY>
   <EndX>136</EndX>
   <EndY>553</EndY>
   <VoiceID>1</VoiceID>
   <LyricText>lo- </LyricText>
   <hiliteStartATimeMinutes>0</hiliteStartATimeMinutes>
   <hiliteStartATimeSeconds>23</hiliteStartATimeSeconds>
   <hiliteStartATimeFrames>40</hiliteStartATimeFrames>
   <hiliteDurATimeMinutes>0</hiliteDurATimeMinutes>
   <hiliteDurATimeSeconds>1</hiliteDurATimeSeconds>
   <hiliteDurATimeFrames>46</hiliteDurATimeFrames>
 </dtIcdgEventText>
 <dtIcdgEventText>
   <TextID>7</TextID>
   <HeaderID>0</HeaderID>
   <PageID>3</PageID>
   <orderPageTLBR>4</orderPageTLBR>
   <orderGlobal>10</orderGlobal>
   <StartX>136</StartX>
   <StartY>521</StartY>
   <EndX>187</EndX>
   <EndY>553</EndY>
   <VoiceID>1</VoiceID>
   <LyricText>sing </LyricText>

which SHOULD be "losing" (Syllables stitched together by kJams) but instead shows up as "lo-sing" (no white space).

What is wrong with my thought process here?