{"id":8294,"date":"2022-02-10T03:04:13","date_gmt":"2022-02-10T03:04:13","guid":{"rendered":"http:\/\/desres20.netornot.at\/?p=8294"},"modified":"2022-02-10T03:04:13","modified_gmt":"2022-02-10T03:04:13","slug":"das-juce-framework","status":"publish","type":"post","link":"http:\/\/desres20.netornot.at\/?p=8294","title":{"rendered":"Das JUCE-Framework"},"content":{"rendered":"\n<p>Eines der bekanntesten Frameworks f\u00fcr die Entwicklung von digitalen Audioanwendungen und Audioplugins ist das JUCE-Framework. Das ist ein Framework, das speziell f\u00fcr die Programmiersprache <em>C++<\/em> verfasst wurde. Es kann wie ein Werkzeugkasten betrachtet werden, mit welcher Audioanwendungen relativ einfach erstellt werden k\u00f6nnen, weil viele L\u00f6sungen f\u00fcr die Programmierung von DSP-Effekten bereitgestellt werden. Au\u00dferdem wird auch der rein technische Teil, wie das Erkennen von Treibern, die Kommunikation mit Wandlern usw. ebenfalls vom JUCE-Framework \u00fcbernommen, womit sich der Entwickler der digitalen Klangverarbeitung widmen kann. Zus\u00e4tzlich werden noch graphische Elemente zur Verf\u00fcgung gestellt, welche die Interaktion zwischen Endbenutzer und Audioeffekt erleichtert bzw. \u00fcberhaupt erm\u00f6glichen.<br>Als Alternative zu JUCE gibt es Steinbergs VST SDK und VSTGUI, welche \u00e4lter sind, aber nicht so h\u00e4ufig geupdatet werden.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Neben dem, dass JUCE ein Framework ist, wird auch eine praktische Anwendung namens <em>Procujer<\/em> mitgeliefert. Das ist eine Oberfl\u00e4che, mit welcher neue Projekte angelegt werden k\u00f6nnen. Es gibt eine Auswahl an Templates f\u00fcr unterschiedliche Projekttypen, wie z.B. standalone Audioanwendungen, VST-Plugins, reine Graphik-Anwendungen oder simple Konsolenanwendungen. Mit diesen Templates werden vorab erstellte Code-Fundamente geladen, welche mit eigenem Code gef\u00fcllt und erweitert werden k\u00f6nnen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"743\" src=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/Projucer.png\" alt=\"\" class=\"wp-image-8295\" srcset=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/Projucer.png 1024w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/Projucer-300x218.png 300w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/Projucer-768x557.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Projucer mit Template-Auswahl und weiteren Spezifikationen<\/em><\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>F\u00fcr die Verwendung von VST-Plugins wird ein Plugin-Host ben\u00f6tigt. Das ist in der Regel eine DAW wie Cubase, ProTools, Ableton usw.. Normalerweise m\u00fcsste bei der Entwicklung von Plugins immer eine solche DAW neu ge\u00f6ffnet und dabei der Plugin-Ordner gescannt werden. JUCE erm\u00f6glicht das Testen eigens erstellter Plugins mithilfe eines eigenen Plugin-Hosts, welcher virtuelle Audio- und MIDI-Inputs und Audio-Outputs bietet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"900\" height=\"724\" src=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/JUCE-Plugin-Host.png\" alt=\"\" class=\"wp-image-8297\" srcset=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/JUCE-Plugin-Host.png 900w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/JUCE-Plugin-Host-300x241.png 300w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2022\/02\/JUCE-Plugin-Host-768x618.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p>F\u00fcr den Einstieg in JUCE gibt es auf der Website des Herstellers mehrere Tutorials zur Programmierung von kleinen Audio-Anwendungen. Auch werden allgemeine Konzepte des <em>Digital Signal Processings<\/em> (DSP) erkl\u00e4rt, was die Vorraussetzung ist bei der Erstellung digitaler Audioanwendungen. Zus\u00e4tzlich wird eine umfangreiche Dokumentation mitgeliefert, welche alle einzelnen Bausteine des Frameworks erl\u00e4utert.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Quellen:<br>https:\/\/docs.juce.com\/master\/tutorial_create_projucer_basic_plugin.html<\/p>\n\n\n\n<p><a href=\"https:\/\/juce.com\/learn\/tutorials\">https:\/\/juce.com\/learn\/tutorials<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.juce.com\/master\/index.html\">https:\/\/docs.juce.com\/master\/index.html<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/steinbergmedia.github.io\/vst3_doc\/vstsdk\/index.html\">https:\/\/steinbergmedia.github.io\/vst3_doc\/vstsdk\/index.html<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/steinbergmedia.github.io\/vst3_doc\/vstgui\/html\/\">https:\/\/steinbergmedia.github.io\/vst3_doc\/vstgui\/html\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eines der bekanntesten Frameworks f\u00fcr die Entwicklung von digitalen Audioanwendungen und Audioplugins ist das JUCE-Framework. Das ist ein Framework, das speziell f\u00fcr die Programmiersprache C++ verfasst wurde. Es kann wie ein Werkzeugkasten betrachtet werden, mit welcher Audioanwendungen relativ einfach erstellt werden k\u00f6nnen, weil viele L\u00f6sungen f\u00fcr die Programmierung von DSP-Effekten bereitgestellt werden. Au\u00dferdem wird auch<\/p>\n<footer class=\"entry-footer index-entry\">\n<div class=\"post-social pull-left\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=http%3A%2F%2Fdesres20.netornot.at%2F%3Fp%3D8294\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-facebook\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/twitter.com\/home?status=http%3A%2F%2Fdesres20.netornot.at%2F%3Fp%3D8294\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-twitter\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=http%3A%2F%2Fdesres20.netornot.at%2F%3Fp%3D8294&#038;title=Das+JUCE-Framework\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-linkedin\" aria-hidden=\"true\"><\/i><\/a><\/div>\n<p class=\"link-more\"><a href=\"http:\/\/desres20.netornot.at\/?p=8294\" class=\"more-link\">Continue reading <span class=\"meta-nav\">\u2192<\/span><\/a><\/p>\n<\/footer>\n","protected":false},"author":32,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts\/8294"}],"collection":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8294"}],"version-history":[{"count":2,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts\/8294\/revisions"}],"predecessor-version":[{"id":8298,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts\/8294\/revisions\/8298"}],"wp:attachment":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8294"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}