flat assembler
Message board for the users of flat assembler.
Index
> Projects and Ideas > VSTi and VSTfx plugins |
Author |
|
edfed 06 Jul 2023, 09:54
i am trying hard to find the vst example in asm on this forum but nothing seems to be there.
i don't really remember when or where it was, maybe on another website or here. the goal is to develop a set of libs to make vst instruments and fx able to run with any DAW, and at least the major ones. the template will let any programmer to add fucntions, effects, synths and so on by just coding the functions. for the moment, i 've got this, but it don't works. it is adapted from a non working example found in random place. the next step is to find an easy to understand documentation about the VST specs. Code: format PE GUI 4.0 DLL include 'win32a.inc' section '.text' code readable executable proc VSTPluginMain mov eax, AEffect ret endp dispatcher: ret process: jmp processReplacing ret setParameter: ret getParameter: ret processReplacing: push ebp mov ebp, esp jmp .L2 .L3: mov eax, [ebp+16] mov eax, [eax] mov edx, [ebp+20] sal edx, 2 lea edx, [eax+edx] mov eax, [ebp+12] mov eax, [eax] mov ecx, [ebp+20] sal ecx, 2 add eax, ecx fld dword[eax] fld dword[one_half_float] fmulp st1, st0 fstp dword[edx] .L2: cmp dword[ebp+20], 0 setg al sub dword[ebp+20], 1 test al, al jne .L3 pop ebp ret processDoubleReplacing: ret section '.data' data readable writeable one_half_float: dd 0.5 AEffect: db 'PtsV' ;//VstInt32 magic; ///< must be #kEffectMagic ('VstP') dd dispatcher ;AEffectDispatcherProc dispatcher; dd process ;AEffectProcessProc DECLARE_VST_DEPRECATED (process); dd setParameter ;AEffectSetParameterProc setParameter; dd getParameter ;AEffectGetParameterProc getParameter; dd 0 ;VstInt32 numPrograms; ///< number of programs dd 0 ;VstInt32 numParams; ///< all programs are assumed to have numParams parameters dd 1 ;VstInt32 numInputs; ///< number of audio inputs dd 1 ;VstInt32 numOutputs; ///< number of audio outputs dd 1 shl 4 ;| 1 << 12 ;VstInt32 flags; ///< @see VstAEffectFlags dd 0 ;VstIntPtr resvd1; ///< reserved for Host, must be 0 dd 0 ;VstIntPtr resvd2; ///< reserved for Host, must be 0 dd 0 ;VstInt32 initialDelay; ///< for algorithms which need input in the first place (Group delay or latency in Samples). This value should be initialized in a resume state. dd 0 ;VstInt32 DECLARE_VST_DEPRECATED (realQualities); ///< \deprecated unused member dd 0 ;VstInt32 DECLARE_VST_DEPRECATED (offQualities); ///< \deprecated unused member dd 0.0 ;float DECLARE_VST_DEPRECATED (ioRatio); ///< \deprecated unused member dd 0x1337babe ;void* object; ///< #AudioEffect class pointer dd 0 ;void* user; ///< user-defined pointer dd 'MSAV' ;VstInt32 uniqueID; ///< registered unique identifier (register it at Steinberg 3rd party support Web). This is used to identify a plug-in during save+load of preset and project. dd 1337 ;VstInt32 version; ///< plug-in version (example 1100 for version 1.1.0.0) dd processReplacing ;AEffectProcessProc processReplacing; dd processDoubleReplacing ;AEffectProcessDoubleProc processDoubleReplacing; rb 56 section '.edata' export data readable export 'vst.DLL',\ VSTPluginMain,'VSTPluginMain' let's go?! |
|||
06 Jul 2023, 09:54 |
|
edfed 06 Jul 2023, 14:12
i am just starting to leanr womething about vst. i still don't know anything.
|
|||
06 Jul 2023, 14:12 |
|
bitRAKE 06 Jul 2023, 16:04
[regarding assembly VST work]
ABox2 has a VST plugin interface, Google has discontinued their sites feature, but there are some captures on the wayback machine. _________________ ¯\(°_o)/¯ “languages are not safe - uses can be” Bjarne Stroustrup |
|||
06 Jul 2023, 16:04 |
|
edfed 07 Jul 2023, 13:35
thanks, just by trying to convert it to fasm, i should still get a lot of usefull tricks about sound programming
|
|||
07 Jul 2023, 13:35 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.