Поддержка VST в Java может быть достаточно простой в конце концов; Я слышал о положительном опыте с http://github.com/mhroth/jvsthost (то есть, с кем-то, с кем я разговаривал на форуме, он, похоже, довольно быстро справился с работой, успешно запустив несколько различных синтезаторов).
Напомним: лично я занимаюсь разработкой программного обеспечения на Java, которое использует SuperCollider в качестве звукового бэкэнда (отказ от ответственности: мой реальный опыт звучания Java ограничен). Хотя было бы возможно построить DAW вокруг SuperCollider, я бы не стал рекомендовать его в качестве инструмента для этой работы. Тем не менее, я также не совсем понимаю, почему вы хотите создать DAW в первую очередь ... если вы решите, что хотите исследовать альтернативные способы создания музыки с помощью компьютеров, вы можете взглянуть на SC (также ChucK Мне было очень легко начать и довольно весело) :-)
В любом случае, вернемся к вопросу ... хотя я обычно обращаюсь к Java, многое из этого также пойдет на C #:
Традиционно, сборка мусора была источником беспокойства, когда кто-то делал что-то, где время в Java было бы важным; в DAW, например, это может проявляться как неточная синхронизация или щелчки в выходных данных, когда GC прерывает программу достаточно долго, чтобы он не смог обработать полный буфер. Это будет особенно верно, если вы хотите использовать небольшие буферы для низкой задержки и / или не заботиться о количестве создаваемого мусора. Тем не менее, я не хочу распространять FUD о звуке Java: как я уже упоминал, я не очень активно использовал его, и в любом случае я считаю, что эти проблемы улучшаются. Это, безусловно, проблема, о которой вам нужно знать, но, вероятно, это не ограничитель показа.
Я полагаю, что большим узким местом в любом DAW будет файловый ввод-вывод, который не должен страдать в Java, пока все правильно.
Если вы начнете выполнять интенсивный DSP на многих каналах одновременно, то может оказаться, что производительность вычислений Java не совсем оптимальна (хотя, вероятно, на самом деле неплоха); однако, если вы в основном выполняете базовое микширование в своем DAW-коде и любом DSP с VST, то его все равно не должно быть проблемой.
Что касается фактического ввода-вывода аудио, я вижу, что есть также реализации ASIO для Java, если вам будет интересно. У меня даже нет косвенного опыта с ними, поэтому я действительно не буду ручаться за них. Java 1.7 должна иметь улучшенную поддержку аудио с низкой задержкой, FWIW (хотя из того, что я читал, приложения, которые они имеют в виду, не такие, как DAW). Поддержка DirectX, я не думаю, должен быть основным фактором для DAW. В этом смысле вы, возможно, не захотите отказываться от C #, поскольку это очень хороший язык.