Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KAR Text Support #106

Open
psi29a opened this issue Jan 2, 2015 · 12 comments
Open

KAR Text Support #106

psi29a opened this issue Jan 2, 2015 · 12 comments

Comments

@psi29a
Copy link
Member

psi29a commented Jan 2, 2015

Related to issue: #79

We should allow the ability to dump the lyrics, expose the text in a struct and/or allow the display of text in our player.

@psi29a psi29a added this to the 1.0 - Wishlist milestone Jan 2, 2015
@chrisisonwildcode
Copy link
Contributor

This could be done ... once I get a response to my question in #80

@chrisisonwildcode
Copy link
Contributor

Found a kar archive (30,000+ files) so now I have plenty to test with when I start getting this happening in the library ... someone else can fight with the player once it is in the library.

@psi29a
Copy link
Member Author

psi29a commented Jan 4, 2015

Awesome. :)

@chrisisonwildcode
Copy link
Contributor

With the closing of #80 this is one step closer to being realised.

One issue I have noticed is that KAR files will mostly use the TEXT meta event instead of the LYRIC one. You do get the odd one that does use LYRIC as it should so going to have to think about how to handle that.

There is no API at the moment that can expose the lyrics, but they are stored within the events. Waiting for us to discuss how best to do this ...

Two options exist with both having the same solution (believe it or not).

Option 1: Once KAR file is opened call an API that returns lyrics + sample timings in a struct array

Option 2: call an API that looks ahead so many samples and returns lyrics + sample timings in a struct array

Both options could be serviced by the same API, for example

struct _lyrics {
char * lyric; // pointer to NULL terminated string
uint32_t sample_offset; // sample offset from start of song
};
struct _lyrics * WildMidi_GetLyrics( midi * handle, uint32_t samples_ahead);

Thoughts?

@chrisisonwildcode
Copy link
Contributor

A surprise awaits in -updates

@chrisisonwildcode
Copy link
Contributor

The current functionality will stay as a proof of concept. The function I suggested in here will be slated for 0.4.1.

@psi29a
Copy link
Member Author

psi29a commented Jan 26, 2015

yay :)

@psi29a
Copy link
Member Author

psi29a commented Feb 5, 2015

@chrisisonwildcode: can this be closed? Supports seems to be in 0.4 right? :)

@chrisisonwildcode
Copy link
Contributor

Leave this one open since for 0.4.1 I plan on having an API that returns a struct array containing lyrics and timings (sample offset from start).

Sent from my iPhone

On 5 Feb 2015, at 8:03 pm, Bret Curtis [email protected] wrote:

@chrisisonwildcode: can this be closed? Supports seems to be in 0.4 right? :)


Reply to this email directly or view it on GitHub.

@psi29a
Copy link
Member Author

psi29a commented Jun 16, 2016

@chrisisonwildcode did this ever get into 0.4 or is this still planned for 0.4.1?

@chrisisonwildcode
Copy link
Contributor

There is kar text support in the lib, but experimental. There are key press options in the player. What I have found so far is that the text can be in one of two meta events. I will attempt to work out a detection so you don't have to manually switch Whitchurch meta it reads from.

Sent from my iPhone

On 16 Jun 2016, at 9:26 PM, Bret Curtis [email protected] wrote:

@chrisisonwildcode did this ever get into 0.4 or is this still planned for 0.4.1?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@sezero sezero modified the milestones: 0.4.2, 1.0 - Wishlist Nov 3, 2017
@chrisisonwildcode
Copy link
Contributor

chrisisonwildcode commented May 19, 2018

um … ok, must be waiting on me to do the auto detect, because it is in the player and therefore in the lib. But at the moment if its not using the proper lyric event then its using another event. Problem is the other event can be used for other things as well. Might have to do some logic during loading that says if nothing in lyric but multiple text event present then treat the text event as lyrics. Thoughts?

Edit: fix typo's from tired typing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants