Programowanie pluginów VST

Jeśli chcesz zasięgnąć rady, podzielić się doświadczeniem w trudnej sztuce samodzielnego programowania - to tu jest miejsce, aby tego dokonać.
Awatar użytkownika
ciuri
Posty: 31
Rejestracja: poniedziałek 24 lis 2003, 00:00

Programowanie pluginów VST

Post autor: ciuri » środa 23 mar 2005, 12:28

Witam.

Mam nadzieję ze zajmuje się ktoś tutaj programowaniem vst.

Mam następujący problem. Programuję w Visual C++ 6.0. Ściągnąłem sobie VST SDK, i próbowałem skompilować przykładowe programy. Niby wszystko OK, żródła kompilują sie, tworzy się plik DLL, jednak po skopiowaniu tego pliku do katalogu z pluginami vst, żaden host nie widzi nowej wtyczki. Czy trzeba coś jeszcze robić z nią po skompilowaniu? (choć nie bardzo wiem co możnaby z nią zrobić :) )

A może w samym kompilatorze trzeba coś zmienić (jakąś opcję)



Z góry dzięki za podpowiedzi.



pozdrawiam

Awatar użytkownika
MB
Posty: 3318
Rejestracja: wtorek 09 kwie 2002, 00:00

Re: Programowanie pluginów VST

Post autor: MB » środa 23 mar 2005, 13:20

zacznij od restartu hosta. Wiele z nich sprawdza czy są nowe wtyczki tylko raz przy starcie, a są i takie, które wymagają uruchomienia specjalnej procedury (plug enabler w Logicu, plugin scan we Fruity Loops itd)


WG
Posty: 1235
Rejestracja: poniedziałek 12 sie 2002, 00:00

Re: Programowanie pluginów VST

Post autor: WG » środa 23 mar 2005, 13:27

tworzy się plik DLL, jednak po skopiowaniu tego pliku do katalogu z pluginami vst, żaden host nie widzi nowej wtyczki.



**********************

A czy w EXPORT masz zdefiniowaną funkcję main ?

Czy wywołania klas prawidłowo funkcjonują ?

Czy plugin ma zdefiniowane GUI czyli własny edytor ?



Uruchom vsthost albo minihost. Załaduj tam tego DLL-a.

Minihost ma chyba diagnostyczny, więc tam sprawdzisz co jest nie tak.




Awatar użytkownika
ciuri
Posty: 31
Rejestracja: poniedziałek 24 lis 2003, 00:00

Re: Programowanie pluginów VST

Post autor: ciuri » środa 23 mar 2005, 15:11

Dzięki za odpowiedzi.



Może lepiej będzie jak powiem dokładnie co robię, a Wy napiszecie mi co robię źle :)

Tak więc: chcę skompilować przykładową wtyczkę AGain z pakietu VST SDK (to ta najprostsza wtyczka)

Czyli:

1. Tworzę nowy projekt w VC++. File->New->Win32 Dynamic-link library ->Empty DLL project.

2.kopiuję do katalogu z projektem pliki AGain.cpp,Again.hpp, AGainMain.cpp, a także kopiuję wszystkie pliki z katalogu vstsdk/source/common (to są te wszystkie pliki pomocnicze (np. adioeffectx.cpp, audioeffectx.h .... )

3. W VC++ dodaję do projektu wszystkie te pliki project->Add to project->Files, ...

4. Teraz włączam Build->Build (nazwa.dll)



Tworzy mi się plik nazwa.dll, którego nie widzi żaden host.

W Minihoscie gdy uruchamiam wtyczkę wyskakuje komunikat, "nazwa.dll is not a valid VST plugin"

We fruity loopsie taki sam komunikat, a np. Samplitude w ogóle nie widzi tej wtyczki.



Co robię źle? Męczy mnie to już dłuższy czas. Same kody źródłowe chyba są dobre, bo pochodzą z SDK. (inne też próbowałem i to samo) Może jest jakaś opcja w kompilatorze, którą muszę przestawić? Nigdy nie robiłem plików DLL więc nie wiem.



Dzięki za odpowiedzi



pozdrawiam


WG
Posty: 1235
Rejestracja: poniedziałek 12 sie 2002, 00:00

Re: Programowanie pluginów VST

Post autor: WG » środa 23 mar 2005, 15:41

Utwórz sobie plik export.def



Wklej taką zawartość:



LIBRARY nazwa

EXPORTS main





Host podczas ładowania wtyczki przeszukuje DLL-a i jego procedury eksportowe (której nie miałeś zdefiniowanej). W momencie gdy go znajdzie uruchamia go wykonując inicjalizację biblioteki dynamicznej czyli tego naszego DLL-a.



Dodaj ten plik do projektu no i gotowe.

Awatar użytkownika
szkudlik
Posty: 1732
Rejestracja: czwartek 26 lut 2004, 00:00

Re: Programowanie pluginów VST

Post autor: szkudlik » środa 23 mar 2005, 16:56

Może lepiej będzie jak powiem dokładnie co robię, a Wy napiszecie mi co robię źle :)

**********************



Najlepiej bedzoe - sciagnij sobie jakikolwiek kod pluginu ktory sie kompiluje prawidlowo i porownaj ze swoim.


[addsig]
Ilu realizatorów potrzeba żeby wkręcić żarówkę?

Czterech, jeden wkręca a trzech mówi że by to zrobiło lepiej

Awatar użytkownika
ciuri
Posty: 31
Rejestracja: poniedziałek 24 lis 2003, 00:00

Re: Programowanie pluginów VST

Post autor: ciuri » środa 23 mar 2005, 21:05

...Utwórz sobie plik export.def



Wklej taką zawartość:



LIBRARY nazwa

EXPORTS main





Host podczas ładowania wtyczki przeszukuje DLL-a i jego procedury eksportowe (której nie miałeś zdefiniowanej). W momencie gdy go znajdzie uruchamia go wykonując inicjalizację biblioteki dynamicznej czyli tego naszego DLL-a.



Dodaj ten plik do projektu no i gotowe....

**********************



DZIAŁA!!!!!!!!!



WG, jesteś wielki :) , no to mam zabawę na święta :)

W życiu bym na to nie wpadł, ze to trzeba tak zrobić :)



Jak będe miał jakieś problemy, to wiem do kogo walić :)

ODPOWIEDZ