= Dokument wizji projektu Harmonia
:toc:
:author: Robert Bendun
:email: robben@st.amu.edu.pl
:revnumber: 0.1.0
:revdate: 2023-10-25
:nofooter:
// Polish translation, courtesy of Łukasz Dziedziul <l.dziedziul@gmail.com> with updates via Matthew Blissett <mblissett@gbif.org>
:appendix-caption: Dodatek
:appendix-refsig: {appendix-caption}
:caution-caption: Uwaga
:chapter-signifier: Rozdział
:chapter-refsig: {chapter-signifier}
:example-caption: Przykład
:figure-caption: Rysunek
:important-caption: Ważne
:last-update-label: Ostatnio zmodyfikowany
ifdef::listing-caption[:listing-caption: Listing]
ifdef::manname-title[:manname-title: Nazwa]
:note-caption: Notka
:part-signifier: Część
:part-refsig: {part-signifier}
ifdef::preface-title[:preface-title: Wstęp]
:section-refsig: Sekcja
:table-caption: Tabela
:tip-caption: Sugestia
:toc-title: Spis treści
:untitled-label: Bez tytułu
:version-label: Wersja
:warning-caption: Ostrzeżenie

== Historia wersji

[cols="1,2,3,2"]
|===
| Osoba | Data | Zmiany | Wersja

| Robert Bendun | 2023-10-25 | Pierwszy zarys dokumentu | 0.1.0
|===

Stosowane jest https://semver.org/lang/pl/::[wersjonowanie semantyczne] oraz format dat https://en.wikipedia.org/wiki/ISO_8601::[ISO 8601].

== Wymagania biznesowe

=== Kontekst

TODO: Wspomnieć o orkiestrze laptopowej Lambda Ensamble, Musique, jaką klasę utworów może wykonywać aktualnie orkiestra laptopowa.

=== Cele biznesowe i kryteria sukcesu

Celem Harmonii jest umożliwienie wykonywania utworów muzyki algorytmicznej przez orkiestry laptopowe. Utwory dedykowane do wykonywania w Harmoni posiadają następującą charakterystykę:

- konieczność wykonywania zdarzeń muzycznych w sposób równoczesny przez wielu członków orkiestry laptopowej z niezaleznymi komputerami
- brak centralnej jednostki sterującej
- wykorzystanie warstwy sieciowej do dynamicznego tworzenia utworu

Utwory posiadające jedną z cech powyżej nie są możliwe do satysfakcjonującego wykonania bez mechanizmu synchronizacyjnego.
Jest to kluczowa funkcjonalność oferowana przez Harmonię.

Sukces można zdefiniować przez pomyślne wykorzystanie Harmonii w ramach działalności artystycznej orkiestry laptopowej Lambda Ensamble.

=== Ryzyka

- klasa utworów, których implementacja jest możliwa dzięki Harmonii jest na tyle mała, by móc pozostać artystycznie interesującą dla grupy docelowej
- wykorzystywanie dynamicznej warstwy sieciowej może mieć zbyt wysoki koszt implementacji w stosunku do dedykowanych rozszerzeń istniejących środowisk muzyki algorytmicznej
- brak integracji z istniejącymi środowiskami muzyki algorytmicznej zwiększa niszowość rozwiązania

== Wizja rozwiązania

=== Podstawowy zarys rozwiązania

Harmonia jest muzycznym odtwarzaczem umożliwiającym interaktywne wykonywanie synchronicznych utworów muzyki algorytmicznej dla orkiestr laptopowych.

=== Główne funkcjonalności

==== Synchronizacja

==== Webowy interfejs użytkownika

==== Odtwarzacz

==== Rozszerzalność

=== Założenia i zależności

== Zakres i ograniczenia

=== Zakres kolejnych wydań

[cols="1,2,2,2"]
|===
| Funkcjonalność | Wydanie alpha | Wydanie beta | Wydanie pełne

| Synchronizacja
a|
- synchronizacja startu utworu (i jego kolejnych fragmentów)
- synchronizacja lini czasowej odtwarzania (synchronizacja kolejnych momentów)
a|
- synchronizacja wielu ścieżek czasowych w ramach wspólnej sesji wykonywania utworu
|

| Webowy interfejs użytkownika
a|
- podstawowy interfejs użytkownika
- monitorowanie podstawowych parametrów systemu
- uruchamianie odtwarzania
- konfiguracja odtwarzacza i dostarczanie plików audio
- konfigurowalne skróty klawiszowe przypisywane
a|
- przyjazny interfejs użytkownika
a|
- monitorowanie urządzeń w sieci

| Odtwarzacz
a|
- odtwarzanie plików MIDI zgodnie z rytmem wyznaczanym przez mechanizm synchronizacji
a|
- odtwarzanie plików audio (WAV, Ogg) zgodnie z rytmem wyznaczanym przez mechanizm synchronizacji
|

| Rozszerzalność
|
|
a|
- Proof-of-concept utwór z wykorzystaniem dodatkowych interakcji sieciowych poprzez środowisko
|===

=== Ograniczenia

- zależność od infrastruktury sieciowej i jej możliwości
