Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem

polprzewodnikowy 28 Aug 2013 15:54 15870 16
  • EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem

    Witam ponownie. Chciałbym wam przedstawić projekt który rozwijałem przez ostanie pół roku. Jest on "rozwinięciem" mojej poprzedniej konstrukcji (https://www.elektroda.pl/rtvforum/topic2198222.html)

    Tym razem na warsztat wziąłem 17-letnią kartę AWE64 (swoją drogą jest ona tak samo stara jak ja). Kupiłem ją na Allegro za 20 zł zachęcony lepszymi parametrami takimi jak cyfrowe wyjście czy wyższa częstotliwość próbkowania ale niestety są one nieco oszukane bo dotyczą one tylko wbudowanej syntezy wavetable. Nie czekając zbyt długo podłączyłem nowy sprzęt pod µC i tutaj spotkał mnie pierwszy problem. Poprzednia karta była konfigurowana zworkami, ta posiadała tylko jedną. Okazało się, że jej zasoby ustawiane są za pomocą oprogramowania. Po napisaniu funkcji konfigurujących rejestry PnP karta zaczęła działać. No ale po cóż mi ta lepsza karta skoro robi to samo co poprzednia. Postanowiłem ogarnąć układ EMU8000, który to jest syntezą wavetable czego efektem jest ten projekt.

    Pokrótce opiszę co robi to urządzenie: Mikrokontroler po uruchomieniu konfiguruje kartę, ustawia standardowe ustawienia, wczytuje informacje o próbkach z pliku SoundFont i ładuje próbki do pamięci DRAM karty dźwiękowej. W pętli głównej program odbiera komunikaty MIDI przez USB lub jeden z portów UART, przekazuje parametry do odpowiednich funkcji odpowiedzialnych za kontrolę dźwięku (note on, off, odstrojenie, zmiana instrumentu, itp.). Dodatkowo przez USB możliwa jest kontrola miksera, zmiana typu efektów reverb i chorus czy też modyfikacja parametrów kanałów (na razie nie jest to oprogramowane). Do wspomnianej kontroli "napisałem" w Qt mały program. Dzięki temu mogę w wygodny sposób zmieniać ustawienia.

    W części sprzętowej zastosowałem złącze ISA, dodałem bufory 74HCT245 i zatrzaski 74HCT573. Pozwoliło mi to oszczędzić 16 wyjść mikrokontrolera.

    EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem

    EMU8000 USB Synth - kolejne eksperymenty z Sound BlasteremEMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem

    Wszelkie źródła znajdują się na moim GitHubie:
    https://github.com/Polprzewodnikowy/emu8000_synth_usb
    https://github.com/Polprzewodnikowy/SynthControl

    Próbka dźwięku tutaj:
    https://soundcloud.com/korgeaux/timezjg

    Cool? Ranking DIY
    About Author
    polprzewodnikowy
    Level 26  
    Offline 
    Has specialization in: front-end webdev, embedded
    polprzewodnikowy wrote 985 posts with rating 219, helped 54 times. Been with us since 2008 year.
  • #2
    lechoo
    Level 39  
    Kawał dobrej roboty odwaliłeś Kolego, chociaż z tego co pamiętam EMU8000 brzmieniem syntezy wavetable nie powala na kolana. Jeśli możesz to odtwórz na tym sprzęcie mid z załącznika i nagraj do mp3.
    Od dłuższego czasu chodzi mi po głowie ogarnięcie chipu GF1 (legendarna karta Gravis Ultrasound) i autonomiczne (bez komputera) odtwarzanie MOD/S3M, ale ostatnio chęci ciężko mi przełożyć na praktykę...

    Edit: Dziękuję za zamieszczenie próbki, ale niestety nie mam żadnego porównania i poproszę o zamieszczenie również źródłowego pliku midi :)
  • #3
    polprzewodnikowy
    Level 26  
    Oryginalny MID w załączniku. Zapomniałem dodać, że ta próbka została nagrana z wykorzystaniem 4-megabajtowego SoundFonta od Creative. Niestety jakość dźwięku z próbek ROMu jest o wiele gorsza (chociaż nie wiem czy nie jest winny temu sposób przeliczania wartości z SoundFonta do rejestrów karty).
  • #4
    szoker25
    Level 10  
    Swego czasu też walczyłem z Creativami, Gravisami.
    SB miał taki problem, że po wgraniu próbek do wavtable strasznie traciły na jakości. Podobno był to celowy wybieg aby kartą "domową" nie dało się zawodowo zajmować muzyką. Rozwiązaniem tego na owe czasy były samplery sprzętowe. Potem muzykę robiłem na Fastrackerze, który odtwarzał próbki już z ramu - (jakość nieporównywalnie lepsza).
  • #5
    marti_944
    Level 28  
    Witam!

    Kolejny świetny projekt tego typu :) muszę przyznać, że jestem zaskoczony efektem końcowym...
    Tu pojawia się pytanie (proszę o wybaczenie, bo zapewne to śmieszne i proste) - te brzmienia użyte w nagraniu są wbudowane w układ karty, czy też można je gdzieś w sieci znaleźć? Pytam, bowiem niezwykle przypadły mi do gustu te chórki, czy cokolwiek to jest ;).

    Gratuluję kolejnego udanego projektu i życzę powodzenia w kolejnych!

    Pozdrawiam! \m/
  • #6
    szymon_zawiercie
    Level 12  
    Ja kilka lat temu dogrzebałem się do starego SB AVE32 - ciekawy jakości dźwięku sprzed lat skleciłem komputer z ISA i chwile się pobawiłem. Faktycznie jakość części cyfrowo-analogowej nie powala na kolana ale odtwarzając na niej MID'y doznałem małego szoku. Trudno powiedzieć czy Twórców syntezera w tej karcie nieco poniosła wyobraźnia czy ta karta po prostu tak "podbarwia" dźwięk ale mnie osobiście on urzekł ;)
    W załączniku plik mid oraz nagrana (przy pomocy tej samej karty) próbka. Są tam też wyniki z RMAA.

    Marek
  • #8
    mipix
    Level 36  
    Witam
    Gratuluję projektu. Sam chętnie bym coś takiego dorobił do karty ROLAND SCC-1, którą testowałem kiedyś.
    EMU8000 USB Synth - kolejne eksperymenty z Sound Blasterem
    Przyznam, że porównywalną jakość dźwięku na moje ucho uzyskałem dopiero na profesjonalnym syntezatorze KORG PA1-X.
  • #9
    lechoo
    Level 39  
    ADI-mistrzu wrote:
    Ja mam kilka kg starego sprzętu, może potrzebujesz jakiegoś na nowy projekt? Np. karty graficznej ;)

    Bardzo dobry pomysł - taka 8-bitowa karta VGA to niewątpliwie ciekawy obiekt do eksperymentów z mikrokontrolerami.

    Ze starych kart dźwiękowych najlepiej wspominam Yamahę YMF724 (mam ją od 15 lat, kosztowała wtedy około 100 zł, a działa nawet pod Windows 7), szczególnie pięknie grają na niej utwory MIDI z rozszerzeniem XG Yamahy. W załączeniu podsyłam dwie próbki, przy czym jeden to nagranie z MID-a zamieszczonego przez użytkownika szymon_zawiercie, a drugi to właśnie XG. Oba utwory nagrałem bez utraty jakości przez SPDIF.
  • #10
    chaka
    VIP Meritorious for electroda.pl
    Nie chcesz do zabawy 40cm Gravisa?
  • #11
    polprzewodnikowy
    Level 26  
    marti_944 wrote:
    te brzmienia użyte w nagraniu są wbudowane w układ karty, czy też można je gdzieś w sieci znaleźć? Pytam, bowiem niezwykle przypadły mi do gustu te chórki, czy cokolwiek to jest ;) .


    Jak wyżej napisałem użyłem 4MB SoundFonta od Creative. Można go znaleźć pod nazwą 4GMGSMT.SF2.

    ADI-mistrzu wrote:
    Ja mam kilka kg starego sprzętu, może potrzebujesz jakiegoś na nowy projekt? Np. karty graficznej ;)


    Chętnie bym coś pokombinował ale nie teraz. Przejadły mi się wszystkie starocie ;) Czas pobawić się czymś nowszym.

    mipix wrote:
    Sam chętnie bym coś takiego dorobił do karty ROLAND SCC-1, którą testowałem kiedyś.


    Dorobienie interfejsu MIDI do tej karty jest bajecznie proste. Tam jest tylko zwykły port MPU-401. Nie trzeba jak przy EMU8000 konfigurować całego sprzętu.

    chaka wrote:
    Nie chcesz do zabawy 40cm Gravisa?


    Jak wcześniej napisałem nie za bardzo mam ochotę na męczenie się z tym. Chętni wyzwań niech zaglądają do źródeł Linuksa.
    http://lxr.free-electrons.com/source/sound/isa/gus/
    http://lxr.free-electrons.com/source/include/sound/

    W załączniku próbka utworu zamieszczonego przez szymon_zawiercie. W pierwszej części został użyty SoundFont SYNTHGS.SF2 (skonwertowany plik z rozszerzeniem .SBK), dalej 4GMGSMT a pozostałe dwa kawałki to próbki z AWE32 i YMF724.
  • #12
    szymon_zawiercie
    Level 12  
    Jak słychać - każda karta brzmi inaczej, a jej interpretacja w większym stopniu zależy od tego, kto tworzył bank próbek - plik podesłany przeze mnie (może nie najlepszej jakości) ale zestawiony przez kolegę wyżej dobitnie to ilustruje. Słuchając porównania to Yamaha kolegi lechoo najlepiej wpada mi w ucho. ;) Ale dość offtopu, bo to nie miejsce na dyskusję o gustach! ;)
  • #13
    TOMI
    Service technician RTV
    Bardzo fajny projekt, a jeszcze jak by działał niezależnie od pc można by było wykorzystać kartę jako moduł midi. A przy okazji proponuje zwrócić uwagę na karty oparte na procesorach DSP firmy Dream, a w szczególności SAM9707 zawarte mn. w kartach Hoontech czy francuskich Terratec. Dla ciekawości dodam że procek jest wykorzystywany w świetnych klawiszach firmy Ketron.
  • #15
    TOMI
    Service technician RTV
    polprzewodnikowy wrote:
    Urządzenie może działać niezależnie od PC, możemy się podłączyć z klawiszem przez port UART po zastosowaniu układu optoizolacji.

    Tylko po każdym wyłączeniu i włączeniu należy załadować bank, więc trzeba podłączyć do PC :(
  • #16
    polprzewodnikowy
    Level 26  
    Nie, SoundFont jest ładowany z karty SD (której na zdjęciach nie ma).
  • #17
    TOMI
    Service technician RTV
    polprzewodnikowy wrote:
    Nie, SoundFont jest ładowany z karty SD (której na zdjęciach nie ma).

    No to była by bajka, jak by jeszcze hoontecha odpalił, mam banki probek po 32MB