sobota, 28 listopada 2020

Kontakt - Quick load

Kto nie czyta instrukcji, ten tak ma

Używam samplera Kontakt od lat. Uzbierałem przez ten czas mnóstwo bibliotek dźwiękowych i to nie tylko tych "standardowych", które można aktywować poprzez Native Access i zobaczyć ich graficzne wizytówki:

Wiele bibliotek, zwłaszcza tanich lub darmowych, nie posiada wygodnego panelu i trzeba się do nich dostawać za pomocą zakładki Files:

Jest to średnio wygodne, zwłaszcza - jak w moim przypadku - trzyma się biblioteki rozdzielone na różnych dyskach. Wówczas odszukanie rzadziej używanego instrumentu bywa frustrujące, bo trzeba systematycznie przewertować poszczególne foldery w poszukiwaniu plików nki, zaś funkcja wyszukiwania/filtrowania nie do końca się sprawdza, bo możemy nie pamiętać dokładnej nazwy. Do tej pory jakoś się z tym męczyłem, ale podczas oglądania jakiegoś samouczka na YouTube zauważyłem, że prowadzący ma jakiś fajny panel, z którego wczytuje sobie instrumenty. Chwilę poszperałem i... no, teraz też mam ten panel i oszczędzam mnóstwo nerwów, a i trochę czasu. Jak to zrobić?

Szybkie ładowanie

Włączamy panel Quick load - z menu u góry ekranu albo skrótem Ctrl+F:

Pojawi się wspomniany "magiczny" panel, aczkolwiek na razie nie będzie wyglądał imponująco:

Klikanie nie na wiele się zda, bo za pomocą menu kontekstowego co najwyżej dodamy folder lub go usuniemy. Rzecz w tym, że panel obsługuje się za pomocą techniki drag'n'drop, czy przeciągania z panelu Files lub z Eksploratora Windows. Wyszukujemy zatem jeden z trzech dozwolonych typów plików: instrumenty nki, banki nkb i zestawy multi nkm. Jak widać można zatem tworzyć swoje własne komplety instrumentów, jak to omawiałem kiedyś, zapisać je i przywoływać jednym kliknięciem.

Aby dodać coś do panelu Quick load, na przykład instrument, odszukujemy plik nki w panelu Files. Chwytamy go i przeciągamy do panelu Quick load, po czym "puszczamy". Gotowe! Jeśli mamy cały folder instrumentów, możemy przeciągnąć cały folder, a w Quick load instrumenty te nadal będą zgrupowane. Grupować można także samodzielnie, po prostu tworząc i nazywając odpowiednio foldery.

I to wszystko. Trzeba tylko poświęcić chwilę na przygotowanie całej tej konfiguracji, ale za to później można już zapomnieć o zakładce Files, a instrumenty ładować z panelu Quick load. Przy okazji - warto zabezpieczyć panel przed przypadkowymi zmianami za pomocą małej kłódeczki.

czwartek, 26 listopada 2020

WaveLab - Render in Place

Przy okazji omawiania poprawki 10.0.50 do WaveLaba wyraziłem życzenie, żeby wreszcie można było procesować plik audio nie tylko przez sekcję Master, ale też off-line. Że tak, jak w edytorze Acoustica, zaznaczam sobie fragment, wywołuję jakąś wtyczkę VST i ciach, mam ten fragment przetworzony, co automatycznie zwalnia mi miejsce we wspomnianej sekcji Master. No i w ten sposób pokazałem, jak bardzo nie przeczytałem instrukcji WaveLaba.

Albowiem, moi mili, funkcja taka już obecnie istnieje! I podejrzewam, że istniała także w wersji 10, 9.5, a pewnie i 9. Na swoje usprawiedliwienie powiem tylko, że ani nie jest ona super widoczna, ani intuicyjna.

Załóżmy bowiem, że po raz pierwszy uruchamiamy WaveLaba i wczytujemy do niego plik dźwiękowy. Chcemy po prostu go odszumić. Niestety, w zestawie "pokładowych" funkcji na karcie Process odszumiania nie znajdziemy. Wpadamy jednak na pomysł, by do sekcji Master dodać ulubioną wtyczkę odszumiającą - w moim przypadku jest to niezmiennie Brusfri. OK, wtyczka dodana, "karmimy" ją więc szumem i oto przy odtwarzaniu wszystko jest już w porządku, także przy końcowym renderowaniu wszystko działa. Sukces.

Tyle tylko, że wspomniana wtyczka zajmuje nam niepotrzebnie slot sekcji Master - a jest to cenne miejsce, szczególnie w wersji Elements WaveLaba. Dodatkowo odszumianie zajmuje też cenny czas procesora, więc obniżamy sobie wydajność.

No i teraz na scenę wchodzi instrukcja użytkownika, która w rozdziale In-Place Rendering zdradza, że każda wtyczka, osadzona w sekcji Master, po wyświetleniu jej okienka ma taką malutką ikonkę:

Kliknięcie tejże ikonki powoduje, że wtyczka zacznie przetwarzać zaznaczony fragment i go zastąpi efektem swojej pracy. Może to być trudne do uchwycenia, jeśli fragment jest krótki, a wtyczka działa subtelnie, nie wpływając mocno na wygląd pliku dźwiękowego - po prostu można to przegapić.

Ciekawe jest to, że można podobną sztuczkę zrobić dla całej Master Section, czyli zaznaczony fragment przepuścić przez wszystkie wtyczki - wystarczy przytrzymać lewy klawisz myszy nad przyciskiem Render u dołu sekcji i wybrać Render in place:

Gotowe! Trochę to "na okrętkę" jest zrobione, bo żeby odszumić, trzeba dodać odszumiacz do Master Section, wykonać powyższe kroki, po czym go usunąć, ale zawsze to coś. Ciekawe, dlaczego Steinberg nie doda do karty Process możliwości przetworzenia zaznaczonego fragmentu dowolną wtyczką? Byłoby to i szybsze, i bardziej intuicyjne...

Steinberg WaveLab 10.0.50

Rok się kończy, więc tradycyjnie mamy do czynienia z ożywieniem w obozie Steinberga - najpierw Cubase 11, a teraz nowa aktualizacja WaveLaba - chociaż przyznam, że spodziewałem się wersji 10.5 zamiast "małej" wersji 10.0.50.

W WaveLabie zasadniczo nic mi już nie doskwierało ostatnio, może poza dziwną momentami pracę "głowicy odtwarzającej" i blokowaniem plików. To pierwsze właśnie powinno przestać mnie irytować, bo na liście zmian widnieje właśnie poprawa pracy głowicy. Nie znalazłem, niestety, nic na temat blokowania plików - a chodzi mi tu o sytuację, gdy np. miałem wczytany plik mono, a w nim wtyczkę mono (w sekcji Master). Wczytuję teraz plik stereo, a WaveLab krzyczy, że mam wtyczkę w konfiguracji mono; zamykam plik stereo i otwieram ponownie mono, ale WaveLab już tego nie dostrzega i dopiero restart albo dziwne czyszczenie pamięci cache pomagało. Może jeszcze pobawię się w odtworzenie testowe tej sytuacji, na razie szkoda mi czasu.

Co jeszcze ciekawego? Głównie drobne poprawki w rodzaju "wstawianie i przecinanie klipu działa teraz zgodnie z oczekiwaniami" albo "wstawianie znaczników CD nie powoduje zawieszenia aplikacji". Czy jestem zawiedziony? Nie bardzo, bo WaveLab już obecnie robi wszystko to, czego bym od niego oczekiwał i w zasadzie nie mam już wobec niego dodatkowych oczekiwań - może z wyjątkiem tego, by można było aplikować działanie wybranej wtyczki do zadanego fragmentu (czyli takie procesowanie off-line). Dałoby mi to możliwość np. odszumienia nagrania i później procesowanie go bez tkwiącej w pierwszym slocie wtyczki odszumiacza. A, no i bardzo by się przydała możliwość zapisywania sekcji Master razem z danym projektem - ale tego typu zmiany to dopiero w wersji 10.5, a pewniej w 11.

Tymczasem pobierajcie, wersja działa i naprawia parę bugów, więc warto.

wtorek, 24 listopada 2020

Omnisphere - czyżby sukces?

Chyba się udało!

Ale od początku. W zeszły piątek opisałem, jak zgłaszałem problem ze sprawiającym problem Omnisphere. No i że wreszcie doczekałem się jakiejś sensownej reakcji - zebrałem logi, przesłałem filmik i miałem czekać na ewentualne sygnały od programistów. No i wyobraźcie sobie, że się doczekałem!

Wczoraj późnym wieczorem dostałem e-maila, że przygotowano specjalnie dla mnie diagnostyczną wersję Omnisphere z już zaimplementowaną poprawką, a przynajmniej z rozszerzonym logowaniem, co powinno w razie czego ułatwić diagnostykę. Wersję pobrałem, zainstalowałem i dalejże odtwarzać problem!

Na screenie specjalna wersja diagnostyczna BZ5346

I okazało się, że nie mogę już "wywalić" Studio One. Próbowałem tak i owak, wczytywałem nawet te najdłuższe, największe presety (bo zauważyłem, że to one sprawiały problem). Nie udało się. Zrestartowałem Studio One (na wszelki wypadek) i powtórzyłem całą procedurę, również bez skutku. Przy okazji dowiedziałem się, że pojawiła się aktualizacja Studio One do wersji 5.1.1, więc postanowiłem zainstalować ją i także sprawdzić w boju. Jak się domyślacie, ona też działała prawidłowo.

Odesłałem zebrane logi do Spectrasonics (prosili, by tak czy owak je dosłać) i mam nadzieję, że wkrótce pojawi się oficjalna wersja z poprawką. Aż trudno mi uwierzyć, że zniknął problem, z którym borykałem się tak długo, bo śmiało mogę napisać, że latami. I bardzo się cieszę, że postanowiłem jednak napisać do Spectrasonics - no i że oni zmienili swoje podejście do tego typu zgłoszeń.

piątek, 20 listopada 2020

Problemy duetu Omnisphere i Studio One

Dawno, dawno temu, za górami, za lasami amator muzyki zainstalował sobie DAW Studio One i syntezator Omnisphere 2. Niestety, korzystnie z tego zestawu wiązało się z niewiadomych przyczyn z dużym ryzykiem zawieszenia DAWa i utratą efektów pracy. PreSonus, czyli producent Studio One, twierdził uparcie, że to wina Omnisphere, zaś Spectrasonics uparcie uważało, że skoro w innych DAWach ich instrument działa bezbłędnie, to wina jest po stronie Studio One. Zmęczony supportowymi przepychankami amator muzyki po prostu przestał używać wspomnianego duetu razem.

Latka lecą

Lata mijały, a problemu nie rozwiązywały kolejne wersje oprogramowania. Wreszcie wersja 5.x Studio One zmieniła sytuację: zamiast zawieszenia się, DAW po prostu kończy teraz pracę i wychodzi do pulpitu. Sytuację udało mi się wręcz nagrać programem OBS, dysponowałem więc i zapisem wideo, i logami z dziennika systemowego, i plikami zrzutów z samego Studio One. Support PreSonusa uparcie jednak twierdzi, że wina leży po stronie instrumentu. No i dobrze, napisałem zatem ponownie do Spectrasonics. A tam zmiana!

Nowe podejście?

Jako że obecnie dużo firm jak tylko może, broni się przed zgłaszaniem błędów przez użytkowników, ukrywając formularze kontaktowe, zmuszając do pisania e-maili czy wręcz dzwonienia, nie byłem zdziwiony, że podobnie wygląda to i u Spectrasonics. Nie mając wielkich nadziei, napisałem e-maila. Odpowiedzi doczekałem się dopiero po trzech dniach, ale za to nie była to odpowiedź mająca mnie spławić.

Niejaki Alex dopytał, kiedy się rzecz dzieje, czy jestem w stanie to odtworzyć, czy mogę mu dołączyć jakieś logi systemowe. Opisałem wszystko, logi dołączone i czekam. Tym razem odpowiedź już po jednej dobie, a w niej opis, jak włączyć logowanie diagnostyczne w Omnisphere i prośba o dostarczenie takich logów. Logi zebrałem, do e-maila dołączyłem też wideo z odtworzenia błędu. Tym razem odpowiedź przyszła po kwadransie, że sprawa jest już przekazana do deweloperów, którzy - jeśli będą czegoś potrzebować - zgłoszą się do mnie. Oooo.

Kiedy efekty?

Przyznam, że jestem pozytywnie zbudowany obecną reakcją firmy. Wprawdzie nadal sobie zbyt wiele nie obiecuję po efektach, bo w logach z Omnisphere na moje oko nie ma nic niepokojącego, ale może się mylę i programiści coś tam jednak dostrzegą. Być może zamiast tego zdiagnozują jakiś ewidentny problem po stronie Studio One, co mógłbym wykorzystać do walki z supportem PreSonusa? Pożyjemy, zobaczymy.

[T] Modartt Pianoteq 7 Stage

Wiadomo nie od dziś, że Pianoteq jest moim głównym, podstawowym, ulubionym i najczęściej wykorzystywanym fortepianem. Bardzo rzadko wymieniam go na Alicia's Keys Piano - tylko wówczas, gdy potrzebuję naprawdę miękkiego brzmienia. I właśnie wszystko wskazuje na to, że już nie będę musiał robić wymian.

Entuzjazm

Początkowo nie zwróciłem uwagi na premierę nowego Pianoteqa. Ot, gdzieś tam mi mignęło, ale się nie zainteresowałem. Potem Guy Michelmore nagrał przegląd i poza tworzeniem warstw też jakoś szału nie było, ale postanowiłem pobrać wersję próbną i posłuchać samodzielnie.

No i się okazało, że producent nie bez powodu chwali się nowym modelem NY Steinway D - różnica w brzmieniu między tym instrumentem a "standardowym" Steinwayem D z Pianoteq 6 jest naprawdę duża, na korzyść nowego. Jego brzmienie jest pełniejsze, szersze, a jednocześnie bardziej miękkie, nie tak szkliste. Naprawdę, aż chce się grać!

Stage, Standard czy Pro?

Pianoteq istnieje w trzech wersjach: Stage, Standard i Pro. Różnią się one możliwościami, bo chociaż podstawowa funkcjonalność jest wspólna, tzn. odtwarzanie podstawowego zestawu instrumentów, możliwość stosowania korektora oraz pogłosu czy wersja standalone z możliwością zapisu granych dźwięków do pliku MIDI. Wersja Standard ma już możliwość zmiany parametrów fortepianu czy jego strojenia, a dodatkowo od wersji 7 także możliwość stosowania warstw; wersja Pro to już wszystko, co "fabryka dała" - edycja na poziomie pojedynczych strun/klawiszy, wszystkie fizykalne parametry instrumentu, stosowanie częstotliwości wyjściowej aż do 192kHz. Jest jeszcze wprawdzie wersja Pro Bundle, ale to po prostu wersja Pro, która dodatkowo zawiera WSZYSTKIE biblioteki presetów, udostępniane przez firmę Modartt.

Różnice między poszczególnymi edycjami

Ja pozostałem przy wersji Stage, bo raz, że cena aktualizacji była wyjątkowo niska, a dwa, że te lata, kiedy używałem wersji 6 przekonały mnie, że jakoś nie potrzebuję do szczęścia tych bardziej zaawansowanych funkcji edycyjnych. Wprawdzie przez chwilę się wahałem, bo jednak "siódemka" ma możliwość stosowania warstw i morphingu, czyli po polsku chyba można to nazwać "przenikaniem". Chodzi generalnie o to, że można stworzyć sobie instrument, który np. w dolnych rejestrach będzie brzmiał jak fortepian, w górnych jak harfa, a w środkowych jak klawesyn zmieszany z wibrafonem. Faktycznie przyjemne, testowałem sobie w wersji próbnej, ale i tak wolę robić podobne rzeczy po prostu w DAW na osobnych ścieżkach, po namyśle zatem zrezygnowałem z wersji Standard, choć przyznam, że nie wykluczam, że to ta właśnie funkcja kiedyś skłoni mnie do aktualizacji (poczekam jednak na jakąś fajną promocję).

Co się zmieniło w Stage?

Poza pojawieniem się rewelacyjnego fortepianu NY Steinway D nowością w "siódemce" jest poprawiony algorytm modelujący, który symuluje drganie strun we wszystkich kierunkach i ma wzbogacać brzmienie symulowanych instrumentów. Ja tam fizykiem ani akustykiem nie jestem, ale faktycznie brzmienie mojego ulubionego Steinwaya D Prelude z "szóstki" różni się nieco od analogicznego fortepianu z "siódemki". Tym samym w "siódemce" nie ma już tak wyraźnej różnicy między tym modelem fortepianu a nową wersją NY, co przy porównaniu "szóstki" i "siódemki".

Nowy Pianoteq 7 instaluje się jako osobny instrument, więc wszystkie dotychczasowe utwory będą korzystać ze starszej wersji. Moim zdaniem to bardzo dobre rozwiązanie, bo jednak właściwości soniczne obu instrumentów są inne, a w przypadku brzmienia fortepianu ma to często kolosalne znaczenie.

Co ciekawe, po zainstalowaniu "siódemka" zajmuje ciut mniej (!) miejsca niż "szóstka": 52MB zamiast 53. To i tak kosmiczna różnica w porównaniu choćby do wspominanego wyżej instrumentu Alicia's Keys, który zajmuje 7,5GB i ładuje się do pamięci odpowiednio długo.

Używam i będę używał!

Brzmienie nowego NY Steinwaya D mnie urzekło i nie sądzę, bym od tej pory używał innego fortepianu. Moim zdaniem Pianoteq zrobił kolejny kroczek w drodze do symulacji idealnej i ja już na przykład nie jestem w stanie usłyszeć, czy dane brzmienie jest samplowane, symulowane czy po prostu nagrane z prawdziwego instrumentu. Być może pianiści z odpowiednio wyszkolonym słuchem jeszcze te różnice rozpoznają - nie mówię, że to niemożliwe. Dla mnie jednak już teraz symulacja dogoniła rozwiązania próbkowane - a że zajmuje kilkadziesiąt razy mniej miejsca na dysku i wczytuje się błyskawicznie, głosuję zdecydowanie na tę opcję. Rzekłem!

niedziela, 15 listopada 2020

[G] stRing - Destiny

To trzeci już cover muzyki stRinga, ale inny od poprzednich. Tym razem postanowiłem, że będzie mniej disco, a bardziej gitarowo. Nie oznacza to, oczywiście, że wszystko jest gitarowe - ale prawie. To był też pretekst do wykorzystania organów B3, które zaczynam lubić w takich krótkich wystąpieniach. Zapraszam zatem do posłuchania:

piątek, 13 listopada 2020

SAP na MIDI - najlepszy sposób

Dzięki uprzejmości LucaVB, autora skryptu pokey2midi.py, opiszę dzisiaj najskuteczniejszy sposób konwersji pojedynczego pliku sap na mid. Co najważniejsze, powinien od doprowadzić do uzyskania pliku dopasowanego do siatki tempa, dzięki czemu nie trzeba będzie spędzać dodatkowego czasu na wyrównywaniu poszczególnych nutek. Dlaczego w ogóle o tym piszę, skoro już opublikowałem skonwertowane muzyczki? Ano dlatego, że są one skonwertowane właśnie bez wyrównywania tempa, zatem trudniejsze w późniejszej obróbce. Szybciej będzie skonwertować pojedynczy plik sap w opisany niżej sposób. A dlaczego nie przerobię całego archiwum jeszcze raz? Przeczytajcie, a się dowiecie.

Narzędzia

Podobnie jak poprzednio, pobieramy pełny pakiet ASAP, który zrzuci nam zawartość pliku sap to pliku tekstowego. Co ciekawe, LucaVB zdradził, że nie jest konieczna konwersja do formatu bz2, więc pomijamy instalowanie i użycie 7zip. W zamian musimy jednak zdobyć jakieś narzędzie do wykrywania tempa - polecam lekturę testu porównawczego. Przyda się też jakiś odtwarzacz plików sap z możliwością eksportu do zwykłego pliku dźwiękowego wav - ja w tym celu używam programu WASAP, pobranego z tego samego miejsca, co konwerter. Można też konwertować aplikacją asapconv, wchodzącą w skład ASAP, jednak czasem w jednym pliku sap jest kilka muzyczek, wówczas łatwiej to ogarnąć za pomocą odtwarzacza.

Teraz procedura jest następująca:

  • instalujemy wszystkie narzędzia, jak to już opisywałem - ASAP, Python, któreś z narzędzi do wykrywania tempa oraz sam skrypt pokey2midi.py (ten ostatni najlepiej wrzucić w to samo miejsce, gdzie jest konwerter asapscan.exe)
  • wybraną muzyczkę w formacie sap wrzucamy do tego samego folderu, gdzie jest asapscan.exe i pokey2midi.py
  • otwieramy linię poleceń i przechodzimy do naszego folderu roboczego
  • konwertujemy plik sap na txt (oczywiście modyfikując nazwy plików) poleceniem:
    asapscan.exe -d plik.sap 1>plik.txt
  • w katalogu roboczym powinien pojawić się plik plik.txt, zawierający dane muzyczne dla skryptu pokey2midi.py
  • wczytujemy muzyczkę sap do zainstalowanego odtwarzacza i eksportujemy ją jako plik wav, który z kolei analizujemy narzędziem do wykrywania tempa - tempo wyrażone w BPM zapisujemy sobie gdzieś na boku albo zapamiętujemy; możemy też alternatywnie skorzystać po prostu z programu asapconv:
    asapconv -o .wav plik.sap
  • uruchamiamy skrypt pokey2midi.py:
    pokey2midi.py plik.txt plik.mid --findbpm
    - skrypt dokona konwersji, ale przy okazji wypisze też bardzo dokładnie wyliczone tempa - będzie ich przynajmniej kilka, wybieramy spośród nich to najbardziej zbliżone do znalezionego wcześniej i kopiujemy z zachowaniem pełnej precyzji - to ważne!
  • uruchamiamy ponownie skrypt pokey2midi.py:
    pokey2midi.py plik.txt plik.mid --bpm dokladna_wartosc_bpm
  • teraz plik wynikowy plik.mid powinien być już ściśle dopasowany do siatki w programie DAW - a wierzcie, że to BARDZO ułatwia życie!

Przykład

Mawiają, że jeden przykład wart jest więcej niż cała książka teorii. Pokażę więc, jak powyższa procedura wygląda w praktyce. Do konwersji posłuży mi plik Destiny.sap z muzyką stRinga. Wgrywam go więc do folderu, gdzie już są przygotwane: konwerter asapscan.exe oraz skrypt pokey2mid.py:

Otwieram linię poleceń (najszybszy sposób: Win+Q, wpisać CMD i nacisnąć Enter) i przechodzę do mojego folderu j:\download\sap2midi:

Uruchamiam konwersję do pliku tekstowego:

asapscan -d destiny.sap 1>destiny.txt

Upewniam się, że plik destiny.txt istnieje, więc teraz otwieram program WASAP i wczytuję do niego plik destiny.sap, po czym zapisuję go jako zwykły plik dźwiękowy destiny.wav:

Otwieram program do detekcji tempa - ja używam tuneXplorer - badam, co to za tempo stRing ustawił.

Wypada niby 93BPM, pora więc sprawdzić, co na to skrypt pokey2midi.py:

pokey2midi.py destiny.txt destiny_no_bpm.mid --findbpm

Jak widać, jest całkiem sporo wartości, ale zbliżona do 93BPM jest wartość 93.488898026316. Używam jej zatem do ponownej konwersji:

pokey2midi.py destiny.txt destiny.mid --bpm 93.488898026316

Gotowe! Sprawdzam jeszcze w Reaperze, czy rzeczywiście są jakieś różnice. Najpierw plik destiny_no_bpm.mid z pierwszej konwersji, bez podawania BPM:

A teraz plik destiny.mid z podaną dokładną wartością BPM:

Widać wyraźną różnicę, zwłaszcza jeśli popatrzy się na ścieżki 2 i 6, które powinny zaczynać się od początku taktu, a w pierwszym przypadku daleko im do tego.

Do trzech razy sztuka

DOPISEK Z 16 LISTOPADA 2020: Nie dawało mi spokoju, że mając wiedzę, jak wyrównywać tempo plików przy konwersji MIDI, udostępniam prawie 5000 sztuk bez takiego wyrównania. Pozornie wydawało się, że nie można wykonać automatycznie całej konwersji związanej z wyrównywaniem - wszystko przez etap wykrywania tempa zewnętrznym narzędziem i konieczność porównywania tej wartości ze "strzałami" z pokey2midi. ALE... to właśnie mi doskwierało. Ja, programista, tak to po prostu zostawię? Niedoczekanie. Używany przeze mnie tuneXplorer posiada funkcję rekurencyjnego przeszukania plików muzycznych, a wyniki potrafi zapisać do pliku csv. Trzeba by jeszcze jakoś wydobyć te wartości z csv i porównać z wartościami po konwersji pokey2midi z opcją --findbpm - ale przecież do takich mozolnych zadań zbudowano komputery!

Tu już musiałem sięgnąć po język programowania - ale skorzystałem z okazji i zastosowałem w praktyce Pythona, pisząc skrypt wyciągający za pomocą wyrażenia regularnego wszystkie znalezione wartości tempa i porównujący go z wartością z pliku csv. Tu nie wszystko poszło gładko - okazało się, że dla niektórych plików pokey2midi nie potrafił wykryć precyzyjnych wartości tempa. Czasem też zdarzało się, że wartości wprawdzie były, ale nie można było dopasować ich do tempa wykrytego przez tuneXplorer - w tym wypadku szybkie śledztwo wykazało, że gdy tempo z tuneXplorera podzielić przez dwa albo przez dwa pomnożyć, to już wartość pasuje. Podobnie bywało z zaokrąglaniem - trzeba było jeszcze prowadzić porównanie z wartością o jeden mniejszą i większą. W trakcie rozbudowywania skryptu o nowe funkcje nauczyłem się stosować w Pythonie pętle, warunki, wyrażenia regularne, odczytywać pliki, operować na ciągach znaków, pobierać parametry uruchomieniowe i wywoływać zewnętrzne programy. Co ważne, skryptu nie muszę kompilować, zamieniać na plik jar ani kombinować ze ścieżkami - po prostu wrzuciłem go do katalogu roboczego i uruchomiłem. Bardzo mi się to podoba i chyba w takich sytuacjach faktycznie przestawię się z Javy na Pythona.

Żeby załatwić całe archiwum za jednym razem, napisałem jeden plik wsadowy, który za pomocą asapconv zamienił wszystkie pliki sap na mp3; wtedy przeczesałem całe archiwum programem tuneXplorer i zapisałem plik csv. Teraz jeszcze trzeba było kolejnym plikiem wsadowym wygenerować tekstowe pliki z danymi programem asapscan, a do tego wywołać dla każdego pliku pokey2midi z parametrem --findbpm i zapisać wyniki do pliku tekstowego. No i ostatni etap to ponowne przejście przez całe archiwum już skryptem pythonowym, który z jednej strony odczytywał dla danego pliku mp3 znalezione tuneXplorerem BPM, a z drugiej wyrażeniem regularnym porównywał je z precyzyjnymi danymi znalezionymi przez pokey2midi - jeśli została ustalona docelowa wartość BPM, należało jeszcze przeprowadzić ostateczną konwersję pokey2midi z parametrem --bpm... uff!

We wszystkich przypadkach, gdzie nie dało się ustalić precyzyjnego tempa, zostawiłem pliki MIDI skonwertowane bez parametru --bpm. Listę plików bez określonego tempa wrzuciłem także do archiwum z plikami MIDI (plik no_temp_info.txt), dla informacji. Oczywiście, brak precyzyjnego tempa oznacza tylko tyle, że trzeba będzie odpowiednio "ścisnąć/rozciągnąć" dane w DAW. Załączyłem także w pliku tunexplorer_bpm.csv dane o tempie, które wygenerował tuneXplorer.

Mam nadzieję, że to już ostatni opis całej procedury. Teraz już nic nie może usprawiedliwić małej liczby coverów - do roboty!

czwartek, 12 listopada 2020

[Cubase] "Jedenastka" wylądowała!

Wczoraj, czyli 11.11, odbyła się premiera Cubase 11. W zasadzie potwierdziło się wszystko, o czym pisałem parę dni temu. W omawianym opisie zabrakło tylko jednej rzeczy, która (być może) okaże się całkiem niezłym pretekstem do uaktualnienia, a chodzi mianowicie o SpectraLayers One. Jest to nieco okrojona wersja SpectraLayers 7, a jej najbardziej reklamowaną funkcjonalnością jest izolacja wokali z utworów i przyznam bez bicia, że na filmach demonstracyjnych rzeczywiście wygląda to (i brzmi) zupełnie jak magia.

Tym niemniej, patrząc już zupełnie trzeźwo, poza SpectraLayers One i krzywymi CC w edytorze MIDI (no i może uwzględnianiem skal) nie widzę w nowym Cubase nic szczególnie pociągającego. A już mój entuzjazm znacząco opadł w momencie, gdy na forum Steinberga znalazłem potwierdzenie, że Expression Maps NADAL działają nie do końca prawidłowo... Coś mi się wydaje, że Cubase podzieli los Studio One 5, które stało się dla mnie warte aktualizacji dopiero w momencie wprowadzenia nagrywania retrospektywnego. Tutaj "języczkiem u wagi" będzie poprawka w Expression Maps.

Natomiast z tego, co zaobserwowałem na różnych filmikach (które jak fala zalały wczoraj YouTube'a), dużo ludzi ekscytuje się możliwością kolejkowania zgrywania stemów (czego zasadniczo nie robię) oraz... ulepszeniem w zakresie Hi-DPI, czyli sposobem wyświetlania na ekranach o dużej gęstości pikslei. To też mnie nie dotyka na razie, bo jako posiadacz zwykłych monitorów HD, nie mam problemu ze zbyt małymi panelami, literkami i przyciskami - ale rozumiem wszystkich, którym to doskwierało.

Nie tworzę także partytur, więc i zmiany w tym obszarze średnio mnie intrygują, zaś z nowych wtyczek zaciekawił mnie tylko SuperVision, czyli rozbudowany miernik-analizator, gdzie można kontrolować nie tylko głośność (na różne sposoby), ale generalnie badać wychodzący sygnał (spójność stereo, przebieg częstotliwości itp.) Przy okazji naszło mnie pytanie, dlaczego twórcy danego DAW nie udostępniają tych wewnętrznych, często bardzo dobrych wtyczek także jako opcji VST? Ja rozumiem, że te wtyczki mają właśnie za zadanie przyciągnąć użytkowników do konkretnego DAWa, ale przecież bardzo często zdarza się, że producenci muzyczni używają z konieczności kilku DAWów i zapewne chętnie widzieliby możliwość użycia tego samego kompresora czy limitera w nich wszystkich.

Na premierze Cubase'a położyły się cieniem spore problemy z obciążeniem firmowych serwerów, kiedy wyposzczeni użytkownicy rzucili się do masowych zakupów. Dotknęło to także wszystkich, którzy akurat na wczoraj zaplanowali w ogóle instalowanie oprogramowania od Steinberga, bo były nie tylko problem z pobraniem instalatorów, ale nawet z podłączeniem się do systemu licencji (co po raz kolejny pokazuje słabą stronę tego sposobu autoryzacji).

No i tyle słowem podsumowania wczorajszej premiery - więcej szczegółów zamieszczę pewnie, jeśli zdecyduję się na uaktualnienie. Ale to już raczej nie w tym roku.

Dopisek z 12 listopada - serwery Steinberga wciąż niedostępne, firma wstrzymała sprzedaż licencji na Cubase 11 do czasu usunięcia usterek...

[G] stRing - Energy

Zachęcony tym, jak przyjemnie pracowało się nad coverem "Error in line 10" postanowiłem spróbować z jeszcze jednym utworem stRinga. Padło na "Energy" i przyznam, że w stosunku do oryginału wprowadziłem tu parę zmian. Najważniejszą była zmiana jednego akordu - ten oryginalny ewidentnie nie pasował do mojej "wizji". Wyrzuciłem też dwa takty ze środka i uciąłem końcówkę, która w oryginale była nieskończoną, wyciszaną pętlą. Mam nadzieję, że Autor się nie pogniewa za te modyfikacje, a w efekcie moja wersja brzmi tak:

Artykulacje - zmieniać czy trzymać na osobnych ścieżkach?

Ciągle "siedzę w orkiestrach" i przyznam, że że ciągle mi się to podoba. Wprawdzie utworów nie ma jakoś specjalnie dużo, a większość z nich można znaleźć na składance "New in Old", jednak ciągle uczę się nowych rzeczy i mam nadzieję, że to słychać. Doświadczenia nie mam jeszcze zbyt bogatego, ale pewne przemyślenia już mnie dopadły, więc się nimi podzielę. Chodzi o artykulacje, a konkretnie sposób ich stosowania.

Szybkie wyjaśnienie

Kiedy ktoś zaczyna się interesować pisaniem muzyki z wykorzystaniem wirtualnej orkiestry i programu DAW, prędzej czy później zderzy się z zagadnieniem artykulacji. Upraszczając, chodzi zasadniczo o zmianę charakteru brzmienia danego instrumentu, co w prawdziwym życiu jest wykonywane przez muzyka na podstawie znaków graficznych w partyturze i własnego gustu (w mniejszym stopniu). Widniejące na pięciolinii nuty można zagrać w rozmaity sposób - np. skrzypek może strunę szarpnąć palcem, uderzyć smyczkiem, przeciągnąć w górę lub dół, potraktować drewnianą stroną smyczka itp. Zagrać delikatnie, wydobyć flażolety czy mocno docisnąć smyczek. W zasadzie każda grupa instrumentów może mieć inne warianty artykulacyjne, ale w tym wszystkim chodzi o wzbogacenie brzmienia, tchnięcie w niego życia i dynamiki. Nie da się wszystkiego zagrać legato.

Prawdziwi muzycy mają nad "wirtualnymi" przewagę - zdolności manualne. Mogą i potrafią grać, tak po prostu. To, co normalnie robi skrzypek, grając z nut (czasami wręcz bezwiednie), musimy jakoś "zasymulować" w programie DAW. To na nas ciąży odpowiedzialność, żeby w odpowiednim momencie włączyć vibrato o odpowiednim natężeniu i częstotliwości, to my musimy "przeskoczyć" z grania spiccato do flautando. Można to robić na dwa sposoby, które pokrótce omówię.

Osobne ścieżki

Jest to zdecydowanie prostszy, a także zasadniczo czytelniejszy sposób. Dla każdej artykulacji każdego instrumentu tworzymy osobne ścieżki. I jeśli jakiś fragment ma być grany pizzicato, po prostu przenosimy go na odpowiednią ścieżkę.

Zdecydowanym plusem tej metody jest jej czytelność - każdej chwili wiemy, które nuty są grane w jaki sposób. Dodatkowo możemy osobno miksować poszczególne artykulacje, co bywa przydatne, bo np. w niektórych artykulacjach głośność zależy głównie od parametrów ekspresji i modulacji (zwykle artykulacje "długie", takich jak flautando czy legato), a w niektórych wyłącznie od velocity (w artykulacjach krótkich, takich jak spiccato czy staccato). Przełączenie artykulacji na jednej ścieżce powoduje, że raz brzmi ona głośno, a raz cicho - jeśli jednak mamy osobne ścieżki, po prostu ściszymy czy pogłośnimy jedną z nich.

Bywa i tak, że niektóre artykulacje w naszej głównej bibliotece orkiestrowej nie brzmią najlepiej i wtedy można wykorzystać inną bibliotekę, w której akurat te artykulacje są świetne.

Minusy, jakie mi się nasuwają, to - mimo zwiększania czytelności kompozycji - zmniejszenie czytelności w samym programie DAW. Więcej ścieżek to więcej przesuwania w pionie, to kłopot w ogarnięciu jednym rzutem oka bardziej "gęstych" fragmentów. Wprawdzie można wspomagać się tutaj "folderami" i grupować poszczególne sekcje, zwijać je i rozwijać, ale to są te dodatkowe, małe ruchy i kliknięcia, których po całym dniu można mieć dość.

Mały minusik można zanotować za to, że każda ścieżka musi mieć przypisaną osobną instancję instrumentu, co w przypadku bogatszych aranżacji wpływa na zużycie pamięci - ale jeśli używamy bibliotek dla Kontakta, można utworzyć sobie odpowiednie zestawy i podpinać do nich ścieżki na różnych kanałach MIDI.

Przełączanie artykulacji

Alternatywą jest posiadanie dla każdego instrumentu jednej ścieżki i przełączanie artykulacji w zależności od miejsca w utworze. Czyli pierwsze takty pizzicato, potem melodia grana legato i końcówka staccato. Mamy wówczas "czystą" sytuację - pierwsze skrzypce mają swoją ścieżkę i cokolwiek ma być przez nie grane, znajduje się właśnie tam (dla osób tworzących partyturę jest to spore ułatwienie, nie muszą sztucznie scalać ścieżek, aby wygenerować komplet nut dla danego instrumentu). Łatwiej jest to odsłuchiwać (przy dobrej implementacji przełączania artykulacji), bo wystarczy włączyć solo na pojedynczym śladzie. Po zbalansowaniu głośności między fragmentami zależnymi od velocity a tymi sterowanymi modulacją i ekspresją, spada liczba suwaków w mikserze, co zwykle ułatwia miksowanie. Do pamięci ładowana jest tylko jedna instancja instrumentu, więc jest to także oszczędność pamięci.

Z tym ostatnim nie do końca mogę się zgodzić, bo zwykle ładuje się po prostu brzmienie "multi-articulation", gdzie znajdują się WSZYSTKIE przewidziane przez producenta artykulacje, a mało kiedy użyjemy ich wszystkich - sporo więc próbek znajduje się w pamięci nadmiarowo. Nieużywane artykulacje da się zwykle usunąć, ale przyznam, że mało kiedy mi się chce to robić - z lenistwa przygotowałem sobie po prostu zestawy "lekkie", gdzie jest dużo mniej artykulacji.

Aby korzystać z przełączania artykulacji, nie trzeba zasadniczo żadnych specjalnych funkcji programu DAW - robi się to bowiem zwykłymi nutkami, które po prostu "rysujemy" w piano-roll. Jest to jednak irytujące, bo po pierwsze, aby zmiana artykulacji nastąpiła, kursor odtwarzający musi "przejść" przez te specjalne nutki (żeby wysłały się one do instrumentu). Jeśli ich nie wyślemy, instrument zagra ostatnią ustawioną artykulacją, co może być zupełnie inne od oczekiwań.

Dlatego czołowe programy DAW, jak Logic, Cubase czy Studio One mają wbudowane specjalne narzędzia, służące do zarządzania artykulacjami.

Artykulacje w Cubase - Expression Maps

W tym programie mamy do czynienia ze specjalnymi mapami ekspresji. Definiujemy w nich dla poszczególnych instrumentów, która "nuta przełączająca" odpowiada za jaką artykulację (np. C-2 to legato, a E-1 - spiccato). Mając taką mapę przypisaną do ścieżki, możemy teraz "narysować", że od jednego momentu kompozycji do drugiego ma być stosowana taka artykulacja, a w innym miejscu - zupełnie inna. Cubase w oparciu o mapę ekspresji po prostu wyśle w odpowiednim momencie "nutkę przełączającą" skojarzoną z bieżącą artykulacją i usłyszymy to, co trzeba.

Tak to przynajmniej wygląda w teorii, bo praktyka pokazała, że nie jest różowo. Definiowanie map ekspresji jest dość skomplikowane, a chociaż zwykle cały mechanizm działa, to czasem coś się nie przełączy (zwłaszcza jeśli przemieszczamy kursor), czasem mimo ewidentnego przechodzenia kursora przez zmianę artykulacji ona nie następuje. No, czary jednym słowem. Ponoć to specyfika wersji 10.5, jeśli wierzyć wątkom na forum, w wersji 10 podobno działało to lepiej. Może wersja 11 coś tu poprawi, przekonamy się pewnie w najbliższych dniach.

Druga rzecz to kiepska czytelność panelu do przełączania - jeśli instrument obsługuje sporo artykulacji (np. 20, jak w BBC SO), to robi się niezłe zamieszanie. Cubase bowiem każdą artykulację trzyma w osobnym wierszu, a wierszy robi się w tym wypadku 20, a są prezentowane na stosunkowo małej przestrzeni.

Co ciekawe, Cubase nie umieszcza żadnych dodatkowych nutek w piano-roll, wysyła je jakoś osobno. Z jednej strony to fajnie, bo nie zaciemnia nam notacji czysto muzycznej, ale z drugiej komplikuje możliwość łatwego przeniesienia do innego programu DAW - po prostu artykulacje trzeba będzie pracowicie ustawiać na nowo...

Artykulacje w Studio One - Key Switches

Funkcjonalność ta pojawiła się w tym roku, w wersji 5.0 i od razu "chwyciła mnie za serce". Przede wszystkim jest banalnie prosta - zarówno przypisywanie nazw do "nut przełączających", jak i "rysowanie" artykulacji we wbudowanym edytorze. W odróżnieniu od Cubase'a, jest tu tylko pojedyncza linia, co wydaje się logiczniejsze - w końcu instrument może grać tylko jedną artykulacją na raz, prawda? Prościej rysować, prościej przesuwać granice, prościej się w tym orientować.

Studio One do przełączania używa "normalnych" nut (widać je w piano-roll i w razie czego mogą być wyeksportowane), ale zabezpiecza je specjalną "strefą", przez co nie podlegają np. transpozycji i nie są widoczne w edytorze nutowym (za to mogą służyć jako źródło oznaczeń artykulacyjnych). Widać, że ktoś w PreSonus przemyślał dokładnie całą rzecz. Aż szkoda, że do poszczególnych artykulacji nie można ręcznie przypisać kolorów.

Czego używam?

Życie pokazuje, że oba podejścia znajdują zastosowanie. Czasem - było tak np. podczas pracy nad kompozycją Bernsteina, sprawdzają się świetnie key switches. Czasem - jak przy "Grze o tron" - lepiej porozbijać artykulacje na osobne ścieżki. Osobiście, odkąd wróciłem do Studio One 5, częściej wybieram przełączanie, bo po prostu key switches działają bez pudła i są bardzo wygodne. Łatwiej jest eksperymentować, jednym kliknięciem przełączając dla paru nut artykulację w piano roll, zamiast tworzyć osobną ścieżkę, ładować tam instrument, wywalać zbędne artykulacje i kopiować tam tych samych parę nutek. No i oszczędzamy sobie suwania w pionie, co mnie osobiście zawsze cieszy.

Teraz cała nadzieja w Steinbergu, żeby mapy ekspresji zaczęły bezbłędnie działać w wersji 11. Trzymam kciuki!

wtorek, 10 listopada 2020

[Cubase] Co nowego będzie w wersji 11?

Premiera nowego Cubase 11 pewnie jeszcze w tym tygodniu, a nawet jeśli nie, to pewnie w listopadzie. Steinberg niczego nie zdradza, ale na podstawie dokumentacji do wersji beta, która to dokumentacja krąży po sieci, można wysnuć pewne przypuszczenia co do nowości:

  • edytor midi - możliwość uwzględniania skali (utworu lub dowolnej ustawionej)
  • edytor midi - krzywe CC (nareszcie!), uproszczenie obsługi pitch-bendu
  • edytor midi - możliwość wyświetlania wysokości dźwięków na paskach (eventach)
  • edytor midi - usuwanie nut dwukrotnym klikiem
  • edytor midi - usprawnione kopiowanie/wklejanie wartości kontrolerów
  • liczne usprawnienia w edytorze nutowym (w tym kolorowanie nut w zależności od np. kanału, wysokości, velocity; wsparcie dla dwóch nowych czcionek muzycznych, lepsze renderowanie do publikacji)
  • nowy widok szczegółów dla Maximizera w Channel Strip
  • efekt Multiband Imager (wielopasmowe kontrolowanie stereofonii, coś jak iZotope Imager 2)
  • efekt Frequency 2 z funkcją dynamicznej korekty częstotliwości
  • efekt Squasher (wielopasmowy efekt)
  • miernik Supervision Metering (zaawansowany miernik poziomu, w tym LU/LUFS zgodnie z EBU R 128, z analizą FFT, oscyloskopem, spektrogramem, chromagramem, miernikiem fazy, kontrolą stereofonii itp.)
  • ulepszona wersja ścieżki Samplera (np. LFO dla parametrów samplera - w sumie nie używam Samplera, ale czytając o zmianach w tej wersji wygląda to już na bardzo zaawansowany instrument)
  • eksport audio w kolejkach (do 20 tasków na raz)
  • w Windows 10 - wsparcie dla różnych DPI ekranu
  • usprawnione wsparcie dla ARA 2.0
  • usunięcie formatów Wave64 oraz WMA

Jestem ciekaw, czy wszystko okaże się prawdą - wydaje się, że tak, bo dokumentacja wygląda na oryginalną. Mnie bardziej jednak interesuje, czy zostały poprawione mapy ekspresji - chociaż przyznam, że krzywe przy edycji kontrolerów CC MIDI też wyglądają obiecująco. Pożyjemy, zobaczymy.

poniedziałek, 9 listopada 2020

[G] Elmer Bernstein - Siedmiu wspaniałych

No i niech mi ktoś wmawia, że światem nie rządzi przypadek. Jechałem w sobotę rano na zakupy, w radiu ustawiona stacja z muzyką filmową. I nagle TEN motyw, znany od dzieciństwa. Przed oczami staje preria, niebieskie niebo, kaktusy. Na tle horyzontu siedem sylwetek, w kapeluszach i na koniach. Jakże to działało na dziesięciolatka! A muzyka została w sercu na zawsze.

Została zaś tak skutecznie, że "łaziła" za mną przez całą sobotę. I niedzielny poranek. W końcu pomyślałem - w sumie, mam wirtualną orkiestrę, trochę doświadczenia też już zdobyłem... może by nagrać własną wersję? Znalazłem na Spotify nagranie, więc nie pozostało nic innego, jak zabrać się za robotę.

Tym razem zupełnie świadomie wybrałem Studio One 5. Po prostu key switches działają DUŻO lepiej od map ekspresji w Cubase, a tutaj planowałem często przełączać artykulacje. Charakter utworu jest taki, że główna melodia, grana legato, przeplata się z fragmentami bardzo energicznymi, gdzie trzeba krótkiej artykulacji. Rozdzielać jednego brzmienia na wiele ścieżek nie chciałem, bo i tak gra pełna orkiestra, więc miałbym tego zbyt dużo (jak na moje wymagania).

Wbrew obawom (pamiętam do teraz problemy podczas aranżowania muzyki z "Gry o tron") wszystko poszło jak po maśle. Studio One 5 nie sprawiło żadnych nieprzyjemnych niespodzianek, a key switches działały genialnie i bez pudła. Dość szybko odszedłem od początkowego pomysłu, by utwór oprzeć głównie o smyczki i z iteracji na iterację przybywało "dęciaków". Doszło nawet do tego, że wykorzystałem nawet pikolo, żeby melodia była ładnie grana także w wysokich rejestrach.

Szczególnie zadowolony jestem z "blach" - wreszcie udało mi się pożenić wszystkie sekcje i do tego dobrać odpowiednie artykulacje. Chyba po raz pierwszy poczułem, że te sekcje zaczynają powoli grać "jak prawdziwa orkiestra" i to było bardzo budujące uczucie.

Pewnie będę się z tego śmiał za jakiś czas, ale obecnie uważam, że ze wszystkich moich utworów "orkiestrowych" ten jest przygotowany najstaranniej i najbardziej świadomie - na tyle, na ile mam obecnie wiedzy i doświadczenia. A jednocześnie już dawno nie pracowało mi się tak przyjemnie - na nic nie musiałem się zżymać, wszystko pasowało, a jedynym zgrzytem było od czasu do czasu "przytkanie się" komputera przy odtwarzaniu co "gęstszych" fragmentów. Aż się chce zaaranżować coś więcej!

Tymczasem zapraszam do wysłuchania mojej wersji motywu przewodniego z westernu "Siedmiu wspaniałych" Elmera Bernsteina:

[G] stRing - Error in line 10

W związku z sobotnią publikacją na łamach Atari On-Line pojawiły się liczne komentarze (na szczęście pozytywne), a jeden ze znanych na scenie atarowskiej twórców, Michał “stRing” Radecki, podpuścił mnie, żebym zrobił cover jednego z jego utworów. W sumie rzadko mi się zdarza taka sytuacja, zwykle to ja proszę o pozwolenie, więc choć początkowo nie planowałem się w weekend zajmować muzyką, to jednak postanowiłem poświęcić pół nocy i "pobawić się" jednym ze wskazanych utworów. A padło na "Error in line 10".

Do dyspozycji miałem plik sap, więc pierwszą rzeczą było przekonwertowanie go na format mid i uporządkowanie tempa w DAW. Potem miałem od razu zabrać się za przypisywanie brzmień, ale jednak trzeba było dłuższą chwilę przesiedzieć na "czyszczeniu" - łączeniu nutek, usuwaniu różnych drobnych "zanieczyszczeń MIDI", jak to nazywam. Niestety, po konwersji z formatu sap muzyczki są zwykle pełne takich dziwnych "brudów".

W końcu zacząłem przesłuchiwać kolejne ścieżki i rozdzielać je między poszczególne brzmienia. Ostatecznie przygotowałem jeszcze parę ścieżek, których w oryginale nie było, m. in. arpeggia i wokalizy. Całość dołączyła do Atari Covers i prezentuje się następująco:

Jak wykryć BPM i tonację w utworze?

Nie wiem, jak to jest w przypadku innych osób parających się muzyką, ale mnie zaskakująco często potrzebna jest wiedza, jakie tempo (a czasem i tonację) ma jakiś plik wav czy mp3. Szczególnie przydatne staje się to, kiedy aranżujemy istniejący już utwór, ewentualnie chcemy do własnej kompozycji dodać np. perkusjonalia. W sytuacji, gdy wspomniane pliki dźwiękowe nie posiadają w metadanych informacji o tempie, fajnie byłoby to tempo jakoś wyznaczyć.

Zasadniczo niby DAW-y powinny posiadać odpowiednie narzędzia, np. FL Studio ma bardzo wygodną funkcję analizującą pliki pod kątem tempa:

Warto jednak posiadać dodatkową możliwość sprawdzenia liczby BPM. Uruchamianie drugiego DAW-a w tej sytuacji wydaje się dość ekscentryczne, pokażę Wam zatem inne narzędzia, małe i stosunkowo szybkie.

HoRNet SongKey Mk3

Jest to zdecydowanie najprostsze rozwiązanie, jeśli już siedzimy w jakimś DAW, bowiem jest to po prostu wtyczka VST. Zapinamy ją na kanale, gdzie mamy wrzucony "nieznany" plik dźwiękowy i włączamy odtwarzanie. Poza wykryciem tempa oraz tonacji, plugin próbuje też wykrywać na bieżąco odgrywane akordy, co również może być przydatne, więc myślę, że do typowo coverowej pracy jest to bardzo dobre narzędzie. Zakupić je można w cenie niespełna 13 euro na stronie producenta, co uważam za adekwatną cenę, a samą wtyczkę za przydatną.

AbyssMedia BPM Counter

To już dość stary program, którego podstawową zaletą jest to, że jest w miarę szybki w analizowaniu plików. Robi to jednak dość nieprecyzyjnie, a często wręcz nie pokazuje żadnych wartości, trudno jest mi go zatem polecić jako użyteczne narzędzie pracy, bardziej jako koło ratunkowe - nie zaszkodzi go mieć pod ręką na wszelki wypadek. Program działa w bardzo prosty sposób - po uruchomieniu wskazujemy folder z plikami dźwiękowymi, a program przeskanuje znalezione pliki i pokaże ich parametry. Poza możliwością wykrywania liczby uderzeń na minutę (czyli BPM) i ewentualnym zapisaniem tego w metadanych plików, niczego więcej się tutaj nie znajdzie, chociaż w aplikacji znajdziemy przyciski do konwersji, zmiany tempa, edytora audio i innych potencjalnie przydatnych funkcji, jednak wymagają one doinstalowania kolejnych aplikacji producenta.

AbyssMedia TuneXplorer

To nowsza i bardziej rozbudowana aplikacja niż BPM Counter. Trzeba za nią zapłacić prawie 19$, jednak warto napisać do twórców, bo mnie udało się zyskać "czarnopiątkową" zniżkę 50%, co już wydaje się ceną adekwatną do prezentowanej tu funkcjonalności. Program - podobne jak przodek, BPM Counter - potrafi wykrywać tempo plików dźwiękowych i zapisywać je w metadanych, ale dodatkowo umie też wykrywać tonację. Zasada działania jest podobna - wskazujemy plik lub folder, a program dokonuje jego analizy. W odróżnieniu od poprzednika, możliwa jest analiza rekursywna, czyli można zaznaczyć folder nadrzędny, a program przeanalizuje jego zawartość łącznie z podfolderami. I tutaj znajdziemy w menu powiązania z innymi narzędziami audio producenta, które trzeba zakupić i zainstalować oddzielnie.

FL Studio 20

Jako że FL Studio ma chyba najbardziej zaawansowany moduł rozpoznawania tempa z wszystkich dostępnych mi DAWów, będzie reprezentowało ten właśnie rodzaj oprogramowania. Moduł detekcji tempa nieco podpiera się współpracą z użytkownikiem, każąc mu zawęzić obszar docelowego tempa do jednego z zakresów. Może to być przydatne, bo powinno dać szansę uniknięcia podwajania tempa. Niestety, cały proces jest ciut długotrwały, jeśli mamy do sprawdzenia większą liczbę plików.

Porównanie

Z ciekawości postanowiłem sprawdzić, jak się powyższe rozwiązania sprawdzają w praktyce. Przygotowałem zestaw utworów, których tempo jest mi doskonale znane (bo sam je ustawiłem), po czym każdy z wymienionych programów mógł się wykazać dokładnością i skutecznością.

Efekty nie powalają. Niestety, okazuje się, że wykrycie tempa nie jest tak banalnym zadaniem, jak by się mogło wydawać - w zasadzie żaden z przedstawionych programów nie zdał egzaminu na piątkę. Najbliżej całkowitego sukcesu był SongKey od HoRNet - wprawdzie dwóch utworów nie udało mu się rozpoznać, ale tak naprawdę po prostu podwoił ich właściwe tempo, więc teoretycznie wszystko się zgadza. Nieźle poradziły sobie tuneXplorer i FL Studio 20, ten pierwszy ciut lepiej, bo nie trafił kompletnie tylko jednego utworu, dwa zaś podwoił tak jak SongKey (i to te same). Najgorzej wypadł BPM Counter, który w zasadzie trafił tylko dwa razy, przy czym jedno z tych trafień było podwojone.

Słowo na koniec

Uzyskane wyniki trzeba traktować mocno orientacyjnie. Czasem wartości mogą być podwojone, czasem rozmijać się z rzeczywistymi o 1-2 uderzenia na minutę, czasem być kompletnie nieprawidłowe. Dodatkowo warto zauważyć plusy i minusy każdego rozwiązania: SongKey sprawdzi się świetnie, jeśli chcemy wykryć tempo fragmentu wstawionego do DAW; jeśli używamy FL Studio 20, to ma ono całkiem sprawnie działające narzędzie detekcji tempa. Oba te rozwiązania są powolne, bo trzeba uruchomić DAW, wrzucić do niego badane pliki, dodać plugin albo uruchomić funkcję detekcji. W przypadku chęci sprawdzenia wielu plików lepiej skorzystać z tuneXplorera, który umożliwia w miarę precyzyjne obliczenie tempa wielu plików jednocześnie, co przy wyszukiwaniu czy uzupełnianiu informacji o wielu samplach może być bardzo pomocne. BMP Counter w zasadzie należy traktować jak ciekawostkę - czasem zadziała, ale w większości wypadków jest z tym słabo.

Przetestowałem jeszcze kilka tzw. managerów plików audio, czyli m.in. ADSR Sample Manager oraz Soundly, jednak ten pierwszy nie potrafił w ogóle wyznaczyć tempa ani tonacji (mimo że w interfejsie użytkownika widniały odpowiednie kolumny, pozostały one jednak puste), a drugi chyba w ogóle nie ma takiej funkcji. Jeśli ktoś zna podobnego typu narzędzie, które sprawdza się w praktyce, proszę o zostawienie wiadomości w komentarzu.

czwartek, 5 listopada 2020

Covery z Atari - prościej nie można

W kwietniu tego roku opisałem, jak w miarę łatwo przygotować cover muzyki z "małego" Atari. Okazuje się, że to, co jest w miarę proste dla informatyka i programisty, niekoniecznie musi być takie dla muzyka, stąd pojawiające się kilkukrotnie prośby o wyjaśnienie, w jaki sposób zdobyć te upragnione pliki midi, dzięki którym odpada duża część roboty związana z przenoszeniem atarowskich muzyczek na "poważny grunt" DAW. Fakt, że zdobycie wszystkich potrzebnych narzędzi, utworzenie pliku wsadowego i ogarnięcie całości to nie jest przysłowiowa bułka z masłem - choć nie czarujmy się, nie jest to też jakaś wiedza tajemna.

A stąd można pobrać duże archiwum plików SAP, jeśli ktoś lubi słuchać muzyki z ośmiobitowego Atari

Postanowiłem zatem ułatwić życie wszystkim spragnionym zabawy w tworzenie coverów i po prostu skonwertowałem wszystkie posiadane pliki sap na format mid, gotowy do dalszego wykorzystania. Nie wnikam tutaj, czy stworzony w ten sposób cover jest mniej czy bardziej wartościowy od zrobionego wyłącznie "ze słuchu" - moim zdaniem, liczy się efekt końcowy. Żeby nie było tak do końca różowo, posiadanie pliku mid po konwersji nie oznacza, że można tylko podpiąć instrumenty i cover gotowy. Co to, to nie - często trzeba się sporo nasiedzieć i nie raz, i nie dwa miałem wrażenie, że nagranie utworu ze słuchu trwałoby krócej niż "rzeźbienie" w tych dziwnych nutkach, które wychodzą z konwertera. Trzeba bowiem pamiętać, że twórcy muzyki na "małe" Atari stosowali często wiele sztuczek, dzięki którym na czterech kanałach (a zwykle trzech, bo dwa były często łączone w jeden, w celu wydobycia lepszego basu) można było pomieścić i bas, i akompaniament, i melodię, i perkusję, i jeszcze jakieś "przeszkadzajki". Czasem też stosowano różne "triki" do uzyskiwania glissando czy innych efektów, które to triki mogą wprowadzić w nutach sporo zamieszania. Najczęściej zdarza się tak, że pojedynczy dźwięk jest "poszatkowany" na kilka (-naście, -dziesiąt) nutek, które później trzeba usuwać czy sklejać.

Z uwag praktycznych dodam, że rzadko kiedy konwerter dobrze dobiera tempo do metrum. Oznacza to tyle, że po wczytaniu pliku mid do DAW nutki "nie pasują" do odpowiednich miejsc w takcie - praktycznie zawsze musiałem "rozciągać" czy "ściskać" klipy, aby dopasować je do siatki. Oczywiście, jeśli ktoś nie potrzebuje kwantyzacji i nie zamierza pracować "z klikiem" metronomu, to może mu to nie przeszkadzać, ja jednak czuję wewnętrzną awersję przed poprzesuwanymi nutami. Bardzo łatwo więc na pewno nie jest, ale przynajmniej odpada czas spędzony na konfigurowaniu i odpalaniu skryptów.

Lekko zmodyfikowany skrypt konwertujący, dostosowany do wywołania w pętli i zachowania struktury katalogów

Z oczywistych względów nie przeglądałem i nie przesłuchiwałem całości, więc nie ręczę, że podczas konwersji wszystko poszło dobrze. Jest tu też pewnie pełno muzyczek mocno takich sobie, ale na to się już nic nie poradzi; na pewno też nie ma muzyczek z wszystkich gier, miałem do dyspozycji 5,3 tysiąca plików sap. Za to raczej te najbardziej znane powinniście tu znaleźć.

Archiwum skonwertowanych plików, około 50MB: pobierz