我目前正在制作一款iPhone应用程序,需要显示歌曲的歌词和吉他和弦。 屏幕上的输出类似于以下内容:
我仍然想知道携带这种数据的最佳格式是什么(每行的歌曲中的歌词,和弦和时间戳)。 我正在考虑使用以这种方式格式化的JSON文件:
{
"lyrics": [
{
"text":"This is one line of lyrics",
"startTimestamp":5000,
"endTimestamp":5800,
"chords":[
{
"symbol":"A",
"position":0.2
},
{
"symbol":"D#",
"position":0.8
}
]
},
{ ... },
{ ... }
]
}
另一种选择是使用Chordpro格式: http://tenbyten.com/software/songsgen/help/HtmlHelp/files_reference.htm
但是这种格式没有时间戳来同步歌词的显示和音乐,并且在iOS上解析似乎有点痛苦。 还有其他我可以考虑的有趣选项,例如HTML吗?
该应用程序将包含仅12首曲目的歌词。
答案 0 :(得分:1)
我也对这个问题感兴趣。我正在创建一个无服务器的'我自己的歌曲目录的网页,仅使用HTML,CSS和JavaScript。
我也希望能找到一种方法来存储JSON中的和弦/歌词信息。我对这一思路更新,但我希望将文本行组织为节,并用" Chorus,Verse,Intro ..."标记它们,然后将它们映射到和弦进行(有点像OOP方法)。
到目前为止,我遇到过很多Music XML内容,但这似乎是为了更正式的乐谱。
现在我正在尝试将文本存储在HTML中并将其呈现在“预览”中。 标签
我想一个简单的解决方案就是忽略精确的单词到和弦时间,只需在适当的歌词行上方呈现合适的和弦。
[A D#]
'This is one line of lyrics'
或者...也许可以为歌词的每一行分配一个长度为12的值(如Bootstrap网格,但可以根据每行的节拍数包括除数),然后为每个和弦指定一个&#39 ;插槽'填写上面的一行?
所以
Em7 G
Today is gonna be the day
Dsus4 A7sus4
That they're gonna throw it back to you,
会像(beat_of_measure = beat / 2%4)
{
"stanza1":
{
"type": "verse",
"line1":{
"lyric": "Today is goinna be the day that they're", //4 beats subdivided = 8 length
"start_beat": 1, //half a beat after Em7 chord
"end_beat": 7},
"line2":{
"lyric": "goinna throw it back to you"
"start": 8 //goinna is right on beat 5, (think modulo 4)
"end": 12}
}
"verse_chords":[
{
"symbol":"Em7",
"chord_beat":0 //starts at very beginning
},
{
"symbol":"D#",
"chord_beat":4
},
{
"symbol":"Dsus4",
"chord_beat":8
},
{
"symbol":"A7sus4",
"chord_beat":12
},
],
bla bla bla
]
}
抱歉这个荒谬的答案!