Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Prototyp] RotaryFX - drugie (bardziej muzyczne) życie dysku HDD

MocnyAmper 11 Oct 2021 18:24 2538 25
  • Witajcie.
    Prezentuję Wam, póki co jedynie jako zajawkę, efekt mojej dotychczasowej pracy nad projektem nazwanym roboczo RFX - Rotary FX.

    W skrócie - jest to procesor audio DSP oparty o układ SPN1001 (FV-1), ale w nieco niekonwencjonalnym, jak widać, wydaniu 8-)
    Docelowo lista funkcjonalności obejmować będzie więcej niż tylko ten pokazany efekt. W planach są dwa banki efektów, jakieś proste menu konfiguracyjne, własny programator, i co tam jeszcze wymyślę.



    Zagadka: co było inspiracją do powstania omawianego urządzenia? Zwycięzca otrzyma wycieczkę do Radomia :D

    Póki co, na szybko flanger. Pozostałe się piszą :)


    [DODANO 13.10.2021]
    Low pass / high pass:



    [Prototyp] RotaryFX - drugie (bardziej muzyczne) życie dysku HDD[Prototyp] RotaryFX - drugie (bardziej muzyczne) życie dysku HDD

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    MocnyAmper
    Level 13  
    Offline 
    Has specialization in: Psuję wszystko po trochu
    MocnyAmper wrote 126 posts with rating 20, helped 10 times. Live in city Katowice. Been with us since 2021 year.
  • #2
    gabriel0
    Level 11  
    Podoba mi się wykonanie płytki. Nie bardzo widzę wygodę korzystania z tego.

    Odpowiedź na pytanie konkursowe. Podejrzewam inspirację tym.
    [Prototyp] RotaryFX - drugie (bardziej muzyczne) życie dysku HDD
  • #3
    MocnyAmper
    Level 13  
    Wykonanie, czy projekt? :) PCB zamawiałem od JLC.
    Jeśli chodzi o wygodę to sam nie wiem. Spełnia swoje zadanie i całkiem efektownie wygląda. Nie wiem co tu można bardziej ergonomicznie zrobić.

    Co do zagadki: akurat nie :D
  • #4
    scythe1123
    Level 13  
    Kiedyś też planowałem zrobić z dysków kontroler do oprogramowania djskiego ale jakoś nie doczekało się to realizacji.
    Wiec obstawiał bym inspirację deckami typu CDJ Pioneera.
  • #6
    arti4-92
    Level 17  
    MocnyAmper wrote:
    Nie, ale ciepło :D


    Chodzi o traktorizer ?
  • #8
    ArturAVS
    Moderator of HydePark/Cars
    Wykorzystujesz silnik napędu talerzy jako enkoder? Gdzie i w jakiej cenie kupiłeś FV-1? Co do pytania konkursowego to pewnie chodzi o magiczne pokrętło do sterowania dźwiękiem w PC.
  • #9
    MocnyAmper
    Level 13  
    ArturAVS wrote:
    Wykorzystujesz silnik napędu talerzy jako enkoder?

    Tak. Sygnały z silnika są kierowane do wzmacniacza z bardzo dużym wzmocnieniem, który formuje z nich impulsy wywołujące przerwania w uC.
    Kiedy opublikuję finalną wersję, wtedy też zamieszczę schemat i PCB.

    ArturAVS wrote:
    Gdzie i w jakiej cenie kupiłeś FV-1?

    Na początku kupowałem na Aliexpress (jakieś pół roku temu, wtedy nigdzie indziej ich nie było), ale straciłem dość dużo pieniędzy zanim trafiłem na sprzedawcę, który sprzedaje oryginały. Na chwilę obecną są dostępne tutaj i tutaj.

    ArturAVS wrote:
    Co do pytania konkursowego to pewnie chodzi o magiczne pokrętło do sterowania dźwiękiem w PC.

    Niestety, nadal nie :D W końcu pewnie ktoś trafi :P
  • #11
    MocnyAmper
    Level 13  
    Pytasz o sygnał zegarowy? Taktuję procesor przez bramki (CD4010) bezpośrednio z uC sygnałem o częstotliwości prawie 48kHz. Dlaczego tak wysoko? Między innymi chodzi o pasmo, które chciałem rozszerzyć do 20kHz oraz fakt, że BPM ograniczyłem od dołu do 100, więc potrzebuję jedynie 600ms opóźnienia.
  • #12
    ArturAVS
    Moderator of HydePark/Cars
    Chodzi mi o sterowanie np. głębokością efektu, wykorzystujesz PWM w roli DACa dla stworzenia sygnału napięciowego dla FV i podajesz na wejścia potencjometrów?
  • #13
    MocnyAmper
    Level 13  
    Używam DACów do generowania sygnału z enkodera i sygnału synchronizacji tempa efektów. Reszta jest bezpośrednio z potencjometrów.

    EDIT:
    Znalazłem trochę czasu na nagranie kolejnego filmu demonstracyjnego, tym razem filtry :D A poniżej foto całej jednostki sterującej.



    [Prototyp] RotaryFX - drugie (bardziej muzyczne) życie dysku HDD
  • #14
    mycodename47
    Level 14  
    Chodzi o "Kontroler MIDI do scratchu wykonany z dysku twardego."?
  • #15
    ArturAVS
    Moderator of HydePark/Cars
    Zgrabne PCB :D Gdybyś użył do generowania napięciowych sygnałów sterujących DACa (np. PWM) dla wszystkich wejść kontrolnych FV-1 miałbyś możliwość zapamiętywania różnych ustawień podobnie jak w fabrycznych efektach.
  • #16
    MocnyAmper
    Level 13  
    mycodename47 wrote:
    Chodzi o "Kontroler MIDI do scratchu wykonany z dysku twardego."?

    Akurat nie, ale również ciepło :D

    ArturAVS wrote:
    Zgrabne PCB :D Gdybyś użył do generowania napięciowych sygnałów sterujących DACa (np. PWM) dla wszystkich wejść kontrolnych FV-1 miałbyś możliwość zapamiętywania różnych ustawień podobnie jak w fabrycznych efektach.

    Chodzi Ci o to, że zamiast potencjometrów mogłem użyć DACów i enkoderów?
    Niby tak, ale jednak potencjometr to potencjometr, daje większą kontrolę nad wartością nastawioną niż jakikolwiek enkoder (chodzi mi głównie o dynamikę zmian).
    Chociaż, jak tak teraz myślę to chyba zbudowałem coś dokładnie przeciwnego :D Bo główny parametr kontroluję enkoderem, a parametr dodatkowy i mix sygnałów poprzez potencjometry... Tak przy okazji; ten mix jest dość umowny, to po prostu wejście POT2 procesora. Uznałem, że każdy z efektów będzie miał taką funkcję.
    Jeśli natomiast chodzi o sam przetwornik to na początku rozważałem PWM, ale stwierdziłem, że potrzebuję większej dokładności i stabilności (zwłaszcza do kontroli tempa) więc finalnie zastosowałem MCP4912.

    Co do PCB, to jeszcze nie jest finalna wersja. Musiałem trochę inaczej poprowadzić masy. Za jakiś czas powinny przyjść nowe płytki, wtedy się zobaczy.
  • #17
    ArturAVS
    Moderator of HydePark/Cars
    MocnyAmper wrote:
    ale jednak potencjometr to potencjometr

    Potencjometry mogłyby zostać :D. Odczytujesz napięcie z potencjometru przez ADC kontrolera i wysyłasz na DAC sterujący FV, zapis nastaw z potencjometrów możesz sobie wtedy zapisać np. w EEPROM. Tu chyba nawet 8 bitów by się sprawdziło. Ciekawe czy FV reguluje analogowo czy cyfrowo (i z jaką rozdzielczością)? Nie wiem jakiego kontrolera używasz ale głównie steruje on wyświetlaczem oraz obsługuje "enkoder" więc pewnie jeszcze ma spory zapas zasobów. Enkoder bym zostawił do szybkiej zmiany banków pamięci/edycji efektu "live". Jeśli miałeś kiedyś do czynienia z profesjonalnym procesorem efektów to są w większości z nich tzw. "presety" zawierające fabryczne ustawienia efektów oraz "presety" użytkownika. Spójrz; https://www.youtube.com/watch?v=W8N0bGyIbBM
  • #18
    MocnyAmper
    Level 13  
    ArturAVS wrote:
    Odczytujesz napięcie z potencjometru przez ADC kontrolera i wysyłasz na DAC sterujący FV, zapis nastaw z potencjometrów możesz sobie wtedy zapisać np. w EEPROM. Tu chyba nawet 8 bitów by się sprawdziło.

    Nie bardzo widzę sens odczytywania wartości potencjometru i sterowanią nią DACa. Po co? :) W przypadku enkodera ma to sens bo można mu ustawić dowolną wartość startową po włączeniu zasilania, natomiast potencjometr będzie miał taką wartość z jaką go zostawisz. To miałoby sens jedynie gdyby zamienić wszystkie potencjometry na enkodery. 8 bitów wystarczyłoby do parametrów, natomiast do synchronizacji tempa potrzeba conajmniej 9, a najlepiej 10.

    W moim urządzeniu jest opcja tzw. głównego parametru startowego. Polega to na tym, że podczas wgrywania efektów podajesz startową wartość parametru, z jaką efekt ma zostać załadowany. I tak np. dla filtrów będzie to 0, ale już np dla pitch shifter-a będzie to 50. Wartość tą będzie można zmieniać (nadpisywać) podczas uźywania urządzenia.

    ArturAVS wrote:
    Ciekawe czy FV reguluje analogowo czy cyfrowo (i z jaką rozdzielczością)?

    To procesor DSP, więc raczej cyfrowo :D
    Do dyspozycji są 3 wejścia, z których wartość trafia w czasie (prawie) rzeczywistym do trzech osobnych rejestrów, które można wykorzystać do dowolnego celu.
    Jeśli chodzi o rozdzielczość to spotkałem się z informacjami zarówno, że jest ona 10-bitowa, jak i 9-bitowa. Prawdopodobnie rzeczywista rozdzielczość przetworników wejść potencjometrycznych to 10 bitów, ale jest ograniczana do 9 żeby zapobiegać "przeskakiwaniu" wartości na najniższych bitach. Do tego dochodzi ~100ms opóźnienia spowodowanego filtrowaniem.

    ArturAVS wrote:
    Nie wiem jakiego kontrolera używasz ale głównie steruje on wyświetlaczem oraz obsługuje "enkoder" więc pewnie jeszcze ma spory zapas zasobów.

    Atmega324 :) Na chwilę obecną mam zajęte ~60% powierzchni pamięci, a kilka funkcji jeszcze muszę dodać. I choć nie uważam się za jakiegoś wirtuoza kodowania, to jednak staram się używać różnych sztuczek zmniejszających użycie pamięci (np funkcje) i usprawniających program. Mogę użyć LTO, wtedy pewnie pare % miejsca się zwolni.
    Generalnie to coś więcej niż tylko wyświetlacz i enkoder :D Do tego dochodzi obsługa przerwań, dwa różne DACe (na SPI i I2C), programator banków pamięci, odczyt potencjometrów, itd.
    Jako ciekawostkę dodam, że piszę to w Arduino :P
  • #19
    ArturAVS
    Moderator of HydePark/Cars
    MocnyAmper wrote:
    Nie bardzo widzę sens odczytuwania wartości potencjometru i sterowanią nią DACa. Po co?

    Chociażby po to aby szybko przywołać z pamięci (EEPROM) właściwe dla danego efektu ustawienia zamiast kręcić i szukać ustawień dla pożądanego efektu. Znam takich muzyków którzy jeszcze w czasach analogowych efektów znaczyli gałki lub wręcz je przyklejali aby nikt im ustawień nie zmienił :D. Cyfrowe sterowanie załatwia takie rzeczy jednym kliknięciem przycisku (przywraca ostatnie nastawy). Wiem że będziesz optował że tylko Ty używasz etc. ale faktycznie jest to bardzo przydatna sprawa.

    MocnyAmper wrote:
    programator banków pamięci, odczyt potencjometrów, itd.

    Czyli i tak już "czytasz" potencjometry :D A co w tych bankach zapisujesz?
  • #20
    MocnyAmper
    Level 13  
    Jak pewnie zauważyłeś, jestem fanem kilkukrotnego zmieniania swoich wypowiedzi po wysłaniu ;D

    ArturAVS wrote:
    Chociażby po to aby szybko przywołać z pamięci (EEPROM) właściwe dla danego efektu ustawienia zamiast kręcić i szukać ustawień dla pożądanego efektu.

    Tak właśnie działa opisana przeze mnie funkcja parametru startowego :D Oczywiście działa to jedynie na enkoderze.

    ArturAVS wrote:
    A co w tych bankach zapisujesz?

    No efekty :D Jedna pamięć eeprom mieści 8 efektów. Banki są dwa, mogą być podmieniane "w locie" poprzez zmianę adresu pamięci. Adres jest 3-bitowy, a to daje możliwość użycia potencjalnie do 8 banków (64 efekty łącznie). Aż dziw bierze, że w AVT5159 nie skorzystano z takiego rozwiązania, zamiast przepisywać banki...
  • #21
    ArturAVS
    Moderator of HydePark/Cars
    MocnyAmper wrote:
    Jak pewnie zauważyłeś, jestem fanem kilkukrotnego zmieniania swoich wypowiedzi po wysłaniu ;D

    Zauważyłem... Wprowadza to trochę zamętu.
    MocnyAmper wrote:
    Adres jest 3-bitowy, a to daje możliwość użycia potencjalnie do 8 banków (64 efekty łącznie).

    Czy aby na pewno? Jak dobrze pamiętam to FV-1 korzysta z wewnętrznej lub zewnętrznej pamięci EEPROM do przechowywania algorytmu DSP. Chyba że podmieniasz zawartość EEPROM "On The Fly" czyli "w locie". Zainteresowałem się jakiś czas temu FV-1 ze względu na to; https://circuitsalad.com/2015/06/19/comming-s...io-baseband-demodulator-no-computer-required/
  • #22
    MocnyAmper
    Level 13  
    ArturAVS wrote:
    MocnyAmper wrote:
    Jak pewnie zauważyłeś, jestem fanem kilkukrotnego zmieniania swoich wypowiedzi po wysłaniu ;D

    Zauważyłem... Wprowadza to trochę zamętu.

    Zapewne masz rację, wybacz. Aczkolwiek albo coś dodaję, albo poprawiam literówki, które wypatrzę :) Koszmar perfekcjonisty.

    ArturAVS wrote:
    MocnyAmper wrote:
    Adres jest 3-bitowy, a to daje możliwość użycia potencjalnie do 8 banków (64 efekty łącznie).

    Czy aby na pewno? Jak dobrze pamiętam to FV-1 korzysta z wewnętrznej lub zewnętrznej pamięci EEPROM do przechowywania algorytmu DSP. Chyba że podmieniasz zawartość EEPROM "On The Fly" czyli "w locie".

    Owszem, FV-1 korzysta cały czas z pamięci na adresie 0x00, ale nic nie stoi na przeszkodzie aby zmieniać adresowanie podpiętych pamięci aby niejako 'oszukać' procesor, że cały czas korzysta z tej samej pamięci :D Trzeba tylko się upewnić, że zmiana adresowania pamięci następuje w momencie, w którym DSP z niej nie korzysta, a więc najlepiej na czas podmiany banków przestawić go na korzystanie z wewnętrznej pamięci efektów, wtedy zwolni magistralę I2C. Tak prawdę mówiąc to FV-1 korzysta z niej tylko raz, po każdej zmianie adresu efektu (S2-S0) żeby wgrać program do swojej wewnętrznej pamięci. Potem już nie korzysta z EEPROMu aż do następnej zmiany.

    ArturAVS wrote:
    Zainteresowałem się jakiś czas temu FV-1 ze względu na to; https://circuitsalad.com/2015/06/19/comming-s...io-baseband-demodulator-no-computer-required/

    Radia na FV-1 to jeszcze nie widziałem :D
  • #23
    ArturAVS
    Moderator of HydePark/Cars
    MocnyAmper wrote:
    Radia na FV-1 to jeszcze nie widziałem

    Nie tyle chodzi o radio, tylko o obróbkę DSP dla SDR. Zdecydowana większość tego typu rozwiązań wykorzystuje DSP w postaci programu na PC. W linku który podałem, tą sprawę załatwia FV-1 i to mnie zainteresowało.
  • #24
    MocnyAmper
    Level 13  
    A, okej. Nie jestem biegły w tym temacie, tylko rzuciłem okiem :D
    Cóż, FV-1 ma dość sporą moc obliczeniową, nawet jak na swoje już 15 lat :) Niestety, ma też pewne wady, z którymi trzeba sobie jakoś radzić albo je ignorować.
  • #26
    MocnyAmper
    Level 13  
    Miałem kiedyś Korga Kaoss Pada Mini. Co do Pioneera to nie wiem, kojarzę tylko RMX.

    I niestety, nie była to szlifierka ;D Pisałem pod czyimś postem z kontrolerem midi, że ciepło :)