Dlaczego chciałbym stworzyć taki program?
Ponadto chciałbym nauczyć się języka, który ma szersze zastosowanie niż poznane do tej pory języki skryptowe, zarazem pozwalającym na szybsze tworzenie aplikacji niż C.
Aplikacja dedykowana jest dla wszystkich muzyków tworzących swoje utwory przy użyciu komputera, a w szczególności dla użytkowników systemów z rodziny UNIX.
Aplikacja oparta będzie o wzorzec architektoniczny Model-View-Controller. Poniżej znajduje się model logiczny w postaci diagramu klas UML.
Program będzie można pobrać ze strony internetowej, która będzie ponadto posiadać prosty CMS, pozwalający na dodawanie wpisów przez administratora oraz komentowanie ich przez anonimowych użytkowników. Model bazy jest przedstawiony na poniższym diagramie ERD:
Obecnie istnieją dwa dedykowane dla systemu Linux programy zbliżone przeznaczeniem do opisywanej aplikacji, choć różnią się one podejściem do problemu:
Program planuję napisać w języku Scala, korzystając jednocześnie z napisanych w Javie bibliotek JavaSound oraz Swing. Strona z której będzie można pobrać program, będzie oparta o Ruby on Rails, HTML5 oraz CSS.
Zarówno język jak i biblioteki których planuję użyć mają bardzo dobre dokumentacje oraz przykłady użycia:
Konieczna będzie konsultacja zawartości pisemnej części pracy. Na dzień dzisiejszy nie wiem, czy bardziej istotny jest opis wykorzystanych narzędzi, języków i wzorców projektowych, czy też podłoże historyczne i kulturowe opracowywanego tematu.
W przyszłości będzie możliwe zintegrowanie programu z puginami takimi jak LADSPA, DSSI czy VST oraz edycja i automatyczne wykrywanie tempa utworu. Ma to być zapewnione przez obiektowe podejście do problemu oraz stosowanie wzorców projektowych.