101

Odp: SoundBoard - czyli Gravis dla Atari

to ja też
rzondam, a co - letefonu do episzcza w trybie natychmiastowym

przechodze na tumiwisizm

Odp: SoundBoard - czyli Gravis dla Atari

Zaraz Ci wyślę na priva przez AtariAge.
Mam nadzieję, że aktualny.
Pozdrrrrrr.

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

103

Odp: SoundBoard - czyli Gravis dla Atari

chiba mamy rozne pojecie "zaraz"
pewnie chodzilo ci o taka wielka bakterie

przechodze na tumiwisizm

Odp: SoundBoard - czyli Gravis dla Atari

No jak? Przeciez juz poszlo. :)

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

105

Odp: SoundBoard - czyli Gravis dla Atari

Jacques napisał/a:

Taaa... I projektó czegoś a la KMK/IDEA też rzondamy! ;)

tja ja tysz ja tysz....

106

Odp: SoundBoard - czyli Gravis dla Atari

okej...
no to tak

specsy:

FPGA based, Xylinx Spartan 3
16 channels, 8bit samples, 16/24bit output
build-in 2 Pokey chips cores and simple Covox interface for compatibility with existing software
Internal version sits in Pokey soket, but doesn't replace it
External version available (Cartridge), but limited to SoundBoard specific functionality (NO POKEY support in this version)

Base address: D2C0

offset    name        bits    description
0    SBchnAdr low    24    Base address of sample for playback
1    SBchnAdr mid
2    SBchnAdr high
3    SBchnLen low    16    Sample lenght
4    SBchnLen high
5    SBchnRep low    16    Sample repeat (offset to be loaded
6    SBchnRep high        when phase accumulator reaches sample lenght
7    SBchnFreq low    16    constat to be added to phase accumulator
8    SBchnFreq high
9    SBchnVol     8(6)    volume for given channel (left aligned 6 bit)
A    SBchnPan    8(6)    panning control for given channel (la 6 bit)
B    SBchnAtt    8    Attack rate for ADSR envelope generator
C    SBchnDec    8    Decay rate for ADSR envelope generator
D    SBchnSust    8    Sustain volume level for ADSR envelope generator
E    SBchnRel    8    Release rate for ADSR envelope generator
F    SBchnCtrl    3    Channel Control (see below)
10    SBsmAdr low    24    Base address of memory pointer for sample load
11    SBsmAdr    mid
12    SBsmAdr low
13    SBsmDta        8    Data register for sample load
14    SBchnNo        4    Channell number selector (0-15 selects apriopriate channell)


bitfields for SBchnCtrl:
bit    name        description
0    DMAEN        when 1 enables DMA for given channel
      when 0 disables DMA for given channel
1    Gate        when 1 ADSR generator stops at Sustain
            when 0 ADSR generator continues with Release
2    ADSREN        when 1 enables ADSR generator
            when 0 ADSR generator is bypassed
3    FMMOD        when 1 channell becomes modulator for channel n+4
            ie Channel 0 becomes modulator for channel 4
            ch. 1 -> ch. 5
            etc
            in this mode channel output is treated as follows
    Let Channell 0 is called Modulator and Channell 8 becomes Carrier, then
    Carrier.frequency=Modulator.Sample_value*(Modulator.ADSR*Modulator.Volume)
    output value is 16 bit, so Volume*ADSR can be treated as modulation depth
    only 8 upper bits of Volume*ADSR product are taken into consideration

Base clock for each channell is phi2
Memory size is 1024kB, so only 20 of 24 bits of address registers are valid
after reset all SBchnCtrl registers are zeroed, rest is undetermined
CAUTION! Playing of sample starts from beginning only when at first channel 
will be disabled then enabled; enabling yet enabled channel don't go.

implementacja aktualna:
ilość kanałów obcięta do 4, FPGA użyte w prototypie jest malutkie - jest to Acex 1k, znany wszystkim z VBXE - i tak, mam rdzeń dla posiadaczy VBXE2 na którym można posłuchać sobie jak może grać SoundBoard

w tej chwili Mono napisał player dla plików NeoTrackera - odgrywanie *.neo zajmuje max (na oko, tu potrzebne dokładniejsze wyliczenia) 32 linie rastra, srednio 15, min 8 - i tutaj chciałbym mu podziekowac, bo mu sie chce, a nawet najlepszy hardware bez softu jest niewiele wart

dalsze plany softwarowe:
dodać natywny support dla plików *.mod, *.s3m, *.xm
zrobić tracker

aktualne plany hardwarowe:
wykonac prototyp z dedykowana FPGA i przetwornikiem DAC
przewidywany koszt gotowego urządzenia na poziomie VBXE2

tymczasem pare pliczków:

Audio:
Enigma.mod
Dune.mod
JSetNeo.neo
Crimson.neo
Aurora.neo

Narzędzia:
Neoplay
Sample DMA test
SoundBoard.xbf - tylko dla posiadaczy VBXE2

Sposób podłączenia VBXE2 do głośników:
Gniazdo J5,
Pin #1 - GND
Pin #3 - Audio L
Pin #5 - Audio R
Można tam podłączyć typowe głośniczki od PC (takie z własnym wzmacniaczem)
Jakość wyjscia z VBXE będzie ograniczona ze względu na 7 bitowy przetwornik, co daje rzeczywiste 5 bit/kanał ze względu na sposób mixowania

przechodze na tumiwisizm

107

Odp: SoundBoard - czyli Gravis dla Atari

Super Panowie!

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

108

Odp: SoundBoard - czyli Gravis dla Atari

Brawo Candle !

Jakość grania bez zarzutu moim zdaniem. Jak ruszy na tym dope.mod to już będę szczęśliwy :)

pomidor

Odp: SoundBoard - czyli Gravis dla Atari

Epi: ty się nie ciesz, tylko pomóż. ;)



Candle:
My Cię tu na bieżąco z Mono drastycznie obgadujemy. ;)

Btw, w opisie Enigmy i Dune masz wpisane "Hymn to Aurora". ;)

>16 channels, 8bit samples, 16/24bit output
--------
Czy to oznacza, że odgrywa sample 8bitowe z jakością 16bitową?
Bo jeśli tak, to jest to dośc sprytne rozwiązanie, które jednak zwiększa jakość dźwięku przy oszczędności RAMu (robiliśmy w połowie lat 90 podobne numery z Mr Hangmanem przy jego trackerze "Akord" dla GUS/Awe32).

>dalsze plany softwarowe:
>dodać natywny support dla plików *.mod, *.s3m, *.xm
----------
Skrajnie słuszna idea. 100% kompatybilność to jak na Rusi.
Być musi.

>zrobić tracker
-------------
Jeśli mówimy o tym dla nowej syntezy, to popieram.

>Memory size is 1024kB
-----------
Urządzenie 16-kanałowe bez min. 2Mb RAMu byłoby posunięciem niewłaściwym.
Stwierdzam, jako ktoś w rodzaju muzyka, że dla karty 4-kanałowej (nasz General Sound) 512Kb to minimum. Toteż dla 16-kanałowego monstera musi być odpowiedni RAM.
Oczywiście traktuj to, jako przyjazną uwagę.
Przy takiej konfiguracji chętnie dowiódłbym, że to coś więcej, niż tylko odgrywacz MODów.

>przewidywany koszt gotowego urządzenia na poziomie VBXE2
------------
Proszę o przypomnienie ceny?

Jeśli będzie chodziło z 800XL i stacją (Mono wspominał, że będzie) to pewnie będę jednym z pierwszych kupujących.

Ostatnio edytowany przez YERZMYEY/HOOY-PROGRAM (2010-12-08 09:38:28)

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

110

Odp: SoundBoard - czyli Gravis dla Atari

jest jakis cien szansy na uzycie pamieci sdram, wtedy bylo by 8MB bez podnoszenia kosztow, za to kosztem komplikacji kodu
taka pamiec wymaga specjalnego traktowania - nie mozna od niej wymagac ze dostarczy dane, trzeba ja o to prosic, a ona moze odmowic...
1mb jest podyktowane iloscia miejsca ktore mam do dyspozycji na plytce - wiecej zwyczajnie moze sie nie zmiescic

cena? w okolicach 400pln, chociaz narazie to sufitowa kalkulacja
chce uzyskac form factor (wielkosc plytki) taka jaka mam dla simplestereo, a wtedy miesci sie to we wszystkim - tj 800xl, 600xl, 1200xl, xegs i obu odmianach 65xe

przechodze na tumiwisizm

Odp: SoundBoard - czyli Gravis dla Atari

Noo, 400 zl to już kwota. Przekracza "magiczną barierę" 350 zł za interface. ;)
Ale gdyby tracker był, hehehe. ;) Bo to już się jednak robi poważny instrument, a nie zabawka.
A jeszcze jakby to wstawić do 600XL (mam 64Kb) to by był niezły lans, hue hue hue.

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

112

Odp: SoundBoard - czyli Gravis dla Atari

Player aktualnie jest dla SDX tylko i szczerze powiem, że nie bardzo mam ochotę pisać go dla standardowego DOSa 2.x ;-)
Co to może?:
- gra NEO Tracker'owe pliki .NEO w formacie 1.12 i 1.4+,
- uzupełnia domyślne rozszerzenie .NEO jeśli się nie podało,
- wykrywa SB pod adresami $D600, $D500, $D2C0 w takiej właśnie kolejności ($D600 jest zrobione tylko dla prototypu działającego na VBXE2),
- rozwija znaki globalne (*?) i podaje nazwę pliku, który faktycznie ładuje,
- pozwala na przyporządkowanie każdego kanału z osobna do dowolnego wyjścia stereo out czyli tzw. panning.
SB ma aktualnie tylko 512K RAM więc ilość wszystkich sampli wykorzystywanych w module nie może przekraczać tej wielkości.
Wartości dla panningu oznaczają:
0 - kanał gra na lewym wyjściu z max głośnością, na prawym jest maksymalnie wyciszony,
128 - kanał gra na obydwu wyjściach z połowiczną głośnością,
255 - kanał gra na prawym wyjściu z max głośnością, na lewym jest maksymalnie wyciszony.
Przykładowe uruchomienie modułu:

NEOPLAY JSETNEO 255,0,0,255

zamieni miejscami wyjścia stereo (domyślnie jest 0,255,255,0).

Aktualnie Altirra ma support dla SB (nazywa się to u niego ABXE) jako zamiennik dla VBXE2.

Edit: Oczywiście wielkie dzięki należą się Epiemu za oryginalną procedurę do playera .NEO na bazie której powstał mój kod.

Edit 2: Aaaa. Candle nie napisał, ale będzie też dostępny player .NEO w wersji developerskiej, który każdy będzie sobie mógł wmontować do swojego programu/gry/dema. Będzie to potrafiło oczywiście wykryć kartę, załadować plik .NEO z urządzenia, ale będzie można też i podać mu wszystkie parametry programowo.

Edit 3: Oczywiście panning może być określony dowolną wartością z przedziału 0..255 (w przyszłości będzie -1.0..1.0).

Ostatnio edytowany przez mono (2010-12-09 02:05:02)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

Odp: SoundBoard - czyli Gravis dla Atari

A gdzie dzięki dla mnie za notoryczne obgadywanie Candle'a.

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

Odp: SoundBoard - czyli Gravis dla Atari

Z rozmów wewnętrznych z użytkonikami forum wyszło, że powstało tu jakieś wrażenie, iż omawiane urzadzenie to ma być jakiś nowy Covox.

Nic bardziej mylnego.

Gdyby się udało projekt zakończyć - to będzie to profesjonalne lub, jak wolą niektórzy, półprofesjonalne narzędzie muzyczne.

16 kanałów dobrej jakości, na samplach,
plus nowe rodzaje syntezy
znaczne uniezależnienie od procesora (na tyle, ze taką muzykę możnaby podłożyć do gry/dema itp bezproblemowo).

Rozumiem, ze dopóki nie pokażą się na to jakieś nagrania 16-kanałowe, to ludzie moga podchodzić nieufnie, ale jak tylko będzie taka możliwość, to jakieś demonstracje pełnej mocy urządzenia się sporządzi i tu wrzuci.

Może Mono lepiej by wyjaśnił możliwości ustrojstwa, bo on aktualnie koduje "w temacie".

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

115

Odp: SoundBoard - czyli Gravis dla Atari

Nie wiem czy dobrze zrozumiałem, ale Candle napisał o cięciach np. do 4 kanałów. Nie wiem czy to punkt docelowy czy tylko aktualna implementacja.

The problem is not the problem; the problem is your attitude about the problem

116

Odp: SoundBoard - czyli Gravis dla Atari

No Candle na początku wątku pisał o możliwościach - w skrócie więc:
- synteza FM w stylu Yamahy OPL lub SID,
- DMA dla sampli a więc uwolnienie CPU od odgrywania,
- sample 8-bit 16 kanałów,
- regulowane wzmocnienie 8-bit dla każdego kanału osobno,
- 512K własnego RAM.
To, co aktualnie jest zrobione to:
- sample 8-bit 4 kanały,
- DMA dla sampli,
- regulowane wzmocnienie 8-bit dla każdego kanału osobno,
- 512K RAM.
Już samo to pozwala stwierdzić, że nie jest to Covox.
Częstotliwość odtwarzania dźwięku jest aktualnie 1.773447MHz - co pozwala na uzyskanie częstotliwości nut w skali temperowanej o niewielkich odchyleniach w pełnym zakresie słyszalności (przy założeniu, że pojedynczy okres zajmuje 16 próbek) - zajmuje się tym DMA a nie CPU.
Dodatkowo zrobiony jest pełny 8-bit panning dla każdego kanału osobno, co pozwala na dowolne 256-stopniowe przyporządkowywanie kanałów do wyjścia L R stereo - kanały nie są przypisane na sztywno jak w Amidze, czy Covoxie.

To, co Candle zaprezentował NIE JEST DOCELOWĄ implementacją. To jest implementacja wykorzystująca doskonały sprzęt do prototypowania, jakim okazało się VBXE2 (a więc podlegająca jego ograniczeniom) - wystarczy dolutować kabelek, wgrać podlinkowany rdzeń i zamiast generowania obrazu możemy posłuchać, jak gra nowa karta dźwiękowa.
Oczywiście, że 7-bit na wyjściu stereo to nie jest szczyt marzeń - będzie 16 lub 24 zależnie od tego, jaki DAC Candle uda się obłaskawić. Będzie 8M RAMu (co paradoksalnie powinno obniżyć cenę urządzenia).
Projekt jest ciągle otwarty - ciągle zastanawiamy się w jakie możliwości wszyć w sprzęt.

Docelowa implementacja będzie zrealizowana na innym FPGA i będzie zawierać wszystkie założone elementy.
Być może będzie konfigurowalny tor syntezy FM (jeśli nie - tor będzie stały, ale i tak konfigurowalne człony),
Niewykluczone, że będzie w środku filtr FIR z regulowaną częstotliwością odcięcia dla każdego kanału z osobna co pozwoliło by na kontrolowanie brzmienia każdej granej nuty. Być może będzie MIDI-IN pozwalające na wykorzystanie instrumentów podczas komponowania. Być może będzie jakiś układ wspomagający obliczenia (wielomian n-tego stopnia?) przy generowaniu sampli modulujących do syntezy.
Pewnie, że potrzebny byłby rozszerzony NEO Tracker - ale to nie jest akurat największy problem.

Będę miał na SillyVenture sprzęt z sobą, więc zainteresowanym mogę pokazać jak rzecz wygląda na żywo.

Ostatnio edytowany przez mono (2010-12-09 15:43:15)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

117

Odp: SoundBoard - czyli Gravis dla Atari

Może sobie kupcie poprostu falcona ? ;)

What can be asserted without proof can be dismissed without proof.

118

Odp: SoundBoard - czyli Gravis dla Atari

Są na allegro w tym momencie nawet dwa :) Ale wychodząc z takiego założenia, to po co? PC i tak gra lepiej. Chyba nie kąsasz fabułki :)

The problem is not the problem; the problem is your attitude about the problem

119

Odp: SoundBoard - czyli Gravis dla Atari

Problem w tem, że Falconów w zasadzie nie ma w normalnej sprzedaży i nikt ich nie robi.

edit: dlaczego rdzeń sondboardu da się uruchomić tylko na VBXE2?

Ostatnio edytowany przez drac030 (2010-12-09 15:58:37)

KMK
? HEX$(6670358)

120

Odp: SoundBoard - czyli Gravis dla Atari

Bo zrobienie na vbxe1 zostało zrzucone na electrona.

Będzie.

... Już jest.

Ostatnio edytowany przez electron (2010-12-10 22:46:31)

pomidor

121

Odp: SoundBoard - czyli Gravis dla Atari

I jak gra ?

pomidor

122

Odp: SoundBoard - czyli Gravis dla Atari

No u mnie na razie nie, bo miałbym albo obraz albo dźwięk. A wolę obraz...

KMK
? HEX$(6670358)

123

Odp: SoundBoard - czyli Gravis dla Atari

No trudno. Byłeś jedyną szansą tego rdzenia ;) :-)

pomidor

124

Odp: SoundBoard - czyli Gravis dla Atari

Jak to jedyną? Tyle egzemplarzy się sprzedało... ;)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

125

Odp: SoundBoard - czyli Gravis dla Atari

electron: jest jeszcze pinokio :)

KMK
? HEX$(6670358)