Hoe maak je een VST?

Lid sinds
12 oktober 2016
Berichten
6.308
Hoe maak je een VST, en dat het liefst enigszins aansluit op m'n programmeerkennis? Ik heb wat ideeën voor wat experimentele synthese, uiteindelijk zou ik het liefst daar een stukje hardware voor maken, met een beetje analoog erbij als toetje, maar voor het grootste deel kan het digitaal. Ik denk daarbij aan een Raspberry Pi, maar het lijkt me leuk en praktisch om er ook een VST van te maken. Kunnen meer mensen het proberen, testen en commentaar ter verbetering leveren.

De eigenlijke VST SDK is een verzameling van C++ classes heb ik begrepen, maar heb weinig ervaring met die taal. Vroeger begonnen in BASIC, maar de grote liefde was toch vooral Turbo Pascal en later Delphi. Voor hobby, maar met Delphi voor werk ook e.e.a. gemaakt, vooral conversietools om data om te zetten van het ene systeem en formaat naar het andere. Er was kennelijk ooit 'ns een VST port naar Delphi, door iemand die Frederic Vanmol heet. Z'n pagina daarover is echter niet meer online.

Een andere mogelijkheid zou iets maken met Free Pascal kunnen zijn, dat is kennelijk door sommigen wel 'ns gelukt. Maar blijkbaar incidenteel, kan er niet veel over vinden. Beetje jammer, want je kunt ermee op veel platforms terecht. In elk geval delen van de source zou je weer kunnen hergebruiken voor een latere port naar de RPi.

Wat betreft de BASIC-varianten, een leuke uitvoering waar ik voor iets anders al 'ns naar heb gekeken is PureBasic. Het is vrij gemakkelijk om daar iets vlot mee te maken, een VST moet ook lukken, daar zijn voorbeelden van. Nadeel is dat ik voor de RPi daar niks aan heb. Omdat ik voorzie dat wat ik wil vrij "lichtgewicht" is, en daarom niet zo'n probleem, maar de compiler (nou ja, compiler, de backend is FASM) haalt niet het onderste uit de kan wat een moderne processor kan.

Als ik mogelijkheden over het hoofd zie, of als iemand een goed idee heeft: ik hoor het graag. :)
 
Een andere mogelijkheid zou iets maken met Free Pascal kunnen zijn, dat is kennelijk door sommigen wel 'ns gelukt. Maar blijkbaar incidenteel, kan er niet veel over vinden. Beetje jammer, want je kunt ermee op veel platforms terecht. In elk geval delen van de source zou je weer kunnen hergebruiken voor een latere port naar de RPi.

Wellicht is dit iets voor je. https://www.kvraudio.com/product/vst-plugin-sdk-delphi-by-axiworld

This is the Delphi translation of the VST 2.4 and VST 3.5 SDKs. It contains everything you need to compile a VST effect or instrument plugin, but not all the examples in the original SDK.

Of met een visuele programeer taal (max/reaktor achtig): https://www.synthedit.com
 
Al even geleden dat ik hiermee experimenteerde; wat jaren terug kon je de Steinway VST SDK downloaden. Prima startpunt, wel C kennis nodig.
 
Als je al Delphi / basic / Pascal kent, dan is het leren van c++ syntax niet de grootste uitdaging lijkt me. De moeilijkheid zit 'm in dsp kennis. Dus als je de dsp kennis al hebt en je hebt programmeer ervaring zou ik denk ik gewoon c++ overwegen, zodat je weet dat het cross platform is, en voldoende voorbeelden en dat je later niet tegen een muur op loopt.
 
Als je al Delphi / basic / Pascal kent, dan is het leren van c++ syntax niet de grootste uitdaging lijkt me. De moeilijkheid zit 'm in dsp kennis. Dus als je de dsp kennis al hebt en je hebt programmeer ervaring zou ik denk ik gewoon c++ overwegen, zodat je weet dat het cross platform is, en voldoende voorbeelden en dat je later niet tegen een muur op loopt.

Dat zie ik toch een beetje anders. ;)

Het aantrekkelijke van een taal als Pascal is dat de code vrij gemakkelijk te schrijven is, het is overzichtelijk, en het is later ook weer gemakkelijk te lezen bij het onderhouden van de code. Netto kun je veel tijd besteden aan de eigenlijke, inhoudelijke taak die je wil programmeren. Er zijn ook nadelen, sourcecode is minder compact, bij executie zal de uitvoeringssnelheid meestal iets minder snel zijn dan in vergelijking met bv. C++. Maar dat hoeft niet per se een probleem te zijn. Als het voor hobby is, dan heb ik liever iets waarmee ik snel iets kan ontwikkelen, en de tijd die het kost vooral kan besteden aan de inhoud. Voor een professionele programmeur kan het anders liggen, als je door langdurig, dagelijks gebruik alle hebbelijk- en onhebbelijkheden van een andere taal kent zal het geen probleem zijn om in die taal te programmeren wat je maar wil.

Het hangt ook af van de toepassing. Voor een groter en complex project liever een taal waarbij je gemakkelijk code kunt schrijven, maar voor bijvoorbeeld een microcontroller met functies die je wil wat dicht op de hardware zit zou plain C geen slechte keuze zijn. Als het project niet te groot is tenminste, anders zou ik ook daarvoor uitkijken naar een alternatief. Bijvoorbeeld BASCOM, als het om AVR gaat. :)
 
Ik heb ooit een Mackie control emulatie geschreven in JUCE en ook voor VST plugins wordt dit C++ framewerk veel gebruikt. Ik geloof dat het tegenwoordig al véél beter gedocumenteerd is dan 10 jaar terug. Als je weet wat je wilt schrijven dan gaat dat zeker in Juce lukken en het is gratis voor niet commercieel gebruikt !

https://juce.com/
 
Back
Top