eXec.plMAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA
MAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA

poniedziałek, 19. lutego, 2018, 17:14

Dodano: 2014-03-24, Autor: Szymon Żyła, Kategoria: Publicystyka, Liczba wyświetleń: 3024

A A A

Muzyczny wywiad z Krashanem

SZAMAN/eXec.pl: W lutym ukazała się finalna wersja DigiBoostera 3 - programu, który jest jednym z największych obecnie rozwijanych tylko dla platform amigowych. Ile to jest linii kodu? Czy wszystko zostało napisane od zera - mam na myśli głównie wykorzystanie bibliotek zewnętrznych?

Grzegorz Kraszewski: Przyznam szczerze, że wcześniej nie liczyłem nigdy linii, może dlatego, że kod źródłowy programu to kilkaset plików. Niemniej, na użytek wywiadu, sprawdziłem to. Aktualna wersja ma około 60 tysięcy linii kodu. Cały ten kod powstał zupełnie od zera. Źródła poprzedniej wersji są prawie w 100% w asemblerze procesora M68k. Oczywiście z punktu widzenia procesorów PowerPC niewielki mógł być z nich pożytek. DigiBooster 3 jest w całości napisany w języku C, stąd natywne wersje dla nowych amigowych systemów. Jeżeli natomiast chodzi o biblioteki zewnętrzne, to oczywiście wykorzystałem MUI, AHI i inne biblioteki jakie standardowo znajdziemy czy to w AmigaOS, czy w MorphOS-ie.

SZ: Jak to się w ogóle stało ze zacząłeś prace nad nową wersją DB? Ile w sumie to wszytko trwało?

GK: W 2007 roku firma APC&TCP ogłosiła na amigowych portalach, że poszukuje programistów do kontynuacji rozwoju kilku posiadanych przez siebie programów. Po prostu się zgłosiłem. Jak więc widać, od rozpoczęcia pracy we wrześniu 2007 do wydania pierwszej pełnej wersji w lutym 2014 upłynęło sześć lat i 4 miesiące.

DigiBooster 3 - ikonki

SZ: Muzykiem nie jestem, ale DB2 pamiętam jako kawał dobrego softu, gdzie tak naprawdę głównym problemem dla twórców, a także odbiorców były możliwości sprzętowe ówczesnych komputerów Amiga. Co nowego w porównaniu do tamtego programu Tomasza i Waldemara Piastów ma do zaoferowania wersja 3?

GK: Przede wszystkim moc obliczeniową procesorów PowerPC. Teraz dodając kolejne ścieżki nie musimy się przejmować, czy procesor poradzi. Jedyną maszyną, jaka może mieć problem z odtworzeniem maksymalnej liczby 254 ścieżek jest malutka Efika taktowana zegarem 400 MHz. Moduły powyżej 144 ścieżek sprawiają jej już problemy. Jeżeli sięgniemy po nieco tylko szybszą maszynę, możemy wykorzystać wielościeżkowość DigiBoostera do końca. Testowałem program na komputerze z procesorem G4 500 MHz. Dysponował jeszcze sporą rezerwą, odgrywając wszystkie 254 ścieżki. Oczywiście ograniczenie nawet do 144 ścieżek jest ograniczeniem raczej teoretycznym...

Gdy już jesteśmy przy ścieżkach, wygodnie jest w czasie pracy nad utworem zmieścić ich w edytorze możliwie najwięcej. DB2 był zaprogramowany w sposób ograniczający na sztywno szerokość ekranu do 640 pikseli, przez co na raz widzimy tylko sześć ścieżek. Dzięki MUI, DigiBooster 3 dynamicznie dopasowuje się do rozmiarów ekranu, szczególnie korzystne jest to przy popularnych obecnie monitorach w proporcjach panoramy. Na przykład na monitorze full HD (1920 x 1080) można mieć jednocześnie widoczne 20 czy nawet 24 ścieżki, a przecież taki monitor to już obecnie żaden rarytas. Dodajmy do tego daleko idące możliwości modyfikacji wyglądu interfejsu, jakie daje MUI: czcionki, kolory, tła, ramki, odstępy między gadżetami i tak dalej.

Trzecią zasadniczą różnicą jest system syntezy dźwięku, a więc serce trackera. DigiBooster 2 w daleko idący sposób oparł się na AHI, wykorzystując jego procedury do miksowania i resamplingu. Ułatwiło to pracę jego autorom, miało jednakże dwie wady. Po pierwsze znacznie utrudniło powstanie odtwarzaczy modułów DBM na platformy nieamigowe. Po drugie zaś AHI nie jest bynajmniej, z punktu widzenia cyfrowego przetwarzania sygnałów, czymś nadzwyczajnym. Jego braki jakościowe uchodziły uwadze przy odtwarzaniu na nieśmiertelnej Pauli, jednak w dobie 24-bitowych kart dźwiękowych rzeczywistość skrzeczy, również dosłownie.

DigiBooster 3 ma własny "silnik" odtwarzający, całkowicie niezależny od AHI. Oczywiście program korzysta z AHI, ale tylko jako urządzenia końcowego, miksowanie, resampling i efekty robię własnymi procedurami. Również nieszczęsne echo, które w AHI można było wyłączyć, co do białej gorączki doprowadzało kompozytorów, czemu czasem dawali wyraz w nazwach instrumentów (dla niewtajemniczonych - zazwyczaj nazwy instrumentów są w modułach używane do przesyłania pozdrowień i różnego rodzaju komentarzy). W DigiBoosterze 3 echa po prostu nie da się wyłączyć, o ile twórca go użył.

Własny odtwarzacz wyeliminował dwa problemy. Po pierwsze oficjalna procedura odtwarzająca została bez problemu przeniesiona na systemy nieamigowe. Po drugie już w tej chwili DigiBooster 3 osiąga lepszą jakość dźwięku niż dwójka, a nie powiedziałem jeszcze w tym temacie ostatniego słowa.

SZ: Jeśli pamięć mnie nie myli wcześniej już pisałeś programy do pracy z samplami, a także rozwijałeś framework Reggae (w tym jego część audio) dla MorphOSa. Na ile te doświadczenia okazały się przydatne podczas pracy nad nową wersją DB?

GK: Mogę jeszcze dodać, że również moja praca magisterska miała związek z cyfrowym przetwarzaniem dźwięku, tak, że zabierając się za DigiBoostera miałem odpowiednie przygotowanie teoretyczne. Jak nietrudno zgadnąć, ta wiedza ułatwiła zaplanowanie pracy jak i samego programu.

DigiBooster 3 - strona WWW

SZ: Zawsze zastanawiałem się o ile trudniej jest pisać oprogramowanie dedykowane specyficznej grupie odbiorców - nie jesteś przecież twórcą muzycznych modułów. Czy konsultowałeś z muzykami interfejs i możliwości programu?

GK: Pierwsza część tego pytania nie jest do końca prawdziwa :-). W latach 1994 - 1997 napisałem sześć, czy siedem modułów korzystając z ProTrackera i OctaMeda. Zostały one nawet umieszczone na jednej z płyt CD dołączanych do pisma Amiga Computer Studio. Co prawda nie są jakoś szczególnie wartościowe muzycznie, ale dały mi jako takie doświadczenia w pracy z trackerami. To jednak rzecz jasna nie wszystko. Pisząc DigiBoostera 3 i wydając w sumie kilkanaście wersji beta, byłem otwarty na uwagi muzyków. Nie chcę tu "podwieszać się pod nazwiska", powiem tylko że rozmawiałem (sieciowo, a czasem i w "realu") z kilkunastoma muzykami trackerowymi, również bardzo swego czasu znanymi. Kontakty są nadal i będą miały duży wpływ na kierunki rozwoju programu. Testując DigiBoostera 3 wróciłem też co nieco do komponowania, jeden z dwóch modułów jakie napisałem w DB3 zajął nawet drugie miejsce na multichannel compo na zeszłoroczym party Load Error w Gdańsku.

SZ: Co podczas pracy okazało się największym wyzwaniem?

GK: Pewnie spodziewasz się tutaj jakichś programistycznych opisów. Nic z tych rzeczy. Najbardziej przeszkadzały brak czasu i - bywało - znużenie projektem. Trudno przez sześć lat siedzieć przy tym samym kodzie i nie ukrywam, że rozwój DigiBoostera odbywa się falami, na zmianę z innymi moimi projektami. Na szczęście nauczyłem się przeczekiwać zniechęcenie i zawsze wracam do pracy. Co natomiast było największym wyzwaniem w kodzie? Edytor patternów, sam odtwarzacz, oraz zachowanie możliwie największej kompatybilności wstecz z DigiBoosterem 2.

DigiBooster 3 - AmigaOS 3.x

SZ: Program dostępny jest na amigowe platformy - czy wszystkie wersje mają dokładnie te same funkcjonalności i kompilują się z tych samych źródeł? Stworzenie której kompilacji było najtrudniejsze? Jakich narzędzi programistycznych używasz - czy są to także cross kompilatory?

GK: W tej chwili wszystkie wersje mają dokładnie te same funkcjonalności i kompilują się z jednego źródła, oczywiście niektóre części kodu są kompilowane warunkowo w zależności od platformy. Trudno powiedzieć, że któryś z systemów był szczególnie kłopotliwy. Z pewnością najwięcej ograniczeń narzuca AmigaOS 3.x. Wersje na AmigaOS 4 i na MorphOS-a są kompilowane z użyciem natywnych kompilatorów z ich SDK. Wersję dla AmigaOS 3 kompiluję korzystając z crosskompilatora na MorphOS-ie i testuję w WinUAE.

SZ: Jakie są zalety tego, że program korzysta z MUI? Czy napisanie DB w ReAction było by teoretycznie możliwe?

GK: Część z nich już opisałem, to dynamiczne dopasowywanie się programu do rozmiarów ekranu, szerokie możliwości zmiany jego wyglądu - to są korzyści dla użytkownika. Dla mnie korzyścią jest obiektowa konstrukcja programu. To znakomicie ułatwia zapanowanie nad projektem i dodawanie nowych możliwości. Napisanie DigiBoostera w ReAction teoretycznie zapewne byłoby możliwe, ale nie istnieje natywna wersja ReAction dla MorphOS-a, a to, co jest w AmigaOS 3 nie nadaje się do poważniejszych zastosowań.

SZ: AHI - jak oceniasz ten system obsługi dźwięku? Czy postawił Ci jakieś ograniczenia? Od lat to rozwiązanie w amigowych systemach nie jest przecież rozwijane, czy powinniśmy zacząć myśleć nad czymś zupełnie nowym? Realia sprzętowe i systemowe w jakich powstał ten standard były przecież zupełnie odmienne od dzisiejszych.

GK: Większość problemów z AHI udało mi się ominąć minimalizując jego użycie w programie :-). Istotnie, w AHI jest szereg rozwiązań ewidentnie stworzonych "pod Paulę" i z myślą o bardzo słabych, jak na dzisiejsze czasy, procesorach. Paradoksalnie AHI, które w czasach jego powstania było synonimem nowej jakości dźwięku, dzisiaj tę jakość pogarsza. Mało kto wie, że w zasadzie nie ma ustawienia AHI, które pozwala na przesłanie pełnego 16-bitowego strumienia dźwiękowego wprost do karty dźwiękowej, bez ingerencji. Przy typowych ustawieniach dynamika dźwięku jest ograniczona do 14, a czasem nawet 13 bitów. Z kolei jedyną zaletą algorytmów resamplingu, jakie znajdziemy w AHI jest ich szybkość, przy dramatycznej niestety jakości. Na szczęście DigiBooster 3 nie korzysta z resamplingu w AHI, ale jeżeli np. słuchamy muzyki w MP3 próbkowanej w 44.1 kHz, a karta dźwiękowa jest ustawiona na 48 kHz, to AHI serwuje nam zniekształcenia na poziomie -26 dB. Przeciętnej jakości magnetofon kasetowy (kto to jeszcze pamięta?) zapewnia szumy na poziomie nie większym niż -40 dB...

Osobom zorientowanym w technice audio proponuję prosty eksperyment. Potrzebna jest do niego próbka dźwięku "sine sweep", czyli fala sinusoidalna o częstotliwości zmieniającej się płynnie np. od 200 Hz do 2 kHz. Jeżeli załadujemy taki dźwięk do DigiBoostera 2 i zagramy nutę inną niż C-4 (co wymusi resampling), usłyszymy oprócz bazowego narastającego dźwięku, lustrzany dźwięk opadający. Tak właśnie działa resampling w AHI. W DB3 ten lustrzany dźwięk również jest jeszcze słyszalny, ale na znacznie niższym poziomie.

Biorąc pod uwagę jakie karty dźwiękowe mamy teraz na rynku, a nawet ograniczając się tylko do tych, do których AHI ma sterowniki, mamy mały dramat. Rozwiązanie tego problemu nie jest proste, bowiem ewentualny nowy standard obsługi audio będzie musiał zachować jakoś wsteczną kompatybilność z AHI, albo działać niezależnie obok AHI.

SZ: Moduły to przede wszystkim scena. Czy powstały już jakieś utwory pod DB3, jaki podczas prac nad programem był odzew ze strony scenowców, z tego co widziałem w serwisie modules.pl zdawali sobie oni sprawę z tego że powstaje nowy tracker.

GK: Jeżeli pominiemy moje dwa moduły, opublikowane zresztą na stronie digibooster.eu, nic mi o takich jeszcze nie wiadomo. Większość muzyków aktywnych na modules.pl, nawet jeżeli ma amigowe korzenie, dawno przesiadła się na trackery pecetowe, albo programy DAW nie będące trackerami. Myślę więc, że DigiBoostera 3 traktują raczej w kategoriach pewnej interesującej osobliwości. Ten program, poza być może jakimś sentymentem, niewiele może im zaoferować w porównaniu z np. Renoisem. Nie spodziewam się więc dużego zainteresowania ze strony współczesnej muzycznej sceny trackerowej. Być może ten czy ów muzyk, wychowany na Amidze obejrzy program z ciekawości, zresztą paru już to zrobiło, konstruktywnie skrytykowało, ale trudno wymagać, żeby robili krok wstecz.

SZ: Czy z wydawcą planujecie stworzenie DB3 dla innych, nie amigowych systemów? Wiemy, że udostępniłeś źródła, dzięki czemu każdy może w łatwy sposób skompilować odtwarzacz modułów DBM pod dowolnym OS - o ilu kompilacjach już Ci wiadomo?

GK: Nie mamy planów na systemy nieamigowe jeżeli chodzi o cały program. DB3 przede wszystkim potrzebuje większej ilości funkcji i uzupełnienia braków. W obecnym kształcie nie za bardzo jest czym zawalczyć z silną konkurencją, jaka istnieje na główne platformy. Jeżeli chodzi natomiast o odtwarzacz, to właśnie dzięki oderwaniu się od AHI jest on całkowicie przenośny. Jego działanie zostało sprawdzone między innymi na Windowsie (od XP po ósemkę, 32 i 64 bity), MacOS X (x86_64) i Linuksie (x86, x86_64, ARM). Oprócz tego bazując na tym kodzie Andreas Falkenhahn przygotował wtyczkę do programu Hollywood, która oprócz wymienionych wcześniej systemów działa również na Androidzie i iOS.

DigiBooster 3  - AmigaOS 4.x

SZ: Czy pomysł na tworzenie nowych wersji starych amigowych programów to dobra zachęta do powrotu użytkowników na platformy amigowe? Czy oryginalny soft niedostępny na inne systemy to jest ten właściwy dla nas kierunek rozwoju?

GK: Tak, wydaje mi się, że to jest ten właściwy kierunek. Trzeba sobie zdać sprawę, że amigowe systemy nie mają żadnych szans na zdobycie popularności chociażby na poziomie Linuksa, nie z tym zapleczem. Pozostaną zatem niszą. Taka nisza, żeby przyciągnąć entuzjastów, musi oferować odmienność, a nie naśladownictwo. Dlaczego ludzie używają Linuksa, czy MacOS? W skrócie dlatego, że te systemy są inne niż Windows, oferują inne rozwiązania, inne podejście do wielu problemów. Dlatego uważam, że systemy postamigowe muszą walczyć o zachowanie "ducha i klimatu" systemu, a nie o przeportowanie Firefoxa, czy Open Office.

SZ: Jaki program planujesz w przyszłości? DB3 jest produktem komercyjnym - czy zainteresowanie i sprzedaż zachęciła Cię do podejmowania kolejnych takich wyzwań, czy wszystko pozostanie tylko fajnym hobby?

GK: Z mojego punktu widzenia DigiBooster 3 nie jest programem komercyjnym. Żaden zawodowy programista nie napisałby takiego programu za tyle, ile dotychczas na nim zarobiłem, a także za tyle, ile w najśmielszych (ale realistycznych) prognozach mogę na nim zarobić w przyszłości. Traktuję pisanie DB3 w kategoriach hobby zarabiającego na siebie. Po prostu do wyjazdów na amigowe imprezy czy zakupów sprzętu nie dokładam z rodzinnego budżetu, to wszystko. Raczej nie planuję kolejnych programów wydawanych komercyjnie, lepiej będzie się skoncentrować na rozwoju tego jednego. Być może wypuszczę jakieś mniejsze programy jako bitcoinware - czyli z prośbą o małą dotację w bitcoinach. Ale to na razie takie luźne plany.

SZ: Czy zaglądasz czasami na eXec.pl?

GK: Niezbyt często, bo szczerze mówiąc niewiele się tam ostatnio dzieje. Ale zdarza mi się zajrzeć raz czy dwa w miesiącu.

Szymon Żyła
zobacz inne nasze artykuły »



AmigaOS.pl

Polecamy
Najpopularniejsze
eXec blog

Świat poza Amigą: