2009-12-05 7 views
4

Я хочу написать музыкальное программное обеспечение, которое может воспроизводить музыку, может определять высоту звука, взятого с микрофона компьютера (с использованием алгоритма, который использует звуковые фильтры для фильтрации частот) и позволяет использовать хороший пользовательский интерфейс. что-то похожее на smartmusic: http://smartmusic.comЧто такое хороший язык программирования для музыкального программного обеспечения?

любые предложения о том, что может быть самым подходящим языком для написания такого программного обеспечения? кто-нибудь знает, на каком языке был закодирован smartmusic?

спасибо

ответ

0

Я предлагаю Java.

У этого есть свой собственный API для обработки звука и довольно легко учиться.

http://java.sun.com/products/java-media/sound/

'Tux Guitar' (с открытым исходным кодом) написан на Java, и показывает, что это возможно:

http://tuxguitar.herac.com.ar/

+0

Если производительность в реальном времени является проблемой, тогда вам лучше всего смотреть на C++. –

2

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

Большинство программ, работающих с подобной обработкой сигналов, как правило, написано на довольно низкоуровневых языках, таких как C. Возможно, вы даже обнаружите, что для этой обработки могут быть доступны библиотеки для вашей конкретной платформы. Это, конечно, то, где я начну искать первый, если вы не захотите реализовать эти алгоритмы из интеллектуального любопытства. Основываясь на том, какие библиотеки вы найдете, вы можете пойти и найти язык программирования, который может их использовать, что может привести или не приведет вас к семейству языков C (например, C, C++, Objective-C в зависимости от вашей платформы) ,

7

Лучший язык, скорее всего, тот, который вы знаете лучше всего, до тех пор, пока это хороший многоцелевой язык, который обеспечивает легкий доступ к аудио (микрофон/динамик). Visual Basic, C#, C++, Java все быстро и легко писать, а также дают вам отличный доступ к оборудованию и т. Д.

Но, в конечном счете, обработка звука очень проста, а API-интерфейсы записи/воспроизведения очень обычны - так что лучше всего язык, вероятно, тот, который вы считаете наиболее уверенным в использовании. Вы всегда можете начать с базового эксперимента (записать и воспроизвести некоторый звук) - если вы довольны тем, как это происходит, сторона обработки звука будет практически одинаковой на любом языке.

2

Не похоже, что вам нужно кодировать сложные эффекты и функции цифровой обработки звука ... Поэтому вам не нужны языки с низким уровнем, такие как C++. Я думаю, вам следует больше всего сосредоточиться на пользовательском интерфейсе и юзабилити. Я вижу, что Java была предложена. Даже если Java прост в использовании, программирование пользовательского интерфейса Java - это то, что не очень практично. Я бы предпочел использовать язык с очень высоким уровнем, например Python, C# или Java, и использовать более практичный инструментарий. Например, вы можете использовать WPF или Winforms с C#. Или Qt или Gtk для Python (есть даже привязки Java ... но я не уверен в состоянии этого.). В любом случае используйте что-то, что позволяет легко кодировать, чтобы вы могли сосредоточиться на удобстве использования и т. Д.

0

Я использую Delphi. Он сочетает в себе все функции выше, он скомпилирован, имеет мощную библиотеку обработки звука (BASS) и обладает прекрасными возможностями пользовательского интерфейса. С его помощью я написал микшер, плеер командной строки, анализатор спектра, искатель звука и молчания и музыкальный компаратор.

0

Если вы знакомы с языком Pascal из школы, то я предложил бы пойти на Delphi. Он основан на Object Pascal, который обладает большинством возможностей C++ (если не больше), плюс он удерживает вас от большинства современных концепций программирования. Вы можете многое достичь, зная очень мало.

Вышеупомянутые аудио-библиотеки (Bass, Fmod и т. Д.) Имеют интерфейсы Pascal. Что касается создания графического интерфейса, VCL - это простое в использовании решение, FMX, если вы хотите пойти на многоплатформенную платформу.

Комбинация Delphi, FMX и Bass - самая мощная настройка кодирования звука для начинающих или программистов с небольшим опытом (например, я). Практически все остальное означает больше усилий или большего опыта.

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

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