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
Programowanie pluginów VST
Re: Programowanie pluginów VST
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)
Re: Programowanie pluginów VST
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.
**********************
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.
Re: Programowanie pluginów VST
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
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
Re: Programowanie pluginów VST
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.
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.
Re: Programowanie pluginów VST
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]
**********************
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
Czterech, jeden wkręca a trzech mówi że by to zrobiło lepiej
Re: Programowanie pluginów VST
...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ć :)
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ć :)