Web AudioProjekt własnyNext.js

Jak zrobić instrument, który działa w przeglądarce i nie wymaga niczego umieć?

Projekt własny: pad muzyczny z 16 padami, trzema trybami odtwarzania, wizualizacją dźwięku i nagrywaniem sesji. Wszystko w przeglądarce, bez instalacji.

Klient
Projekt własny
Rok
2024
Zakres
Koncepcja, UX, kod, warstwa audio
Interaktywny Pad MuzycznyPad muzyczny · musicpad-mainly.vercel.app

Interaktywny Pad Muzyczny to mój projekt własny i jednocześnie sprawdzian tego, jak daleko da się zajść z dźwiękiem w przeglądarce. Bez wtyczek, bez instalacji, bez konta.

Powstał instrument z 16 padami, trzema trybami odtwarzania, wizualizacją dźwięku i nagrywaniem sesji, oparty na Web Audio API i Tone.js.

16
programowalnych padów
3
tryby odtwarzania: normalny, pulsujący, ciągły
0
instalacji potrzebnych do zagrania pierwszego dźwięku

Przeglądarka nie jest oczywistym miejscem na instrument

Dźwięk w przeglądarce ma dwa problemy naraz. Techniczny: opóźnienie między naciśnięciem a dźwiękiem musi być na tyle małe, żeby dało się grać do rytmu. I projektowy: narzędzie muzyczne zwykle zakłada, że użytkownik już coś umie.

  • Zbyt duże opóźnienie zamienia instrument w zabawkę, w której nie da się trafić w rytm.
  • Interfejs oparty na myszce ogranicza do jednego dźwięku naraz.
  • Osoba bez przygotowania muzycznego potrzebuje zagrać coś sensownego w pierwszej minucie, inaczej zamyka kartę.

Instrument, który wymaga instrukcji, przegrywa z instrumentem, na którym da się przypadkiem zagrać coś, co brzmi dobrze.

Szesnaście padów, klawiatura i natychmiastowa reakcja

Warstwa dźwiękowa stoi na Web Audio API z Tone.js, co pozwala trzymać opóźnienie na poziomie akceptowalnym do gry. Interfejs to siatka 16 padów, każdy z przypisanym dźwiękiem.

Pad muzyczny z siatką 16 padów i wizualizacją fali dźwiękowej
Interfejs: 16 padów, wybór instrumentu i wizualizacja dźwięku

Trzy tryby zamiast jednego sposobu grania

Tryb normalny odtwarza dźwięk raz. Pulsujący powtarza go w rytmie. Ciągły trzyma go, dopóki pad jest aktywny. Te trzy zachowania wystarczają, żeby z pojedynczych dźwięków dało się złożyć coś, co ma strukturę.

Sterowanie z klawiatury zmienia to, co da się zagrać

Myszka obsługuje jeden pad naraz. Klawiatura pozwala trzymać kilka dźwięków jednocześnie i grać obiema rękami, czyli robić to, po co w ogóle sięga się po pad.

Wizualizacja i nagrywanie

Fala dźwiękowa pokazuje, co dzieje się w danym momencie, a nagrywanie pozwala zapisać sesję i wyeksportować ją. Bez tego drugiego całość zostałaby zabawką, a nie narzędziem.

Instrument, który zaczyna się od kliknięcia w link

Pad działa w przeglądarce, na 16 padach, z trzema trybami odtwarzania i nagrywaniem. Nie zastępuje programu do produkcji muzyki, ale kasuje wszystko, co zwykle stoi między pomysłem a pierwszym dźwiękiem.

Co jeszcze przy okazji się udało

  • Sterowanie z klawiatury, więc da się grać obiema rękami.
  • Wizualizacja fali dźwiękowej pokazuje, co się właśnie dzieje.
  • Sesję można nagrać i wyeksportować.

Zastanawiasz się, czy dana rzecz da się zrobić w przeglądarce zamiast w aplikacji do zainstalowania? Napisz do mnie. Odpowiedź jest częściej twierdząca, niż się wydaje.

Next.jsTypeScriptWeb Audio APITone.jsTailwind CSS

Specyfikacja projektu

KlientProjekt własny
Rok realizacji2024
Typ projektuNarzędzie interaktywne w przeglądarce
Zakres pracKoncepcja, UX, kod, warstwa audio
Typowy czas realizacjiod 6 tygodni
Zespół1 osoba — bez podwykonawców
TechnologieNext.js, TypeScript, Tailwind CSS, Web Audio API, Tone.js

Co dokładnie obejmowało wdrożenie

  • 16 programowalnych padów muzycznych
  • Trzy tryby odtwarzania dźwięków
  • Biblioteka instrumentów i melodii
  • Wizualizacja fali dźwiękowej
  • System nagrywania i eksportu do MP3
  • Sterowanie za pomocą klawiatury
  • Interaktywny interfejs użytkownika
  • Responsywny design

Dlaczego akurat te technologie

Stack dobieram pod projekt, nie odwrotnie. Poniżej powód, dla którego każdy element znalazł się w tym konkretnym wdrożeniu.

  • Next.js — renderowanie po stronie serwera daje szybkie pierwsze wczytanie i poprawne SEO — w odróżnieniu od aplikacji, które budują treść dopiero w przeglądarce
  • TypeScript — typy wyłapują część błędów zanim kod trafi na produkcję — przy systemie, który ktoś będzie rozwijał za rok, to oszczędność liczona w dniach
  • Tailwind CSS — spójny system odstępów i kolorów bez rozjeżdżających się arkuszy stylów przy rozbudowie

Pytania o ten projekt

Ile kosztowałby projekt podobny do „Interaktywny Pad Muzyczny"?

Projekty z kategorii „narzędzie interaktywne w przeglądarce" wyceniam w ramach usługi „Aplikacje webowe" — od 9900 zł netto. Ostateczna kwota zależy przede wszystkim od liczby ról użytkowników i integracji z systemami zewnętrznymi, nie od liczby ekranów. Dokładną wycenę z harmonogramem dostajesz w 48 h po bezpłatnej konsultacji.

Ile trwa realizacja takiego projektu?

Typowy czas realizacji dla tego rodzaju wdrożenia to od 6 tygodni. Harmonogram z kamieniami milowymi ustalam przed startem, a postęp pokazuję co tydzień — każdy etap wymaga Twojej akceptacji, zanim przejdziemy dalej.

Kto realizował ten projekt?

Cały projekt — od mapowania procesu, przez projekt interfejsu i kod, po wdrożenie — prowadziłem osobiście. Nie pracuję z podwykonawcami, więc masz jeden punkt kontaktu przez całą współpracę i po niej.

Czy kod projektu należy do klienta?

Tak. Po opłaceniu ostatniej faktury przekazuję pełne prawa do kodu i dostęp do repozytorium. Nie uzależniam klientów od siebie — projekt można rozwijać samodzielnie albo z innym zespołem.

Potrzebujesz czegoś podobnego?

Stanisław
Mainly · custom web development

Buduję aplikacje webowe i systemy dla firm - od projektu po wdrożenie. Specjalizuję się w Next.js, Supabase i integracjach z zewnętrznymi serwisami. Każdy projekt obsługuję osobiście.

Masz podobny proces do zautomatyzowania?

Bezpłatna rozmowa - 30 minut. Powiem wprost, czy warto budować system i ile by to kosztowało w Twoim przypadku.

Umów rozmowę ↗
Bezpłatna wycenaOdpowiadam w 24 hNapisz do mnie