2014-01-29 5 views
3

В настоящее время я работаю над iPhone-приложением, которое требует отображения текста песни вместе с гитарными аккордами. Вывод на экран будет похож на что-то вроде этого:Тексты и аккорды на iOS

enter image description here

Я до сих пор интересно, что будет лучший тип формата для выполнения такого рода данных (тексты песен, аккорды и временных меток в треке для каждой строки). Я думал об использовании файла 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 треков.

ответ

1

Меня также интересует этот вопрос. Я создаю «серверную» веб-страницу для своего собственного каталога песен, используя только HTML, CSS и JavaScript.

Я также надеюсь придумать способ хранения аккордовой/лирической информации в JSON. Я новичок в этой линии мышления, но я надеюсь организовать текстовые строки как строфы и пометить их «Chorus, Verse, Intro ...», а затем отобразить их в последовательности аккордов (вроде как подход ООП).

До сих пор я сталкивался с множеством вещей Music XML, но это похоже на более формальные ноты.

Прямо сейчас я экспериментирую только с сохранением текста в HTML и рендерингом его в теге 'pre' .

Я предполагаю, что простым решением было бы пренебречь точным словом для синхронизации времени и просто отобразить соответствующие аккорды поверх соответствующей строки текста.

[A D#] 
    'This is one line of lyrics' 

Или ... может быть можно назначить каждую строку лирики значения сказать 12 в длине (например, Bootstrap сетки, но может основывать это на количестве ударов в строку, включая делитель), а затем назначить каждый аккорд «слот», чтобы заполнить строку выше?

Так

Em7  G 
    Today is gonna be the day 
      Dsus4     A7sus4 
That they're gonna throw it back to you, 

будет что-то вроде (где beat_of_measure = бить/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 
    ] 
} 

Извините за этот нелепый ответ!

 Смежные вопросы

  • Нет связанных вопросов^_^