Ноты
Я хакер на питоне, который хочет создать приложение для нот. Мне комфортно читать/понимать ноты (играл на фортепиано в течение многих лет). Вот мои полные вопросы о новичках.
Есть ли стандарт для представления заметок в цифровом виде? Я не хочу изобретать любые колеса.
Учитывая последовательность заметок и длительности, есть ли библиотека для отображения их в формате нотного альбома?
В основном я ищу место для начала. Я не сильно вписываюсь в графику, поэтому существующая библиотека с открытым исходным кодом будет потрясающей. Если ни один из них не существует в Python, я тоже компетентен в Java/Javascript/C.
Спасибо
Ответы
Ответ 1
Взгляните на lilypond. Он использует LaTeX для набора нот. Его формат ввода - простой текст и может быть легко сгенерирован с помощью Python или любого другого.
Abjad - это "API-интерфейс Python для формализованного контроля результатов" и обертка вокруг lilypond, но я не использовал его и поэтому не может ручаться за него.
Ответ 2
Насколько я знаю, abc notation еще фактический стандартный текстовый формат в традиционных/фольклорных кругах. Для него доступно довольно много программного обеспечения, в том числе abctool и abc2ly (часть GNU LilyPond), оба из которых написаны на python. Будучи самоописанным хакером python, я думаю, вы могли бы превратить любой из них в библиотеку без особых проблем.
Ответ 3
Есть ли стандарт для представления Примечания в цифровом виде?
Я предполагаю, что вы слышали о MIDI (который охватывает гораздо больше, чем просто заметки и длительности, но который является стандартом, который представляет цифровые ноты).
Я рекомендую посмотреть программы Music Notation, перечисленные в Python in Music на вики-странице Python, и посмотреть, можете ли вы расширить или внести вклад в эти приложения перед тем, как перевернуть свои собственные.
Ответ 4
Вероятно, не совсем то, что вы ищете, но есть коммерческая программа под названием capella (от небольшой немецкой софтверной компании; есть и английская версия). Он поддерживает формат MusicXML, и он использует Python для сценариев, поэтому вы можете писать сценарии для расширения его функциональности (что уже довольно впечатляет, хоть).
Я изучил Python из-за capella. (Оказывается, я никогда не писал никаких сценариев для capella - никогда не нуждался в этом - но это наверняка заставило меня любоваться Python:))