2011-02-02 3 views
9

Próbuję napisać własny dokument DAW, głównie po to, aby dowiedzieć się więcej o matematyce przetwarzania sygnałów w celu uzyskania efektów, ale także dla zabawy. (Raczej duże przedsięwzięcie, ale mam na to czas w tej chwili). Chciałbym, żeby działało jak coś na przykład w szafie.Tworzenie cyfrowej stacji roboczej audio

Używam komputera Mac, więc myślę o użyciu jednostek audio dla różnych części, a następnie o Core Audio dla części rusztowania. Cała sprawa byłaby napisana w C lub Obj-C.

Jednak wcześniej nie korzystałem ani z jednostek audio, ani z Core-Audio, a Internet nie był pomocny w nauce.

Czy ktoś wie, gdzie mogę się o nich dowiedzieć? A może Java (Jedyny inny język, w którym czuję się swobodnie wykorzystujący) byłby lepszy, czy jest coś, czego całkowicie pominąłem, próbując znaleźć "łatwy" sposób na zrobienie tego?

Dzięki, Jon

+0

Jeśli chcąc poznać cyfrowe przetwarzanie/efekty sygnału, zdecydowanie poleciłbym "po prostu" napisać wtyczki VST. Obecnie pracuję również nad DAW i naprawdę żałuję, że nie mogłem w końcu dostać się do części z efektami. Również programowanie wtyczek VST pokaże, jak napisać DAW z ładnym interfejsem do efektów/wtyczek. – AudioDroid

Odpowiedz

10

jeśli chcesz napisać DAW:

  • co najmniej uzyskanie stopy mokre z istniejącego projektu. gdybym osobiście wybrał projekt, przyczyniłbym się do Ardora.

  • przetwarzanie sygnału w DAW jest stosunkowo proste. będziesz musiał pracować z mikserami, plikami i grafiką. jeśli już czujesz się komfortowo przy pisaniu aplikacji, prawdopodobnie niewiele się nauczysz (poza podstawami). oczywiście można znaleźć istniejący projekt i rozszerzyć go o funkcje, które odnoszą się do tego, czego chcesz się nauczyć; możesz napisać dla niego wtyczki lub wizualizacje.

czy wolą pracować z przetwarzaniem sygnału:

  • AU lub VST plugins będzie dobry wstęp - istnieje wiele istniejących projektów, które mogą się odwoływać. w końcu będziesz zmęczony oczekiwaniem na załadowanie hosta w celu przetestowania twojego programu.

język:

  • objc nie nadaje się do renderowania w czasie rzeczywistym audio.

  • java jest bardzo nietypowa dla tej aplikacji. są faktycznie opakowania dla AU i CoreAudio ... ale nie można nazwać jednej komercyjnej Javy Java dla OS X.

  • większość sklepów audio (które znam) używa C++ - nie C. (Sprzęt jest inny) . to naprawdę wydaje się dziwnym pominięciem z twojej listy - większość DAW-ów i wtyczek używa C++, i to jest język, w którym znajdziesz najwięcej przykładów.jeśli już czujesz się komfortowo z C i Javą, polecam pogodzenie się z C++, ponieważ jest to standardowy język w branży podczas kierowania na komputery.

+0

Dzięki za szczegółową odpowiedź. Idę z CoreAudio i AUs. (i przez C, miałem na myśli C++.) Chyba po prostu miałem pustkę umysłu). Czy masz jakieś odniesienia do niektórych algorytmów efektów? A może cokolwiek innego na temat różnych efektów? Dzięki jeszcze raz. – Jon

+0

To niesamowite, wielkie dzięki. – Jon

5

Spójrz na cross platform C++ Juce biblioteki, to jest open source z możliwością LICENCJI kod (cena nie jest źle). Używa go wielu profesjonalnych programistów DAW i VST, jestem jednym z nich.

https://www.juce.com/

Warning, to biblioteka jest dużo zabawy do zabawy. Ponownie zainteresowałem się C++, co było niemałym wyczynem.

3

masz rację-on na założeniu, że rdzeń Audio oraz Audio Units mogłyby stanowić podstawę dla systemu (który nie musi być pełnoprawnym DAW, ale może mieć jakąś kombinację nagrania audio multi-track , edytowanie, odtwarzanie itp.) znacznie łatwiejsze niż martwienie się o wieloplatformowe koncerny, masywne, wszechobejmujące frameworki takie jak Juce, czy ASIO i inne pomijane przez O hacki. Myślę, że okaże się, że programowanie dźwięku jest wyspecjalizowaną dyscypliną i większość ludzi tutaj na stackoverflow są źle przygotowani do zaoferowania przydatnych porad. Java jest raczej nieodpowiednia, podobnie jak C#, podobnie jak języki interpretowane dla AUDIO, w szczególności dla wielokanałowego audio, DSP itp. Ze względu na ograniczenia czasowe i potrzebę pracy na raczej niskim poziomie dla wielu krytycznych pętli. znajdziesz dokumenty, których potrzebujesz na developer.apple.com (będziesz musiał się zalogować) i możesz znaleźć przykłady powłoki dla twojego zainteresowania bezpośrednio wewnątrz przykładów kodu xcode ... powodzenia