News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

Audio VST plugin needed, simple but non existent in the market

Started by LordAdef, February 01, 2019, 09:18:57 AM

Previous topic - Next topic

LordAdef

Hi guys,
Believe it or not, I need the simplest of the simplest Audio VST plugin. But... I searched everything but there isn't any!!!!!
I know Marinus have looked at the VST documentation already, but who knows if anyone here wanted to have a go.
I work with DAWs (digital audio workstation) everyday of my life. When mixing a music track, all separate audio tracks (at al) goes to the DAW's stereo Master track.
What I miss is a simple plugin to draw the resulting waveform representation. Simple right?

But the existing ones are oscilloscopes kind of  plugins with many functions, but the waveform representation is either absent or restricted by the window.



Anyone interesting in making one???


There are thousands of threads in specialized forums of people looking for something like I am proposing, just saying..



Regards Alex
ps: Hutch, I didn't know where to write this thread, Workshop seemed right.

guga

Hi LordAdef

I never built a vst plugin before, but did you took a look at IsotopeRX ? It is a standalone app, but suitable for usage with plugins and the best available in the market concerning audio restoration.

For open source you could give a try at
https://github.com/webprofusion/OpenAudio
https://vcvrack.com/
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

LordAdef

Oi Guga, tudo bem?
So, I sure know Isotope RX. It's an extremely powerful tool, I used a lot and it's used all the time where I work. It's our prime tool to clean audio recorded at live locations. But it's quite too expensive and really off of what I need.
Have you heard of the JUCE framework/SDK? I found a tutorial that do just that, drawing a wave representation. I might have a look a that, although I will have to touch.... arghhhh.... C++..... But let's see...

Siekmanski

Quote from: LordAdef on February 01, 2019, 09:18:57 AM
Hi guys,
Believe it or not, I need the simplest of the simplest Audio VST plugin. But... I searched everything but there isn't any!!!!!
I know Marinus have looked at the VST documentation already, but who knows if anyone here wanted to have a go.

Only had a look at the VST SDK and just like their (Steinberg) ASIO SDK it's all a mix of COM, STDCALL and C calling conventions.  ::)
I have finished the ASIO translation but don't feel the need to do the VST translation very soon.
Busy with other things....
Creative coders use backward thinking techniques as a strategy.

felipe

i used a few times nuendo (or something similar) which i think is (or was) from steinberg. and i think nuendo used those vst plugins...but i have never tried to program one...

LordAdef

thanks guys!
I myself would try to code it myself. I've heard the VST sdk is not for the faint of hearts....
But I will try this JUCE framework, that saves all the hassle and looks like has some nice audio prebuilt  stuff, including a real time buffer drawing routine.

Siekmanski

Alex, I just found this on kvraudio,
https://www.kvraudio.com/forum/viewtopic.php?t=360390

here is the asm source code,
http://alturl.com/22nas
Creative coders use backward thinking techniques as a strategy.

guga

Oi Alexandre. Te mandei inbox por aqui e te encaminhei meu face por inbox.

Eu uso o Isotope quase todo santo dia. É incrível para restauração de áudio, sobretudo quando se trata de áudio oriundo de películas telecinadas em 16mm por exemplo.

Hi Siekmanski, judging by the code of VST, it is quite similar to what is found on VirtualDub plugins (basically are simple pointers to structures). Indeed, easier then i expected, though :t :t :t

; NASM asm file

use32
section .text

export VSTPluginMain
global VSTPluginMain

VSTPluginMain:
mov eax, AEffect
dispatcher:
setParameter:
getParameter:
processDoubleReplacing:
; unsupported
ret

process:
processReplacing:
push ebp
mov ebp, esp
jmp .L2
.L3:
mov eax, DWORD[ebp+16]
mov eax, DWORD[eax]
mov edx, DWORD[ebp+20]
sal edx, 2
lea edx, [eax+edx]
mov eax, DWORD[ebp+12]
mov eax, DWORD[eax]
mov ecx, DWORD[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

section .data

one_half_float:
dd 0.5

AEffect:
db 'PtsV'
dd dispatcher, process, setParameter, getParameter, 0, 0, 1, 1, 1 << 4, 0, 0, 0, 0, 0, 0., 0x1337babe, 0, 'MSAV', 1337, processReplacing, processDoubleReplacing
%rep 56
db 0
%endrep
; WARNING!
; This is highly experimental and is probably going to crash your host ... it works in REAPER (4.25; running in Linux under WINE) though.
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com