VST SDK Wrapper programmieren
Übersicht

![]() |
ProducerBetreff: VST SDK Wrapper programmieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo - Hoffe mal dieser Thread passt auch bei BlitzMax-->Allgemein
Hab durch Zufall diesen alten Thread hier endeckt http://www.gprogs.com/forum/viewtopic.php?pid=529 in dem nach einen VST SDK Wrapper für Blitzmax gefragt wird. Leider sind die letzten Posts noch von 2006 und denke daher mal nicht das sowas programmiert wird. Wie in dem verlinkten Thread zu lesen denke ich auch das eine Sprache wie Blitzmax somit sehr intressant für DSP Entwickler werden könnte... Ich finde das sehr intressant da ich seit ca 1-2 Monate an einem eigenen kleinen Sequencer in BlitzMax arbeite - der jedoch keinerlei Schnittstellen unterstützt (VST,VSTi,DXi,RTAS,AU) da diese in BlitzMax (bisher) nicht verfügbar sind. Gerade da man ja mit BlitzMax auch für Mac Os X kompillieren kann ist das eine sehr intressante Thematik wie ich finde... Daher meine Frage: Wie kann ich überhaupt etwas nach BlitzMax wrappen? (Theoretisch gesehen) Könnte man theoretisch mit BlitzMax auch anstatt zu einer EXE zu einer DLL kompilieren (weil sonst könnte man ja nur VST Host Applikationen schreiben - aber keine Plugins) und wenn ja wie? Wenn mir jemand diese Fragen beantworten würde wäre ich schonmal mehr als Dankbar ![]() (mir ist schon klar das man/ich daran sicher scheitern würde irgendwann - aber ich meine ja auch ersteinmal ob es überhaupt möglich ist/bzw. wie es möglich ist) |
||
in this world, all i got is my word and my balls, and i don't break em for nobody |
![]() |
AbrexxesBetreff: Re: VST SDK Wrapper programmieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Producer hat Folgendes geschrieben: Könnte man theoretisch mit BlitzMax auch anstatt zu einer EXE zu einer DLL kompilieren
In einer der nächsten Versionen soll BM in der Lage sein dlls zu erzeugen, jedenfalls hat Sibly das angekündigt. Zitat: ob es überhaupt möglich ist
Ja, alles was man als Unterbau braucht ist direkter Speicherzugriff und 32/64 bit Datentypen. Der ganze Rest hängt nur davon ab wie gut du programmieren kannst. Wenn die Leute happy sein sollen halte dich an denn VSTi (PC) Standart, denn nahezu jedes MAC Prog kann auch mit VSTi umgehen, aber nicht jedes PC Prog mit DXi (oder besser gesagt wird der Import zum Teil schlampig supported). Dann sollte das Teil dem VSTi2.0 Standard entsprechen und mit "Autosuspend" klarkommen. Das einzige (bessere) Programm was damit nicht klarkommt (als Host) ist FL Studio. Da die Jungs seit 6 Versionen nichts grosses am Core verbessern und immer nur noch Zusatz draufpacken um jedes Jahr eine "neue" Version zu bringen würde ich das auch keinen Fall zum testen verwenden (Ja, ich erkenne deinen Avartar). Ansonsten kommen alle angesagten Programme mit dem obigen Standard (in aktueller Version) klar. Also neben FL unbedingt ein 2tes Prog verwenden wie zb Renoise (Demo kostenlos) oder alles von Steinberg, die halten Ihre Schnittstellen und denn nötigen Core nämlich uptodate. cu |
||
#ReaperNewsposterBetreff: Re: VST SDK Wrapper programmieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Abrexxes hat Folgendes geschrieben: Producer hat Folgendes geschrieben:
Könnte man theoretisch mit BlitzMax auch anstatt zu einer EXE zu einer DLL kompilieren
In einer der nächsten Versionen soll BM in der Lage sein dlls zu erzeugen, jedenfalls hat Sibly das angekündigt. Also bislang gibt es (nur für Windows) ein kleines Programm, mit dem das geht, siehe hier: http://www.blitzbasic.com/Comm...opic=50045 Der Downloadlink geht zwar nicht mehr, aber der Code im 2ten Post ist eh etwas besser, und unten wurde auch noch ein kleines Beispiel gepostet. (Kann dir auch die .zip schicken, wenn du die brauchst.) Ansonsten: Wann soll denn das Update rauskommen? ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vergiss die Idee mit BM DLLs.
Das klingt zwar prinzipiell wie ne super idee, da BM jedoch einen eigenen GC hat der läuft, hast du massive Probleme, denn selbst wenn eine BM anwendung die DLL nutzt so sind es immer noch 2 GC die laufen und nicht einer und das klappt dann net (da hätte Silby besser noch ein tiefer in die .NET architektur geschaut) Im aktuellen Zustand sind BM DLLs ein massives Stabilitätsproblem und können net für mehr als eigene basteleitests genutzt werden. Investier lieber zeit in C oder Purebasic für DLLs ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
ProducerBetreff: Re: VST SDK Wrapper programmieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abrexxes hat Folgendes geschrieben: [...] ist FL Studio. Da die Jungs seit 6 Versionen nichts grosses am Core verbessern und immer nur noch Zusatz draufpacken um jedes Jahr eine "neue" Version zu bringen würde ich das auch keinen Fall zum testen verwenden (Ja, ich erkenne deinen Avartar).
Würde ich auch nicht zum testen verwenden bzw. verwende ich auch gar nicht... In meinem Avatar is nämlich Logic und nicht FL ![]() #Reaper hat Folgendes geschrieben: Also bislang gibt es (nur für Windows) ein kleines Programm, mit dem das geht, siehe hier:
http://www.blitzbasic.com/Comm...opic=50045 Der Downloadlink geht zwar nicht mehr, aber der Code im 2ten Post ist eh etwas besser, und unten wurde auch noch ein kleines Beispiel gepostet. (Kann dir auch die .zip schicken, wenn du die brauchst.) Ansonsten: Wann soll denn das Update rauskommen? Wink Danke... Sieht gut aus das Kommandozeilen Prog... Mal schauen was man damit so alles anstellen kann ![]() Wann das Update kommt würd mich auch brennend intressieren... Dreamora hat Folgendes geschrieben: Vergiss die Idee mit BM DLLs.
Das klingt zwar prinzipiell wie ne super idee, da BM jedoch einen eigenen GC hat der läuft, hast du massive Probleme, denn selbst wenn eine BM anwendung die DLL nutzt so sind es immer noch 2 GC die laufen und nicht einer und das klappt dann net (da hätte Silby besser noch ein tiefer in die .NET architektur geschaut) Schade... ![]() Aber was ist wenn die DLL nicht von einem BM Prog genutzt wird? Sinds dann trotzdem 2 GCs? Bzw. Wenn man den GC auf manuel setzt und dann nirgends aufruft müsste sich das doch auch umgehen lassen oder? (kann auch sein das ich mich grad fatal irre und das garnicht möglich ist den GC nicht aufzurufen) Abrexxes hat Folgendes geschrieben: Ja, alles was man als Unterbau braucht ist direkter Speicherzugriff und 32/64 bit Datentypen. Der ganze Rest hängt nur davon ab wie gut du programmieren kannst. Wenn die Leute happy sein sollen halte dich an denn VSTi (PC) Standart, denn nahezu jedes MAC Prog kann auch mit VSTi umgehen, aber nicht jedes PC Prog mit DXi (oder besser gesagt wird der Import zum Teil schlampig supported).
Dann sollte das Teil dem VSTi2.0 Standard entsprechen und mit "Autosuspend" klarkommen. Scheint als kennst du dich ganz gut mit der Matterie aus... Hab schon den C++ Code von dem ADelay (sehr simpler Delayeffekt) studiert aber kann mir nicht so recht vorstellen wie ich in Blitzmax das anstellen könnte... Hauptproblem ist wohl das einbinden der Dateien aus "public.sdk/source/vst2.x/" da die ja C++ Source sind - kann ich die einfach mit "Extern" einbinden? Das wäre doch irgendwie zu einfach um wahr zu sein... Oder müsste ich den Source aus "public.sdk/source/vst2.x/" irgendwie übersetzen in BlitzMax ![]() |
||
in this world, all i got is my word and my balls, and i don't break em for nobody |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du kannst den GC nicht komplett aushebeln. Selbst manuell ändert nichts daran, dass der GC alles was alloziert wird, aufzeichnet und überwacht.
Die einzige möglichkeit daran vorbei zu kommen ist memalloc. Das ist jedoch Blödsinn, denn dann kannst du definitiv direkt C nehmen, das ist sehr viel einfacher und stressfreier. Selbst Josh (leadwerks) scheitert daran oder an teilen davon und der arbeitet Vollzeit mit BM und darauf basierenden Produkten und hat mehr Erfahrung mit Blitz als ein Grossteil der Community hier zusammen. Blitz ist mindestens mit dem jetzigen GC nicht fähig, dynamische Libraries zu erzeugen. Erst muss er mindestens Callback Safe werden, sonst ist er für sich selbst eine Gefahr. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, pinzipiell teile ich die DLL Meinung (was BM angeht), aber wenn ich nur noch das posten würde an was ich bei BM glaube.....jedenfalls war das Siblys letzte Aussage.
Zitat: Scheint als kennst du dich ganz gut mit der Matterie aus...
Mit VSTs selbst beschäftige ich mich nicht, kenne aber die Probleme die ich viele nutzte und auch teilweise Betateste (Host). Ich selbst arbeite seit Monaten an einem Tracker..daher auch BBS und Escape3D etc was quasi heist das ich mir erst mal die nötigen Tools mache. *g*. Mein Interesse gilt dabei der statischen Maipulation der Audiodaten (für einen internen Editor), leider findet man da nicht viel. Das einzige was relativ gut zu "lesen" ist, ist der Source Code von Sox (bei BBS dabei), aber das betrifft nur Effekte und Umwandeln von Rohmaterial (PCM), nicht aber eine Quelle für Klangerzeugung. SOX kann man auch für den MAC compilieren, ich habe aber leider keine compilierte Version davon, jedenfalls ist der Code eine kleine Bibel wenn man C lesen kann. Falls du gute Links hats über das Thema immer her damit. (Hab seit Jahren keinen aktuellen LOGIC Desktop mehr gesehen, daher mein Vergehen, ich schäme mich zutiefst. LOGIC mit FL zu vergleichen..dafür sollte ich mich selbst auspeitschen.) |
||
![]() |
Producer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abrexxes hat Folgendes geschrieben: Das einzige was relativ gut zu "lesen" ist, ist der Source Code von Sox (bei BBS dabei), aber das betrifft nur Effekte und Umwandeln von Rohmaterial (PCM), nicht aber eine Quelle für Klangerzeugung.
SOX kann man auch für den MAC compilieren, ich habe aber leider keine compilierte Version davon, jedenfalls ist der Code eine kleine Bibel wenn man C lesen kann. Falls du gute Links hats über das Thema immer her damit. (Hab seit Jahren keinen aktuellen LOGIC Desktop mehr gesehen, daher mein Vergehen, ich schäme mich zutiefst. LOGIC mit FL zu vergleichen..dafür sollte ich mich selbst auspeitschen.) (Der Vegleich von Logic mit FL seih dir verziehen ![]() SOX hab ich mir mal angeschaut - auf den ersten Blick wird man ja erschlagen von Sourcecode ![]() Zu Blitz Bass Studio muss ich sagen das es wirklich Schade ist, das es nicht unter BlitzMax läuft... Gibt zwar dieses Modul von mgekit - aber damit kann man nicht mal den example Source kompilieren ![]() Hoffe mal das sich da in nächster Zeit was ändert... Links zum Thema VST Programmierung meinst du? Steinbergs Developer Site (u.a. viele Docs & VST SDK) http://www.steinberg.de/324_1.html Viele Sourcecodes von VSTs und auch Tutorials für Anfänger http://www.u-he.com/vstsource/ Music DSP http://www.musicdsp.org/ Große Community zum Thema http://www.kvraudio.com/ Plugins - auch mit Delphi Sourcecode http://www.tobybear.de/ Java Wrapper VST http://jvstwrapper.sourceforge.net/ Sehr intressant ist auch MAX - Entwicklungsumgebung für Audioalgorithmen... Zwar sehr teuer, aber es gibt eine 30 Tage Testversion auf der Seite http://www.cycling74.com/ Schade das es nicht möglich sein wird brauchbare DLLs mit BlitzMax zu kompilieren... Muss wohl bei C++ bleiben ![]() |
||
in this world, all i got is my word and my balls, and i don't break em for nobody |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na da dank ich mal ![]() Was BBS angeht. Auf eine Anfrage von mir im Forum von Bass meinte Ian (Der Autor) es wäre ein Linux Port vorgesehen, im Moment hätte es aber keine Priorität. Desweiteren rechne ich damit das sich Bass und Fmod definitiv in Richtung openAL bewegen, ausserdem ist die 2.4 wohl nicht mehr weit weg. Aus diesem Grund habe ich beschlossen vorerst keinen Port für BM zu integrieren da ich nicht 10 mal neu anfangen will (Ausserdem wird die Windows Version meines Progs priorität haben und B3D/Draw3D sein da schneller, 3D Dx7 und rockstabil(ja 3 Gründe gegen BM)). Aber du wirst ja nicht die komplette API brauchen. Ich würde dir raten Bass nicht als Modul sondern als normalen Code zu nutzen (include) und dann nur das einzubinden was du auch brauchst. Wenn du dich genau an die Api hälst wird dann später ein Umstieg auf ein Crossover Modul kein Problem sein. cu |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group