Jest jesień roku 2013. Studiuję dziennie informatykę na Politechnice Wrocławskiej, jednocześnie będąc perkusistą w młodym zespole metalu progresywnego. Muzyka, którą gramy – jak to w metalu progresywnym – jest dość skomplikowana, mocno inspirowana zespołem Dream Theater, więc zmiany metrum i tempa można usłyszeć w praktycznie każdym utworze, który grywamy.
Żeby dodatkowo utrudnić sobie życie zespołowe – zaczęliśmy grać z podkładami audio. Chórki, efekty dźwiękowe, czy orkiestra grana z syntezatorów, stanowiły istotny element naszej muzyki. Na pewno nie chcieliśmy rezygnować z nich podczas nadchodzących koncertów.
W tym miejscu przedstawię zamysł toru audio z jakiego korzystałem zarówno na próbach, jak i na scenie. Zmienne, zaprogramowane podziały metronomu wpuszczałem w lewy kanał miksera, w prawym zaś puszczałem podkład, który lądował finalnie na „przodach” podczas grania na żywo. Zarówno metronom jak i podkład leciał bezpośrednio z laptopa, gdzie wystarczał dotychczas prosty odtwarzacz audio i pliki w formacie .wav.
Na próbach takie proste i skuteczne rozwiązanie działało – oczekiwaliśmy że podobnie będzie podczas gry na scenie.
Gramy koncert
Wracamy do początku – jest jesień 2013 roku i właśnie rozstawiamy się na scenie w jednym z wrocławskich klubów. Jest to koncert konkursowy, gdzie stawką jest supportowanie jednej z gwiazd na dużym koncercie.
Nastroje są rewelacyjne – wiemy że jesteśmy dobrze przygotowani. Na próbie dźwięku wszystko się zgadzało, humor dopisywał, w odsłuchach każdy słyszy to co powinien, pod sceną zaczynają się pojawiać znajome twarze. Co może pójść nie tak?
Wchodzimy na scenę, adrenalina buzuje, laptop z podkładami i metronomem jest gotowy do startu. Zaczynamy!
Gramy pierwszy, szybki i mocny utwór. Publika bawi się dobrze – rozpoczęliśmy agresywnie i jedziemy dalej. Uśmiechy nie schodzą nam z twarzy, czuć moc. Kolejny numer – ciut spokojniejszy, ale z pomieszanym metrum – 7/8 naprzemiennie z 8/8, przejście w uzasadnione 13/16.
W tle spokojne, jednostajne chórki. Potem refren w 4/4, ale za to z mocnym, basowym i gęstym akcentem. Wszystko jest dobrze, wszystko siedzi i gra, aż tu nagle…
Coś poszło nie tak
Bez ostrzeżenia.
Bez zapowiedzi.
Bezpardonowo metronom wraz z podkładem audio przeskoczył w środek taktu innej części utworu. Na pewno znacie sytuacje, w których sprzęt zawodzi w najmniej oczekiwanym momencie i wydaje się żyć własnym życiem – to właśnie się stało, więc cały zespół odwrócił się w moją stronę z nieukrywanym szokiem. Wokalistka próbowała improwizować, sama będąc również wybitą z rytmu, bez przećwiczonego planu jak wybrnąć z takiej sytuacji. Uśmiechy publiczności zmieniły się w kwaśne miny, kiedy zorientowali się, że taka zmiana nie była zaplanowana. Czas jakby się zatrzymał. Jedną ręką udało mi się wyłączyć podkład i zaaranżować jakieś przejście, aby dociągnąć grany numer do końca. W tym momencie straciłem całkowicie zaufanie do sprzętu, który zawiódł najbardziej, kiedy był potrzebny.
Koncert dokończyliśmy bez metronomu i bez podkładu audio.
Jednak za dużo basu
Porażka na ostatnim koncercie nie dawała mi spokoju – zacząłem analizować co mogło stać się z laptopem. Na próbach grałem z nim od przeszło roku i dotychczas nie było żadnych problemów. Dlaczego zepsuł nam fajny występ?
W roku 2013 dyski SSD (tj. dyski bez części ruchomych, takich jak talerz, czy ruchoma głowica) były nowością na rynku, a w laptopach instalowało się ówcześnie głównie dyski talerzowe.
Na próbach, w salce, laptop stał z reguły na jakimś starym kartonie (z reguły po bębnach). W dodatku otoczony zewsząd ścianą lub perkusją. Na koncercie komputer stał na aluminiowym stole, metr obok głośnika basisty. Podejrzenia padły na niego.
Gęsta linia basu w drugim utworze spowodowała drgania, które ruszały głowicą dysku twardego podczas odtwarzania pliku audio. Spowodowało to przeskok ramienia głowicy, więc i odczyt wykonał się w złym miejscu. Można to porównać do przeskoku w utworze na płycie winylowej – uszkodzona ścieżka lub wibracja potrafi (irytująco) przesunąć igłę do przodu.
Podobny skok miał miejsce w twardej, aluminiowej obudowie dysku twardego. Teraz wydaje się to być oczywiste – jednak wówczas, podczas koncertu, wibracje zdążyły położyć nasz występ.
Dla potwierdzenia tej tezy, kilkukrotnie stawialiśmy tego laptopa na głośniku basowym w sali prób, przy względnie dużej głośności. Praktycznie za każdym razem laptop przeskakiwał w odtwarzanym pliku w losowe miejsca, o minutę – dwie zarówno w przód jak i w tył. Im głośniejszy stawał się bas, tym częściej odtwarzanie przeskakiwało w losowe miejsce. Wynik domowego eksperymentu przesądził o dalszym losie laptopa – przeszedł on na zasłużoną emeryturę.
Czymś musiałem go zastąpić.
Może smartfon?
W roku 2013/2014 na europejskim rynku stosunkowo dużą popularnością cieszyły się telefony Nokia Lumia z systemem Windows Phone. Studiując informatykę, za ścieżkę rozwoju obrałem sobie właśnie technologie firmy Microsoft, więc naturalnie stałem się w tamtym czasie posiadaczem Lumii. Był to mój pierwszy smartfon, którego zalety dopiero odkrywałem, a pomagał mi w tym przedmiot na studiach związany właśnie z programowaniem na Windows Phone. Po naszym pechowym występie byłem już akurat po kilku pierwszych wykładach, które uświadomiły mi, jak dużo rzeczy można było zaprogramować na te telefony.
Po upewnieniu się, że nie odkrywam koła na nowo – od razu zacząłem tworzyć aplikację. Cel był prosty – stworzyć odtwarzacz audio z programowanymi listami odtwarzania. W sklepie Microsoft nie znalazłem programu który by się do tego nadawał, więc musiałem napisać go sobie sam. Windows Phone był wtedy stosunkowo młodym systemem, więc dostępnych do pobrania aplikacji było naprawdę niewiele (w stosunku do już obecnego na rynku Androida).
W przeciągu dwóch miesięcy udało mi się stworzyć działającą aplikację, która zaczęła pod tym względem zastępować laptopa.
Telefon miał nad nim ogromną przewagę – jego pamięć nie posiada elementów ruchomych, więc zbyt głośny bas był mu niestraszny. Kilka testów z głośnikiem basowym udowodniły skuteczność i niezawodność smartfona. Oczywiście dodam, że podwójną frajdę sprawiało mi to, że korzystam ze swojej własnej aplikacji.
Ze względów edukacyjnych, opublikowałem ją również w sklepie Windows Store pod nazwą Click Track Player. Był to kamień milowy w rozwoju aplikacji, która do dzisiaj widnieje pod nazwą Camtronome.
Sam odtwarzacz to za mało
Krótko potem okazało się, że sam odtwarzacz przestawał mi wystarczać. Na próbach bardzo dużo improwizowaliśmy – nasze rekordowe nagranie miało ponad 45 minut. Interesujące fragmenty wycinaliśmy, zapisywaliśmy, a następnie łamaliśmy metrum i ustalaliśmy końcową aranżację utworu. Nie chcąc w żaden sposób ograniczać improwizacji – celowo tworzyliśmy bez metronomu. Jednak z czasem precyzję grania trzeba było postawić na pierwszym miejscu.
Po pewnym czasie zdecydowaliśmy więc, że co jakiś czas będziemy improwizować właśnie z metronomem, którego zaczęło nam brakować w stworzonej przeze mnie aplikacji do odtwarzania podkładów.
Po krótkim czasie zaprogramowałem więc kolejną funkcję – metronom. Prosty 4/4, z możliwością dodania dźwięków pomocniczych (ósemki, triole, szesnastki), z brzmieniem, do którego od lat się przyzwyczaiłem, opublikowany jako oddzielna aplikacja o nazwie Subdivision Metronome. Razem z Click Track Player, stał się moim drugim ulubionym narzędziem używanym podczas prób i regularnych ćwiczeń.
Sam odtwarzacz i metronom to też za mało
W przeciągu kilku miesięcy używania telefonu Nokia Lumia odkryłem prawie zupełnym przypadkiem, że to urządzenie ma świetny mikrofon.
Na pewno był dużo lepszy niż ten, którego do tej pory używaliśmy podczas nagrań improwizacji z prób. Wzbogaciłem więc Click Track Playera o kolejną opcję, która do dziś jest jedną z flagowych opcji obecnego Camtronome – nagrywanie. Dzięki niej moja Lumia bezproblemowo zastąpiła używany dotychczas rejestrator.
Po krótkim czasie pojawił się apetyt na rozbudowanie programu o kolejne funkcje. Powiedzmy, ze chcemy improwizować w 7/8. A następnie pojawiłaby się chęć zagrania trzech taktów w 4/4 i na koniec właśnie 7/8? Wizualnie wyglądałoby to tak:
4/4 – 4/4 – 4/4 – 7/8 itd.
Trzeba było zaprogramować zmienny w czasie metronom.
Nowe aranżacje naszego zespołu coraz bardziej odbiegały od standardowej formy zwrotka, refren, zwrotka, refren, solo, refren, więc zapamiętanie kolejnych sekcji w utworze stawało się powoli wyzwaniem. Przydałby się sposób na zaznaczenie podczas gry, w której partii utworu się znajdujemy.
Rozwiązaniem okazała się synteza mowy, która była już dostępna w smartfonach z Windows Phone. W planach miałem również i ją zaprogramować, jednak spokoju nie dawała mi świadomość wątpliwej przyszłości tego systemu, którą potwierdzała sytuacja na rynku. Zrozumiałem wówczas, że programowanie na urządzenia, które niebawem wyjdą z obiegu, traciło sens.
Koniec Windows Phone
Przełom roku 2015/2016 to czas, w którym ostatnie sztuki telefonów z Windows Phone były jeszcze dostępne w sklepach z elektroniką. Co prawda, Click Track Player i Subdivision Metronome działały na mojej Lumii nadal bardzo dobrze, ale świadomość rozwoju sytuacji na rynku zmuszała mnie powoli do rozważania zakupu telefonu z ciut pewniejszą przyszłością. Widać było że system Windows Phone nie wytrzymuje konkurencji w postaci Androida i iOS.
Nic tak nie demotywuje jak naprawdę trudna praca, która – z powyższych względów – musi iść za jakiś czas prosto do kosza.
Zarówno na Androidzie, jak i na iOS nie znalazłem żadnej alternatywy dla pisanych przeze mnie aplikacji, więc wstrzymywałem się z zakupem nowego telefonu na jakiś czas. Ze względu na brak możliwości uruchomienia Click Track Playera i Subdivision Metronome na telefonie innym niż Windows Phone, wiedziałem, że po jego zmianie będę musiał aplikacje te napisać całkowicie od podstaw.
Był to ogrom pracy, którą chciałem możliwie jak najbardziej zoptymalizować – i w miarę możliwości – bezboleśnie doprowadzić do migracji na nowe formaty. W tamtym czasie dołączyłem również do zespołu BulletRaid, więc obie aplikacje były mi potrzebne aby ćwiczyć nowy repertuar. W związku z tym, czasu na programowanie było coraz mniej.
Jako ówczesny absolwent inżynierii oprogramowania Politechniki Wrocławskiej, śledziłem poczynania Microsoftu w kwestii stopniowego wygaszania Windows Phone. Wszystko wskazywało na to, iż niedługo pojawi się nowe narzędzie programistyczne, które umożliwi przeniesienie aplikacji zaprogramowanej dla Windows Phone na Androida lub iOS, częściowo wykorzystując jej istniejący kod.
Programowanie na Androida
Zgodnie z przewidywaniami, w lutym 2016 narzędzie takie zostało w końcu publicznie udostępnione programistom. Praktycznie od pierwszego dnia rozpocząłem prace nad przeniesieniem Click Track Playera na Androida. Zgodnie z zapewnieniami Microsoftu – naprawdę sporo istniejącego kodu bez problemu udało mi się uruchomić na nowym telefonie z Androidem. Click Track Player uruchamiał się i działał poprawnie, jednak wymagał sporo dodatkowych poprawek i ulepszeń. Do tego momentu byłem już zatrudniony na pełen etat, a wolny czas wypełniały mi próby z nowym zespołem i – od czasu do czasu – pojawiała się wymuszona przerwa na sen.
Jesienne koncerty z BulletRaid
Współpraca z BulletRaid od początku układała się dosyć dobrze i zaowocowała dużą ilością koncertów na jesień 2016. W tym wypadku również kierując się technicznym masochizmem i zamiłowaniem do wpadek na scenie posługiwaliśmy się – a jakże! – podkładami audio.
Jesień 2016 była intensywna pod względem ilości koncertów klubowych które graliśmy z BulletRaid. Nie chcąc ryzykować wpadki na scenie (szczególnie w kwestii podkładów audio), pierwsze występy grałem jeszcze z Nokią Lumia. Prawie ukończony Click Track Player na moim głównym telefonie z Androidem był zainstalowany i gotowy do użycia, jednak wstrzymywałem się z wypróbowaniem go na żywo. Telefon dotychczas stawiałem na statywie, obok perkusji, z włączoną funkcją nagrywania. Rejestrowałem w ten mało wymagający sposób każdy swój występ. Ot – taki metronom z funkcją Drum Cam.
Ośmielony wieloma próbami na nowym Samsung Galaxy, wystąpiłem w końcu na scenie wyposażony w Androida. Nokia Lumia została po wielu gigach nareszcie zdetronizowana i wylądowała głęboko w szufladzie biurka.
Spoczywa tam do dziś.
Muszę kiedyś posprzątać w tej szufladzie.
Wiem dobrze, że też masz taką szufladę w swoim pokoju. Nie oceniaj mnie.
(Oceń lepiej aplikację Camtronome w Sklepie Play, pomożesz mi w jej rozwoju)
Koniec reklamy :D.
Co to za zajebistą apkę masz?
Koncerty w klubach mają często to do siebie, że na scenie występują muzycy. A po koncertach muzycy często rozmawiają. I chociaż rzadko, ale zdarza się również, że na trzeźwo.
Pierwszą entuzjastyczną recenzję swojej aplikacji („Co to za zajebistą apkę masz?”) usłyszałem po gigu zagranym wspólnie z kilkoma zespołami. W dużym skrócie – zostałem namówiony do opublikowania swojej aplikacji w sklepie Google Play. Okazało się, że problemy z przeskakującym klikiem w laptopie to nie tylko moja zmora, a do tego nie byłem jedyną osobą która nagrywała własne występy. Rozmawiając przy butelce gazowanej wody, pochwaliłem się że apka której używam jest mojej własnej produkcji. W ten sposób zyskałem swojego pierwszego beta-testera.
Szlifowanie Click Track Playera
Po powrocie do domu zacząłem przeglądać sklep Google Play w poszukiwaniu najlepszej aplikacji dla muzyków z funkcją metronomu zmiennego w czasie z możliwością jednoczesnego nagrywania i syntezą mowy. Spoiler alert – nie znalazłem.
W tym czasie aplikacje pojawiały się jak grzyby po deszczu – więc zainteresowani mieli w czym wybierać.
Ku mojemu ledwo ukrywanym zdziwieniu – mimo wielu dostępnych metronomów – żaden nie spełniał wszystkich tych wymagań. Ba! – nawet te najpopularniejsze i najwyżej oceniane – nie nadawały się absolutnie do pracy na scenie – nie miały wygodnej funkcji list odtwarzania, zmiennego metrum, czy syntezy mowy, o nagrywaniu nie wspominając.
I tu pomysł się rozwinął. Zdecydowałem się więc stworzyć połączenie Click Track Playera i Subdivision Metronome na Androida w jednej, spójnej aplikacji oraz opublikować ją oficjalnie w sklepie Google Play.
Pracę zacząłem od wdrożenia zaplanowanych wcześniej poprawek działania aplikacji. W następnym kroku dopisałem funkcję tworzenia zmiennych w czasie i zarazem programowalnych metronomów. Później doszła jeszcze stworzona dla własnej wygody funkcja sterowania bezprzewodowego i tak oto nareszcie dysponowałem stabilnie działającą bazą dzisiejszego produktu.
Po prawie roku pracy po godzinach byłem gotowy do publikacji aplikacji. Nazwa Click Track Player już się jednak zdezaktualizowała. Napisałem metronom który był niezbędnikiem dla każdego muzyka i potrzebowałem nazwy, która by podkreśliła jej główne funkcje. Nazwa Camtronome pojawiła się w mojej głowie podczas jesiennego spaceru i pozostała ze mną do dzisiaj. Warto chodzić na spacery.
Tak wyglądały właśnie początki aplikacji Camtronome. A jeśli ciekawi Cię, jak to wszystko potoczyło się dalej – tu przeczytasz dalszą część historii.