Elektroda.pl
Elektroda.pl
X

Search our partners

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

[Projekt] Profesjonalnie amatorski mikser DJ-ski

MocnyAmper 13 Jul 2022 18:53 1305 3
  • Witajcie.
    Jak zapowiadałem w temacie poświęconym devboard-owi procesora FXCore, narodziła mi się w głowie koncepcja stworzenia otwartego software-owo i hardware-oto miksera DJskiego współtworzonego przez użytkowników Elektrody.

    Po kilku dniach rozmyślań i symulacji, zarysował mi się ogólny pomysł na wykonanie takiego urządzenia. Nie ukrywam, że wzorowałem się dość mocno na konstrukcjach Pioneera, głównie na DJM450. A więc do rzeczy:
    - dwa kanały stereo + monofoniczny dla mikrofonu,
    - 3-pasmowe EQ dla kanałów stereo i 2-pasmowe dla mikrofonu,
    - fadery z możliwością skokowej zmiany charakterystyki (log, lin, exp),
    - crossfader z płynną regulacją charakterystyki, z możliwością wyłączenia go,
    - dwie sekcje efektów, na zasadzie jak w DJM450,
    - sekcja główna FX zawierająca 8 synchronizowanych efektów (delay, echo, flanger, phaser, pitch, reverb, break, looper) z wyświetlaczem,
    - sekcja pomocnicza FX zawierająca 4 niesynchronizowane efekty (bitcrusher, filter, noise, jet),
    - tap-tempo zamiast licznika BPM (przegrałem nierówną walke z projektowaniem algorytmu automatycznego wykrywania tempa) chyba że ktoś potrafi to zaprojektować to chętnie zaimplementuje,
    - możliwość programowania procesorów DSP poprzez złącze USB.

    To tak na początek.
    Na chwilę obecną podjąłem decyzje, że tory wejściowe będą jednak w pełni analogowe (gain i EQ). No i właśnie, pierwsza kwestia to wybór pomiędzy izolatorem, a klasycznym EQ. Ja osobiście skłaniałbym się w stronę izolatora, zostaje tylko kwestia nachylenia filtów: zastanawiam się pomiędzy 12dB/oct i 24dB/oct. Druga kwestia: raczej nie przewiduję przełączników pomiędzy wejściem liniowym, a gramofonowym. Jak mawia klasyk: a po co to komu? Kto dziś gra z gramofonów? :P A jeśli nawet to raczej mają już wbudowaną korekcję RIAA.

    Fadery, crossfader oraz regulację ich charakterystyki wrzuciłbym do pomocniczego DSP. Tak chyba będzie to najprościej zrobić, a i wtedy głośność będzie sterowana napięciowo więc nie będzie mowy o żadnych stukach czy innych trzaskach jeśli fadery się zaczną zużywać. Sam procesor odczytuje wejścia potencjometryczne z częstotliwością ~2kHz więc raczej nie będzie problemu z szybkimi ruchami faderami.



    Główny efektor będzie sterowany z uC, który też będzie sterował wyświetlaczem. Jeszcze się zastanawiam pomiędzy oledem i zwykłym LCD, ale chyba to bez większej różnicy. Zwłaszcza, że chciałbym aby wyświetlacz był schowany pod taką przyciemnioną szybką wklejoną w panel czołowy.

    No i właśnie - obudowa. Nie mam absolutnie żadnej możliwości wykonać jej samodzielnie, a zakup innego miksera na części (tj. na obudowe) raczej nie wchodzi w gre. Toteż tutaj będę raczej liczył na usługi kogoś kto ma jakąś maszyne do zginania blachy i frezowania/wiercenia paneli aluminiowych. Jeśli chodzi o nadruki, myślałem żeby zrobić obudowe anodowaną i po prostu wypalić/wyfrezować na niej wszystko, przynajmniej się nie zetrze z czasem.

    To na chwile obecną chyba wszystko. W załączniku wynik wstępnej symulacji izolatora; częstotliwości podziału póki co ustawione na 300Hz i 5kHz (dokopałem się do jakiegoś dziwnego wykresu, z którego wynika że tak jest w DJM900 i nowszych).

    Chętnie poznam Wasze zdanie na ten temat, czy ma to w ogóle sens, co byście dodali, zmienili, lub całkiem usuneli? :D

    [Projekt] Profesjonalnie amatorski mikser DJ-ski

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    MocnyAmper
    Level 25  
    Offline 
    Has specialization in: Psuję wszystko po trochu
    MocnyAmper wrote 765 posts with rating 227, helped 77 times. Live in city Katowice. Been with us since 2021 year.
  • #2
    MocnyAmper
    Level 25  
    Widzę, że zainteresowanie projektem jest ogromne :D

    W każdym razie, udało mi się, w pewnym sensie pokonać ograniczenie w postaci ilości pamięci ram przeznaczonej na opóźnienia.
    Jak wspominałem, dostępna pamięć wynosi 32768 próbek co przy częstotliwości próbkowania 48kHz daje ~683ms opóźnienia. Gdyby miała to być konstrukcja monofoniczna, taki czas opóźnienia pozwoliłby na uzyskanie 1 beatu przy 88BPM. Ja jednak celuję w konstrukcję całkowicie stereo. Co więc można zrobić? Konwencjonalne wyjścia są dwa, oba średnio zadowalające: obniżyć częstotliwość próbkowania procesora np dwukrotnie (ale to obniży pasmo przenoszenia do ~12kHz @ -3dB) lub ograniczyć maksymalne opóźnienie do 1/2 beatu.

    Ja postanowiłem rozegrać to inaczej. Posiłkując się pomysłem, który znalazłem jeszcze na forum spinsemi.com, postanowiłem podzielić pamięć na 4 równe bloki, po dwa na każdy kanał. Idea jest taka aby co drugą próbkę w pamięci ram wypełniać dwoma różnymi "przebiegami" tego samego sygnału. Brzmi skomplikowanie, a w gruncie rzeczy jest proste. Potrzebny jest tylko jakiś licznik lub po prostu zmienna, która będzie zmieniać swój znak (+/-) co próbkę sygnału oraz odrobina logiki sterującej.
    I tak: zaczynamy z wartością licznika dodatnią. W tym "przebiegu" odczytywana jest próbka wejściowa, wpisywana do początku pamięci opóźnienia oraz wyciągana jest ostatnia próbka tej pamięci - jest ona zapisywana do rejestru tymczasowego. Następuje zmiana wartości licznika na ujemny. W drugim przebiegu, wyciągnięta przed chwilą próbka z końca bloku pamięci wpisywana jest ponownie na początek tegoż bloku. Jednocześnie wyciągana jest ponownie próbka z końca bloku, jednak tym razem jest ona wysyłana na wyjście procesora. Następuje zmiana wartości licznika na dodatni. Należy pamiętać, że z każdym zapisem do pamięci ram, wszystkie zawarte w niej próbki są automatycznie przesuwane o jedną w prawo.

    W efekcie każda z próbek musi dwukrotnie przejść przez cały blok pamięci ram co w rezultacie daje dwukrotnie dłuższy czas opóźnienia (to samo dla drugiego kanału). Ma to oczywiście wadę - 'wirtualnie' obniżyliśmy dwukrotnie częstotliwość próbkowania, ale tylko dla sygnału, który ma zostać opóźniony. A jako, że jest on potem miksowany z pełnym (pod względem pasma przenoszenia) sygnałem wejściowym oraz z uwagi na fakt, że głównie niskie tony grają tu rolę, brzmi to praktycznie idealnie.
  • #3
    MocnyAmper
    Level 25  
    Kwestia też doboru opampów do torów audio.
    NE5532 ma dość spory prąd biasu. Z drugiej strony, będzie potrzeba z 20-30 takich podwójnych opampów więc nie powinny one być za drogie.
    Jest realny sens inwestować w coś lepszego niż np TL072? I dobrze by było gdyby istniał wariant podwójny i poczwórny takiego opampa (jak np TL072 i TL074).
  • #4
    MocnyAmper
    Level 25  
    Zaprojektowałem już z grubsza tor analogowo-cyfrowy.
    Obecnie częstotliwości podziału EQ są ustawione na 300Hz i 5kHz.
    Dwa górne kodeki (IC21/IC22) będą częścią pierwszego efektora (tego pomocniczego), natomiast trzeci będzie efektorem głównym. Są dwa kodeki w efektorze pomocniczym bo zamysł jest taki żeby ten efektor mógł niezależnie nakładać ten sam efekt na kanał pierwszy i drugi (np wybieramy filtr i na kanale pierwszym możemy zrobić low-pass, a na drugim high-pass) oraz żeby wewnątrz niego programowo realizować fadery i crossfader.
    Na chwile obecną trzeba jeszcze zaprojektować część cyfrową odpowiedzialną za sterowanie (uC) i inne pierdoły, jak wskaźniki wysterowania, tor mikrofonowy, słuchawkowy, zasilanie, etc.
    Jestem otwarty na sugestie ;)