VirtualCut – program wspomagający wycinanie sampli
z plików dźwiękowych

Motywacja i cel aplikacji

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.

Potencjalni odbiorcy

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.

Funkcjonalności aplikacji

Model logiczny

Aplikacja oparta będzie o wzorzec architektoniczny Model-View-Controller. Poniżej znajduje się model logiczny w postaci diagramu klas UML.

Struktura interfejsu użytkownika

VirtualCut - prototypowy projekt interfejsu użytkownika

Strona internetowa

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:

Model ERD

Stan proponowanego tematu

Obecnie istnieją dwa dedykowane dla systemu Linux programy zbliżone przeznaczeniem do opisywanej aplikacji, choć różnią się one podejściem do problemu:

Narzędzia

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.

Materiały i literatura

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.

Możliwość rozbudowy

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.