Aplikacja ułatwiajaca naukę gry na elektronicznym instrumencie klawiszowym
|
|
- Sławomir Nowicki
- 9 lat temu
- Przeglądów:
Transkrypt
1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2011/2012 Praca dyplomowa inżynierska Bartosz Mateusz Kiełbaszewski Aplikacja ułatwiajaca naukę gry na elektronicznym instrumencie klawiszowym Opiekun pracy: Dr inż. Jacek Raczkowski Ocena Podpis Przewodniczacego Komisji Egzaminu Dyplomowego
2 Specjalność: Informatyka Inżynieria oprogramowania i systemy informacyjne Data urodzenia: 21 wrzesnia 1989 r. Data rozpoczęcia studiów: 1 października 2008 r. Życiorys Urodziłem się 21 września 1989 roku w Łodzi. Swoje dzieciństwo spędziłem w Hajnówce (woj. podlaskie). W 2005 roku rozpoczałem naukę w liceum ogólnokształcacym nr 2 w Hajnówce na profilu matematyczno-fizycznym. Po zdaniu egzaminów maturalnych dostałem się na studia dzienne I stopnia, na wydział Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. Podczas studiów wybrana przeze mnie specjalnościa była Inżynieria oprogramowania i systemy informacyjne.... podpis studenta Egzamin dyplomowy Złożył egzamin dyplomowy w dn.... Z wynikiem... Ogólny wynik studiów... Dodatkowe wnioski i uwagi Komisji......
3 Streszczenie Praca ta prezentuje proces tworzenia oraz sposób działania aplikacji ułatwiaja- cej naukę gry na elektronicznym instrumencie klawiszowym. Program korzysta ze standardu MIDI w celu uzyskania komunikacji pomiędzy komputerem, a instrumentem muzycznym. Przedstawione zostana wiadomości systemu MIDI oraz ich rola w aplikacji. Omówione będzie wykorzystanie plików MIDI i zostanie wyjaśnione, dlaczego moga one stanowić dobre źródło utworów muzycznych do wykorzystania przez aplikację. Opisane zostana także problemy, jakie zostały napotkane podczas tworzenia programu oraz sposoby na ich rozwiazanie. W pracy znajduja się także informacje na temat javax.sound.midi i kilku wybranych pojęć muzycznych, których znajomość jest niezbędna do zrozumienia działania aplikacji. Omówione zostana także możliwości aplikacji oraz pomysły na jej dalszy rozwój. Słowa kluczowe: MIDI, SMF, pliki MIDI, pianino, muzyka, fortepian, keyboard, instrument klawiszowy, notacja muzyczna, pianino elektroniczne, klawiatura sterujaca, Java Abstract Title: A helper application for learning to play on an electronic keyboard instrument This B.Sc. Thesis comprises the project and implementation of an application which can help in learning to play on a keyboard instrument. The programme uses the MIDI standard to create a connection between the computer and electronic musical instrument. It includes an overview of MIDI messages, Standard MIDI Files and presents their role in the whole system s creation. The thesis also describes the javax.sound.midi package and several basic musical concepts. Moreover, the work was partly dedicated to the demonstrating application features and the ideas for its future development. Key words: MIDI, SMF, Standard Midi Files, music, keyboard, piano, notes, musical notation, Java
4 Spis treści 1. Wprowadzenie Cel pracy Teoria Teoria muzyczna Notacja muzyczna Klawiatura muzyczna i jej dźwięki Połaczenie instrumentu muzycznego z komputerem Rozpoznawanie dźwięków granych przez użytkownika z użyciem mikrofonu Wysyłanie informacji o zagranych przez użytkownika dźwiękach MIDI Wiadomości MIDI Pliki MIDI Java Java Sound API Implementacja Budowa systemu Łaczenie się z urzadzeniem wejściowym Odbieranie wiadomości MIDI Klasa MidiMessage Klasa ShortMessage Wybrane System Common Messages Wybrane System Real-Time Messages (Wiadomości czasu rzeczywistego) Klasa SysexMessage Klasa MetaMessage Odbieranie wiadomości o wciśniętych klawiszach Klasa opisujaca dźwięk Wysyłanie wiadomości MIDI Wczytywanie plików MIDI Sprawdzanie poprawności gry Część wizualna System współrzędnych używanych w programie Zmiana wielkości grafik Rysowanie schematu fortepianu na ekranie Dwa rodzaje widoków udostępniane przez program Główny sposób wyświetlania nut Inne opcje Wybór trybu gry Wybór ścieżek MIDI do grania Zmiana szybkości odtwarzania utworu Zmiana wielkości pola wyświetlajacego nuty Wybór syntezatora, cechy syntezatorów Zmiana wysokości dźwięków w utworze Przewijanie utworu Wygładzanie krawędzi (antyaliasing)
5 Spis treści ii Pliki konfiguracyjne Pliki językowe Raportowanie błędów Podsumowanie Możliwości rozwoju aplikacji Zakończenie Bibliografia
6 1. Wprowadzenie Nauka gry na instrumentach muzycznych wymaga poświęcenia dużej ilości czasu. Wiele osób zaczyna uczyć się grać na instrumencie, ale szybko rezygnuje z tego zajęcia. Moim zdaniem powodem takiej sytuacji może być brak zadowalajacych efektów na wczesnych etapach ćwiczeń. Zanim poczatkuj acy muzyk będzie w stanie zagrać jeden ze swoich ulubionych utworów, musi on pokonać barierę jaka stanowi nauka zapisu nutowego (notacji muzycznej). Nowoczesna notacja muzyczna jest efektem wieloletniej ewolucji zapisu muzyki - zawiera elementy majace uzasadnienie historyczne oraz różnice regionalne. Szybkie czytanie zapisu nutowego może stanowić problem dla poczatkuj acych, znakiem tego moga być próby stworzenia standardów, których czytanie może być szybsze takich jak na przykład Simplified Music Notation 1. Popularyzacja komputerów pozwala nam na stworzenie własnych standardów, które nie maja tak silnych ograniczeń, jak te przeznaczone do zapisania na papierze. Możliwe staje się używanie animacji, dźwięków, a nawet analizowanie gry użytkownika. W swojej pracy przedstawię próby stworzenia aplikacji, której zadaniem będzie uproszczenie nauki gry na elektronicznym instrumencie klawiszowym. Ukazany zostanie przykład zapisu muzycznego, którego zrozumienie nie powinno zajać zbyt wiele czasu Cel pracy Celem pracy jest stworzenie aplikacji, będacej w stanie ułatwić poczatkuj acym muzykom naukę gry utworów muzycznych. Program powinien być w stanie wyświetlać łatwe do zrozumienia instrukcje zawierajace informacje, jaki dźwięk i kiedy powinien zostać zagrany; powinien także sprawdzać poprawność gry. Aplikacja powinna być możliwa do uruchomienia na przeciętnym komputerze z systemem Windows i współpracować z możliwe jak największa gama urzadzeń. Chciałbym, by stworzone narzędzie było dość atrakcyjne wizualnie. 1
7 2. Teoria 2.1. Teoria muzyczna Notacja muzyczna Historia współczesnej notacji muzycznej Najstarsze znalezione sposoby zapisu muzyki zostały stworzone około 2000 r.p.n.e. i przetrwały wyryte na tabliczkach w formie pisma klinowego. Historia współczesnej notacji muzycznej zaczyna się, jednak prawdopodobnie od powstania notacji cheironomicznej używanej do zapisu wczesnego chorału gregoriańskiego. Nie zapisywała ona dokładnej wysokości dźwięku, a jedynie przybliżony przebieg melodii. Nie zawsze była zapisywana także długość poszczególnych dźwięków, poprawny odczyt muzyki był niemożliwy dla osoby nie znajacej oryginalnego utworu. Najstarszy znany zapis pochodzi z Musica disciplina stworzonego przez Aurelianus Reomensis około 850 r.n.e. Około X wieku n.e. zaczęła rozwijać się notacja diastematyczna, w której możliwe było określenie wysokości dźwięku na podstawie wertykalnego ustawienia neum. Format ewoluował, z czasem do zapisu używany zaczał być system czterech równoległych, poziomych linii - rozwiazanie te jest przypisywane Guido z Arezzo, który opisał swoja wizję w traktacie Micrologus. Nowoczesny zapis z użyciem pięciolinii pojawił się po raz pierwszy we Francji i stał się powszechny do końca XVI wieku. Równolegle wraz z rozwojem sposobu zapisania wysokości dźwięku, rozwijał się zapis długości jego trwania. W De Mensurabili Musica pochodzacym z XIII wieku opisano sześć rodzajów rytmu stosowanego w tym czasie. Franco of Cologne opisał w traktacie Ars cantus mensurabilis pomysł określania rytmu z użyciem kształtu nuty. Użycie taktu stało się popularne do końca XII wieku. Jak widać, sposób zapisu muzyki rozwijał się przez wiele lat. Zawiera on cechy, które nabył w czasie swojej ewolucji, które moga stanowić problem dla poczatku- jacych muzyków starajacych się zagrać szybko swój ulubiony utwór. Przedstawię problemy zwiazane z tym układem w dalszej części pracy. Budowa współczesnej notacji muzycznej Współczesna notacja muzyczna (jej przykład widoczny jest na rysunku 2.1) używa pięciolinii do zapisu dźwięku (rys. 2.2). Pięciolinia pozwala na określanie jedynie względnej wysokości nut, by możliwe było wyznaczenie wysokości dźwięku przed pięciolinia ustawiany jest klucz, określajacy położenie na pięciolinii jednego z dźwięków. Na rysunku 2.3 przedstawiony jest przykład położenia popularnych kluczy na pięciolinii - klucza wiolinowego oraz klucza basowego. Klucz wiolinowy jest kluczem G (określa położenie dźwięku G, ukazane na obrazku 2.5), a klucz basowy jest kluczem F (określa położenie dźwięku F, rys. 2.4). Na pięciolinii oraz nad nia i pod nia zapisywane sa inne elementy notacji muzycznej takie, jak nuty, pauzy,
8 2.1. Teoria muzyczna 3 znaki chromatyczne (zmieniajace tonację utworu, wysokość dźwięków), jednostka metryczna (określajaca długość trwania nut), oznaczenia tempa (element oznaczajacy długość trwania utworu badź liczbę uderzeń metronomu na minutę), oznaczenia dynamiki (określajace siłę dźwięku, stosowane na instrumentach cechujacych się możliwościa wydawania dźwięków o zróżnicowanej głośności) czy oznaczenia artykulacji (określajace sposób wydobywania dźwięku, na przykład legato oznacza sugestię gry dźwięków w płynny sposób - tak by trudno było rozróżnić poszczególne nuty). Rysunek 2.1. Przykład notacji muzycznej (Chopin Preludium A-dur op. 28 nr 7) Rysunek 2.2. Pięciolinia
9 2.1. Teoria muzyczna 4 Rysunek 2.3. Pięciolinia z widocznym kluczem basowym i wiolinowym. Rysunek 2.4. Klucz basowy, zaznaczony dźwięk F. Rysunek 2.5. Klucz wiolinowy, zaznaczony dźwięk G.
10 2.2. Połaczenie instrumentu muzycznego z komputerem Klawiatura muzyczna i jej dźwięki Rysunek 2.6. Klawiatura muzyczna (zawierajaca trzy oktawy) Standardowa fortepianowa klawiatura muzyczna zawiera zwykle 12 klawiszy, pozwalajacych na zagranie wszystkich dźwięków ze skali chromatycznej (dwunastostopniowej). Poszczególne stopnie tej skali oddalone sa od siebie o pół tonu. Dłuższe, białe klawisze reprezentuja dźwięki tworzace skalę muzyczna C-dur (C, D, E, F, G, A, B 1 ). Pozostałe dźwięki nie stanowiace części skali sa wydawane przez krótsze, czarne klawisze; nazwy dźwięków tworzone sa od nazwy sasiaduj acych dźwięków skali C-dur oraz znaku krzyżyka badź bemolu (C /D, D /E, F /G, G /A, A /B ). Dźwięk C czytany jest jako cis (dodajemy do nazwy dźwięku przyrostek -is), a dźwięk G jako ges (dodajemy sufiks -es). Fragment klawiatury muzycznej o szerokości trzech oktaw ukazany jest na rysunku Połaczenie instrumentu muzycznego z komputerem Aplikacja, by mogła spełniać swoja rolę i rozpoznawać nuty grane przez muzyka musi w jakiś sposób komunikować się z komputerem. Wpadłem na dwa sposoby na realizację tego zadania. Pierwszym z nich jest wykorzystanie mikrofonu, nagrywania dźwięków granych przez użytkownika i rozpoznawania ich. Drugim sposobem jest użycie urzadzenia, które poza generowaniem dźwięku byłoby w stanie wysłać nam informacje o zagranych przez użytkownika dźwiękach. Każde z rozwiazań ma swoje wady i zalety Rozpoznawanie dźwięków granych przez użytkownika z użyciem mikrofonu Możliwe jest rozpoznawanie wysokości granych dźwięków z użyciem mikrofonu poprzez wykorzystanie algorytmu Szybkiej transformacji Fouriera (FFT). Rozwia- zanie te ma oczywiste zalety - jesteśmy w stanie uniezależnić działanie aplikacji od używanego instrumentu muzycznego oraz nie jesteśmy zmuszeni do używania żadnych standardów przesyłania danych. Możliwość bezprzewodowej pracy z komputerem jest dodatkowa zaleta. Niestety, rozwiazanie te ma także istotne wady, które sprawiły, iż zrezygnowałem z jego wykorzystania w moim programie. Testujac w praktyce działanie programów jako H. 1 Dźwięk B w Niemczech, Europie Wschodniej i Centralnej oraz Skandynawii bywa oznaczany
11 2.3. MIDI 6 rozpoznajacych dźwięki grane na gitarze elektrycznej 2 odkryłem, że gdy współpracuja one z prostym mikrofonem maja dość spore opóźnienie i sa zbyt niedokładne. Dodatkowa wada może być podatność na zakłócenia otoczenia. Testowałem działanie aplikacji w dość głośnym otoczeniu, co sprawiało dodatkowe problemy. Próbowałem także podłaczać gitarę bezpośrednio do komputera (korzystajac z przejściówki kabla cinch używanego przez gitarę do mini jack), jednak jakość rozpoznawania ciagle nie spełniała moich oczekiwań Wysyłanie informacji o zagranych przez użytkownika dźwiękach Kolejnym rozwiazaniem jest skorzystanie ze standardu MIDI do przesyłania informacji o granych nutach. Standard MIDI jest popularnym rozwiazaniem głównie w elektronicznych instrumentach klawiszowych. Z oczywistych powodów nie jesteśmy w stanie użyć tej technologii w przypadku korzystania z instrumentów akustycznych. Istnieja także inne instrumenty z wyjściem MIDI, na przykład gitary elektroniczne produkowane przez firmę Casio (np. model Casio PG-380). Inne zalety zwiazane z użyciem MIDI do przesyłania informacji do komputera to dość niskie opóźnienie (w porównaniu do podejścia zwiazanego z analiza sygnału) oraz właściwie całkowita bezbłędność przesyłanych informacji (w przypadku zbyt małej ilości próbek sygnału konkurencyjny algorytm FFT może błędnie rozpoznawać składowe częstotliwości). Dzięki wysyłaniu informacji o nutach możliwe staje się generowanie dźwięku nie w samym instrumencie, a w komputerze. Jesteśmy w stanie grać z użyciem syntezatora symulujacego taki instrument, w jakim oryginalnie został zagrany utwór. W elektronicznych instrumentach klawiszowych takich, jak keyboard, czy klawiatura sterujaca, istnienie wyjścia MIDI jest bardzo prawdopodobne. Niestety, w komputerach oraz laptopach wejścia midi sa ostatnio dość rzadko spotykanie, przynajmniej w przypadku modeli nie posiadajacych niezintegrowanej karty muzycznej. Na szczęście nie powinno stanowić to poważnego problemu dla użytkowników, nowoczesne keyboardy zamiast wyjścia MIDI posiadaja często wyjście MIDI USB. Jeśli chcemy do pracy z aplikacja używać urzadzenia z wyjściem MIDI możemy zdecydować się na zakup przejściówki MIDI-USB MIDI MIDI (skrót od Musical Instrument Digital Interface) jest systemem służacym do przekazywania informacji pomiędzy elektronicznymi instrumentami muzycznymi. Został on stworzony w 1983 roku i pozwolił na ułatwienie komunikacji pomiędzy klawiaturami i syntezatorami różnych firm. Umożliwił on uniknięcie efektu ściany syntezatorów - otaczania się muzyków duża liczba syntezatorów wraz z klawiaturami podczas koncertów. Dzięki popularyzacji standardu możliwe stało się korzystanie z jednej badź kilku klawiatur komunikujacych się z kolekcja syntezatorów z użyciem kabla MIDI. Standard MIDI pozwolił na używanie komputerów do tworzenia muzyki, poczatkowo stosowanych głównie w roli sekwencerów (urza- dzeń sterujacych innym urzadzeniem MIDI, na przykład syntezatorem). Standard Na przykład konwerter CL036-USB to MIDI
12 2.3. MIDI 7 MIDI używa wiadomości (ang. messages) do przesyłania informacji. Możliwe jest zapisanie serii wiadomości w formie pliku MIDI. Więcej informacji o standardzie MIDI można znaleźć pod adresem Wiadomości MIDI MIDI 1.0 używa 16 kanałów do przesyłania wiadomości. Kanały używane sa do odróżnienia od siebie głosów badź instrumentów. Pozwala to na kontrolowanie jednocześnie wielu różnych instrumentów jednocześnie. Do każdego z kanałów możemy przypisać ustawienia takie jak rodzaj instrumentu, czy głośność. MIDI w wersji 1.0 definiuje kilka podstawowych rodzajów wiadomości jakie możemy przekazać na każdy z kanałów: Wiadomość zagrania dźwięku (ang. note on) / wiadomość przerwania gry (ang. note off). Wiadomość ta zawiera informację jaka nuta została zagrana (obsługiwane sa dźwięki o częstotliwości od 8,176 Hz do Hz z dokładnościa do półtonu - jesteśmy w stanie przekazać informację o wciśnięciu każdego z 88 klawiszy urzadzenia o układzie klawiatury klasycznego fortepianu). Dodatkowo przesyłania jest informacja o szybkości, z jaka został wciśnięty klawisz (ang. velocity) w zakresie Odtwarzanie dźwięku przerywane jest dopiero po otrzymaniu wiadomości przerwania gry. Jest to jedna z najważniejszych wiadomości wykorzystywanych przez program, dzięki niej wiemy, które klawisze wciska użytkownik. Wiadomość zmiany wysokości dźwięku (ang. pitch-bend). Pozwala ona na zmianę wysokości dźwięku w obrębie dwóch półtonów z dokładnościa do 1/8192 półtonu. Ucho ludzkie ma problemy z rozróżnieniem dźwięków różniacych się od siebie o mniej niż 1/20 półtonu. Dzięki tej wiadomości możliwe jest uzyskanie efektu portamento, czyli łagodnego przejścia między jednym, a drugim dźwiękiem. Wiadomość Control Change. Może ona nieść dość różnorodne informacje, na przykład o zmianie barwy dźwięku, panoramy stereo (ang. panning) badź głośności. Może być także używana do kontroli podświetlanych klawiszy (dostępnych w niektórych keyboardach), a nawet zarzadzania działaniem oświetlenia sceny. Wiadomość Program Change. Używana jest do przesyłania rozkazu zmiany programu (na przykład przydatna przy wyborze instrumentu z bazy syntezatora). Wiadomość Aftertouch. Z użyciem tej wiadomości przesyłane sa dane dotyczace zmiany siły nacisku na klawisz instrumentu - funkcja ta jest niedostępna w tańszych instrumentach muzycznych Pliki MIDI Seria wiadomości MIDI może zostać zapisana w formie pliku MIDI (nazywanego także SMF - Standard MIDI File). Pliki te używaja zwykle rozszerzenia.mid badź (nieco rzadziej).smf. Z powodu, że zawarta jest w nich instrukcja generacji dźwięku, a nie dość dokładny kształt fali dźwiękowej zajmuja one mniej miejsca od standardów zapisu muzyki takich jak, na przykład mp3, czy wave. Minuta muzyki może zostać zapisana w około 10kB danych (podczas, gdy utwór podobnej 4
13 2.4. Java 8 długości zapisany jako plik mp3 potrafi zajać około 1MB danych) - oczywiście sa to dane przykładowe mogace różnić się w zależności od ilości wykorzystanych ścieżek, czy stopnia kompresji pliku mp3. Używane do testów aplikacji pliki MIDI miały wielkość pliku mieszczac a się w zakresie 5-125kB. Mały rozmiar plików MIDI spowodował, iż były one używane jako format zapisu muzyki w czasach, gdy łacza szerokopasmowe nie były jeszcze popularne. Pliki MIDI przeżywały swoja druga młodość na poczatku lat dwutysięcznych, gdy zostały wykorzystane do przechowywania muzyki i dźwięków na telefonach komórkowych. Wykorzystujac wyszukiwarkę internetowa możemy dość łatwo znaleźć wersje popularnych utworów muzycznych zapisanych w tym standardzie - właśnie pliki MIDI sa wykorzystywane przez przedstawiana aplikację jako źródło informacji o nutach zagranych przez użytkownika Java Wybór środowiska oraz języka wpływa mocno na szybkość działania aplikacji, jej przenośność oraz możliwości rozwoju. Założyłem, że program tworzony w ramach tej pracy nie będzie zbyt wymagajacy dla nowoczesnych komputerów - uznałem, że odczyt i analiza niewielkich plików MIDI, komunikacja z elektronicznym instrumentem klawiszowym oraz generowanie prostego dwuwymiarowego obrazu nie powinno stanowić poważnego wyzwania obliczeniowego. Głównym kryterium wyboru stała się przenośność oraz możliwości rozwoju. Nie chciałem być skazany na konieczność kompilowania aplikacji pod różnymi systemami operacyjnymi, zdecydowałem się, więc na wybór jednego z języków kompilowanych do kodu wykonywanego przez maszynę wirtualna (kodu bajtowego). Zastanawiałem się nad wyborem pomiędzy językiem C#, a Java SE. Po dokładniejszym zbadaniu obu opcji odkryłem, że decydujac się na wybór języka programowania Java uzyskam dostęp do paczki javax.sound.midi stanowiacej część Java Sound API bardzo dobrze pasujacej do moich wymagań. Zdecydowałem się na wybór właśnie tej opcji, dodatkowa zaleta jest ewentualna możliwość stworzenia w przyszłości wersji aplikacji na tablety z systemem Android (chociaż w czasie, gdy to piszę brak dobrego wsparcia dla MIDI w tym systemie może stanowić utrudnienie) Java Sound API Java Sound API jest niskopoziomowym interfejsem ułatwiajacym kontrolowanie urzadzeń dostępnych w systemie odpowiedzialnych za odbieranie i generowanie dźwięku. Pozwala on także na komunikację z urzadzeniami korzystajacymi ze standardu MIDI, co jest istotna cecha wykorzystywana przez moja aplikację. Java Sound API zawiera wsparcie dla dźwięku cyfrowego oraz danych MIDI, jest ono zawarte w dwóch paczkach: javax.sound.sampled - Dostarczajacej interfejsy przydatne przy nagrywaniu, miksowaniu oraz odtwarzaniu cyfrowego dźwięku javax.sound.midi - Udostępniajacej interfejsy przydatne przy syntezie MIDI, sekwencjonowaniu oraz przekazywaniu wiadomości oraz zdarzeń MIDI
14 3. Implementacja 3.1. Budowa systemu Łaczenie się z urzadzeniem wejściowym Połaczenie z urzadzeniem wysyłajacym wiadomości MIDI (na przykład elektronicznym keyboardem) uzyskiwane jest z wykorzystaniem paczki javax.sound.midi. Połaczenie jest nawiazywane automatycznie po uruchomieniu programu, bez ingerencji użytkownika. 1 MidiDevice. Info [ ] midideviceinfoarray = MidiSystem. getmidideviceinfo ( ) ; for ( int i = 0; i < midideviceinfoarray. length ; i ++) { try { MidiDevice device = MidiSystem. getmididevice ( midideviceinfoarray [ i ] ) ; 5 Transmitter transmitter = device. gettransmitter ( ) ; transmitters. add ( transmitter ) ; transmitter. setreceiver (new MidiInputReceiver ( ) ) ; 10 device. open ( ) ; (... ) } catch ( MidiUnavailableException e ) { (... ) 15 } } Wydruk 3.1. Łaczenie się z urzadzeniem wejściowym Lista obiektów informacyjnych (MidiDevice.Info) reprezentujacych dostępne urzadzenia w systemie pobierana jest z użyciem funkcji MidiSystem.getMidiDeviceInfo(). Następnie aplikacja próbuje stworzyć Transmitter, poprzez który wiadomości Midi odbierane z urzadzenia wejściowego będa przesyłane dalej, do klasy MidiInputReceiver, która zajmie się ich dokładniejsza analiza. Wszystkie utworzone połaczenia sa zamykane po zakończeniu działania programu Odbieranie wiadomości MIDI Za odbieranie wiadomości otrzymywanych od urzadzenia wejściowego MIDI odpowiada klasa dziedziczaca po interfejsie javax.sound.midi.receiver i implementujaca z tego powodu metodę: 1 void send ( MidiMessage message, long timestamp ) Poprzez t a funkcję klasa jest w stanie odebrać wiadomość MIDI (MidiMessage message) wraz z czasem jej wysłania (long timestamp).
15 3.1. Budowa systemu Klasa MidiMessage Klasa javax.sound.midi.midimessage jest klasa bazowa dla wiadomości MIDI. Korzystajac z niej możemy odebrać treść wiadomości, jej długość oraz status wiadomości określany przez bajt informacji. Dziedzicza po niej klasy ShortMessage, SysexMessage, MetaMessage Klasa ShortMessage Klasa javax.sound.midi.shortmessage reprezentuje wiadomości MIDI, które maja najwyżej dwa bajty. Korzystajac z funkcji getcommand() oraz porównujac ja z wartościami odpowiadajacych pól klasy (takich jak, na przykład ShortMessage.NOTE_OFF = 0x80) jesteśmy w stanie rozpoznać typ odebranej informacji. Używajac funkcji getdata1() oraz getdata2() jesteśmy w stanie łatwo pobrać pierwszy i drugi bajt wiadomości, natomiast funkcja getchannel() zwróci nam informację o kanale, którego informacje dotycza. Poniżej przedstawiam listę przykładowych wiadomości wraz z opisami: NOTE ON (0x90) Wiadomość informujaca o rozpoczęciu grania nuty. Wraz z nia przesyłana jest informacja o kanale, którego ona dotyczy (0-15), zagranej nucie (0-127) oraz velocity, sile uderzenia w klawisz instrumentu (0-127). NOTE OFF (0x80) Wiadomość oznaczajaca zaprzestanie grania nuty. Przesyłana jest informacja o użytym kanale (0-15), numerze oznaczajacym zagrana nutę (0-127) oraz velocity (0-127). Wartość velocity w zależności od rodzaju urzadzenia może zawsze przyjmować stała wartość (na przykład zero), ale czasem może też reprezentować prędkość puszczania klawisza instrumentu (może to pozwolić, na przykład na kontrolę czasu zanikania dźwięku). POLY PRESSURE (0xA0) Wiadomość określajaca zmianę siły nacisku na klawisz instrumentu już po zagraniu samego dźwięku, a przed jego zupełnym puszczeniem, określana czasami jako polyphonic aftertouch. Może być wykorzystywana na przykład do uzyskania dodatkowych możliwości ekspresji dźwięku takich jak Vibrato ( drżenie głośności instrumentu). Funkcja ta pojawia się w bardziej profesjonalnych instrumentach muzycznych, przez wiele lat jej wersja polifoniczna (wysyłajaca informacje dotyczace każdego z klawiszy) była trudna do stworzenia z powodu konieczności wysyłania dużych ilości danych. Wraz z wiadomościa przesyłana jest informacja na temat użytego kanału (0-15), zagranej nuty (0-127) oraz siły nacisku na klawisz instrumentu (0-127). CHANNEL PRESSURE (0xD0) Monofoniczna wersja powyższej wiadomości (POLY_PRESSURE). Przez producentów sprzętu muzycznego nazywana jako monophonic aftertouch badź po prostu aftertouch. W wiadomości zawarta jest informacja dotyczaca użytego kanału (0-15), zagranej nuty (0-127) oraz siły nacisku na klawisz instrumentu (0-127). W zależności od implementacji siła nacisku może dotyczyć średniej siły z jaka wciśnięte
16 3.1. Budowa systemu 11 sa klawisze lub przesyłana jest największa wartość wśród wciśniętych klawiszy instrumentu. CONTROL CHANGE (0xB0) Wiadomość CONTROL_CHANGE pozwala na zmianę ustawień kanału (takich, jak na przykład głośność, czy ustawienia panoramy stereo). Przesyłane sa informacje opisujace, którego kanału ta zmiana dotyczy (0-15), identyfikator ustawienia do zmiany (0-119) oraz ustawiana wartość (0-127). Identyfikatory nie moga zostać wykorzystane, gdyż sa zarezerwowane dla Channel Mode Messages (opisane później). PROGRAM CHANGE (0xC0) Wiadomość używana do zmiany programu, określajacego np. rodzaj emulowanego instrumentu. Przesyłana jest informacja o kanale, którego ta zmiana dotyczy (0-15) oraz o numerze programu (0-127). W standardach będacych rozwinięciem standardu MIDI możliwe stało się wybieranie z większej ilości programów (na przykład w General MIDI Level 2 (GM2) możliwe jest wybieranie z róznych programów, dzięki wysłaniu innej wiadomości przed PROGRAM_CHANGE odpowiadajacej za wybór jednego z 128 banków programów). PITCH BEND (0xE0) Wiadomość pozwalajaca na zmianę wysokości granych tonów, pozwalajaca na dostrojenie instrumentu do własnych oczekiwań. Wraz z nia wysyłana jest informacja o kanale MIDI (0-15) oraz 2 bajty informacji, z których 14 znaczacych bitów określa zmianę tonu. Domyślnym ustawieniem tej wartości jest wartość heksadecymalna 0x2000. Zmiana jest dokonywana w zakresie +/-2 półtonów, a więc możemy zmienić wysokość dźwięku z dokładnościa do około 4096 stopni na jeden półton. Wysokość pomiędzy dwoma sasiednimi stopniami jest raczej nierozróżnialna dla przeciętnego słuchacza. Część syntezatorów wykorzystuje jedynie 7 bitów znacza- cych do określania zmiany wysokości dźwięku, w takim wypadku na jeden półton przypadaja zaledwie 32 zmiany wysokości dźwięku Wybrane System Common Messages TIME CODE QUARTER FRAME (0xF1) Wiadomość jest przesyłana podczas aktywnej pracy urzadzenia. Używana jest do synchronizacji czasu poprzez MIDI. 32-bitowy kod zapisujacy aktualny czas (godziny, minuty, sekundy) oraz wysłana ramkę (frame) jest dzielony na osiem 4-bitowych fragmentów, sa one wysyłane cztery razy w ciagu czasu jednej ramki (a więc pełna informacja jest wysyłana co dwie ramki). Wraz z każda wiadomościa przesyłany jest 7-bitowa informacja, 3 bity sa używane do określenia typu informacji (numeru fragmentu), pozostałe 4 bity - do określenia jej wartości. Czas jest kodowany podczas tworzenia fragmentu oznaczanego liczba 0.
17 3.1. Budowa systemu Wybrane System Real-Time Messages (Wiadomości czasu rzeczywistego) TIMING CLOCK (0xF8) Wiadomość wysyłana w celu zsynchronizowania czasu, przesyła informacje o godzinie, minucie, sekundzie oraz ilości ramek (frame) na sekundę (24, 25, badź 30). ACTIVE SENSING (0xFE) Wiadomość przesyłana w celu podtrzymania aktywnego połaczenia. Używanie tej wiadomości jest opcjonalne, jednak jeśli już zostanie użyta oczekiwane jest, że kolejna wiadomość tego typu zostanie przesłana w ciagu 300ms. Jeśli wiadomość taka się nie pojawi, odbiorca może założyć, że połaczenie zostało przerwane Klasa SysexMessage Klasa javax.sound.midi.sysexmessage pozwala na odbieranie wiadomości System Exclusive (0xF0) oraz Special System Exclusive (0xF7). Sa to wiadomości tworzone przez producentów sprzętu, moga dzięki temu przesyłać informacje dotyczace specyficznej funkcjonalności wbudowanej w urzadzenia. Koniec wiadomości powinien zostać oznaczony za pomoca End Of Exclusive (0xF7) Klasa MetaMessage Javax.sound.midi.MetaMessage reprezentuje wiadomość, która nie ma znaczenia dla syntezatorów, a może jednak przechowywać wartościowe informacje dotyczace, na przykład zawartości pliku MIDI. Znajdowana ona zwykle jest w plikach MIDI. Rozpoznawana jest na podstawie wartości pierwszego bajtu równej 0xFF. Kolejny bajt opisuje typ wiadomości, a następne oznaczaja długość wiadomości oraz same przenoszone przez nia dane. Przykładowe typy meta zdarzeń (Meta Event) opisane sa poniżej. W nawiasach podana jest wartość typu zapisana w formie liczby heksadecymalnej. SEQUENCE NUMBER Zdarzenie te definiuje numer wzorca w przypadku pliku MIDI typu 2 badź numer sekwencji, jeśli mamy do czynienia z plikiem MIDI typu 0 lub 1. Jest to zdarzenie występujace opcjonalnie, jeśli go nie ma zakładany jest domyślny sposób numerowania sekwencji. Sequence number, jeśli jednak już wystapi, powinien znajdować się na samym poczatku sekwencji i mieć czas delta równy 0 (sam poczatek odtwarzania). TEXT EVENT Zdarzenie używane do opisywania pliku MIDI. Często jest umieszczany na poczatku pliku, może zawierać informacje na temat nazwy ścieżki dźwiękowej badź autora; bywa używany do wstawienia tekstu utworu muzycznego do pliku MIDI. Typy wiadomości o wartościach od 0x02 do 0x0F sa używane jako oznaczenia bardziej wyspecjalizowanych opisów tekstowych utworu.
18 3.1. Budowa systemu 13 COPYRIGHT NOTICE Zawiera informację na temat praw autorskich utworu (zalecane jest, by zawierało znak prawa autorskiego c, rok produkcji oraz dane właściciela praw). Zdarzenie powinno się pojawić jako jedno z pierwszych w ścieżce, z czasem delta równym 0. SEQUENCE/TRACK NAME Definiuje nazwę ścieżki/utworu. Zdarzenie to powinno pojawić się jako jedno z pierwszych w ścieżce i mieć czas delta równy 0. INSTRUMENT NAME Określa nazwę instrumentu używanego w danym fragmencie ścieżki. Zdarzenie może zostać połaczone z MIDI Channel Prefix, by nieść także informację, którego kanału dotyczy. LYRIC Pozwala na przekazanie informacji o tekście utworu. Jeśli jako tekst zapisywane sa sylaby, a zdarzenia sa wywoływane w odpowiednim czasie, może to pozwolić na implementację systemu karaoke. MARKER Oznacza ważny punkt utworu, na przykład pierwszy wers zwrotki badź poczatek refrenu. CUE POINT Wiadomość używana do synchronizacji z odtwarzaniem wideo badź akcja na scenie teatralnej, czy uruchomieniem efektów świetlnych sceny. MIDI CHANNEL PREFIX Używane do załaczenia dodatkowej informacji dotyczacej numeru kanału dla meta zdarzeń (Meta Events), które takiej opcji domyślnie nie obsługuja. Działanie jest anulowane przez inne zdarzenie MIDI Channel Prefix badź przez dowolne inne zdarzenie nie należace do grupy Meta Events. END OF TRACK Zdarzenie opcjonalne określajace koniec ścieżki, które może się jednak okazać niezbędne, jeśli będziemy chcieli ja zapętlić badź połaczyć z inna ścieżka. SET TEMPO Zdarzenie te informuje o zmianie tempa, wartość tempa podawana jest w mikrosekundach na ćwierćnutę. Często występuje ono na samym poczatku ścieżki, obok wiadomości Timing Clock, co pozwala na dokładniejsza synchronizację. Jeśli tempo nie jest ustawione, zakładane jest domyślne równoznaczne z 120bpm (beats per minute, uderzeniami na minutę). Aby przeliczać tempo MIDI na ilość uderzeń na minutę i z powrotem możemy skorzystać z wzorów: 1 MikrosekundyNaMinute = UderzenNaMinute = MikrosekundyNaMinute / MikrosekundyNaCwiercnute
19 3.1. Budowa systemu 14 MikrosekundyNaCwiercnute = MikrosekundyNaMinute / UderzenNaMinute SMPTE OFFSET Zdarzenie pozwalajace ustawić opóźnienie odtwarzania ścieżki z użyciem formatu SMPTE (opisujacego godzinę, minutę, sekundę oraz ramkę; dodatkowa możliwościa jest ustawienie fragmentu ramki (0-99), którego przesunięcie dotyczy). TIME SIGNATURE Zdarzenie te określa metrum utworu (rysunek 3.20). Zapisywane ono jest z użyciem 4 liczb. Pierwsze dwie liczby oznaczaja odpowiednio liczbę jednostek metrycznych (górna cyfra na obrazku) oraz podstawowa jednostkę metryczna danego utworu (dolna cyfra na obrazku). Podstawowa jednostka metryczna jest wyliczana poprzez potraktowanie drugiej liczby jako ujemnego wykładnika liczby dwa, czyli na przykład wartość 0 odpowiada pełnej nucie, wartość 1 odpowiada półnucie, a wartość 2 będzie oznaczała ćwierćnutę. Trzecia liczba oznacza ilość MIDI clocks (sygnałów zegara MIDI), które powinny upłynać pomiędzy kolejnymi uderzeniami metronomu. Czwarta liczba określa, ile trzydziestodwójek (nut stanowiacych 1/32 pełnej nuty) mieści się w jednej ćwierćnucie MIDI (zostało to wprowadzone, gdyż wartość ćwierćnuty MIDI była interpretowana na różne sposoby, zwykle w tym miejscu będzie się znajdować liczba 8 (tyle trzydziestodwójek mieści się w ćwierćnucie)). KEY SIGNATURE Zdarzenie pozwalajace określić tonację utworu. Zawiera informację o typie skali (durowa (major) badź molowa (minor)) oraz tonacji (jeden z 12 dźwięków skali chromatycznej). SEQUENCER SPECIFIC META EVENT Specyficzne zdarzenie stworzone na potrzeby konkretnego sekwencera sprzętowego badź programu. Pierwszy bajt (badź 3 bajty, jeśli pierwszy bajt jest równy 0) danych powinien zawierać identyfikator producenta Odbieranie wiadomości o wciśniętych klawiszach Najważniejsza informacja dla działania programu odbierana przez klasę MidiInputReceiver jest ta dotyczaca wciskanych i puszczanych klawiszy na instrumencie muzycznym (Note On i Note Off). Przekazywana jest ona dalej do innej klasy PressedKeyManager, która zajmuje się przekazywaniem informacji dalej (między innymi do PianoKeyManager, która zajmuje się przechowywaniem stanu klawiszy instrumentu muzycznego) Klasa opisujaca dźwięk Klasa Note reprezentuje obiekt opisujacy pojedynczy dźwięk, jest wykorzystywana wielokrotnie w programie. Zawiera ona dane takie jak wysokość dźwięku (zapisana jako liczba, zgodna ze standardem MIDI), jej głośność/siłę uderzenia w klawisz instrumentu ( velocity ) czy kanał midi którego dotyczy. Udostępnia także wiele funkcji używanych w innych częściach aplikacji takich jak:
20 3.1. Budowa systemu Wysyłanie wiadomości MIDI Aby wciskane przez użytkownika klawisze były słyszalne oraz by aplikacja mogła odtwarzać wczytywane pliki MIDI konieczne było stworzenie klasy odpowiedzialnej za generowanie dźwięku. Klasa MidiPlayer korzysta z javax.sound.midi.midisystem. Z jego użyciem stara się znaleźć dostępne w systemie syntezatory oraz nawiazać połaczenie z jednym z nich. MidiPlayer udostępnia reszcie programu użyteczne funkcje: 1 public void playnote ( Note note ) { ShortMessage message = new ShortMessage ( ) ; try { message. setmessage ( ShortMessage.NOTE\_ON, channelnumber, 5 note. getvalue ( ), note. getvelocity ( ) ) ; selecteddevice. getreceiver ( ). send ( message, 0 ) ; } catch ( InvalidMidiDataException e ) { Log. getlogger ( ). warning ( 10 " Invalid Midi Data Exception. Unable to play midi note. " ) ; } catch ( MidiUnavailableException e ) { Log. getlogger ( ). warning ( " Midi Unavailable Exception. Unable to play midi note. " ) ; 15 } } Wydruk 3.2. Funkcja odtwarzajaca dźwięk Funkcja wysyła wiadomość do syntezatora, zlecajac a zagranie dźwięku, którego cechy zdefiniowane sa w zmiennej (Note) note. 1 public void sendchannelmessage ( ChannelMessage message ) { try { selecteddevice. getreceiver ( ). send ( message. getmessage ( ), 0 ) ; } catch ( MidiUnavailableException e ) { 5 Log. getlogger ( ). warning ( " Unable to send midi channel message. " ) ; } } Wydruk 3.3. Funkcja wysyłajaca wiadomość do syntezatora Powyższa funkcja odpowiada za wysłanie dowolnej wiadomości do syntezatora, pozwalajac na uzyskanie takich efektów jak zmiana przypisanych dźwięków do różnych kanałów Wczytywanie plików MIDI Za otwieranie plików midi odpowiada klasa MidiFileOpener. Korzysta ona z funkcji MidiSystem.getSequence(InputStream), dzięki której jest w stanie odczytać zdarzenia występujace w pliku MIDI i przekierować je do innej części programu zajmujacej się ich analiza. Zadaniem tym zajmuje się klasa MidiFileReceiver, implementujaca interfejs Receiver (javax.sound.midi.receiver). Odczytuje ona zdarzenia midi z pliku.midi i w
21 3.1. Budowa systemu 16 zależności od typu odebranych danych przekazuje informacje w inne części programu. Najczęściej występujace i najbardziej istotne dla działania programu sa wiadomości zagrania dźwięku oraz przerwania grania dźwięku, które przekazuja informacje jakie dźwięki powinny zostać zagrane i kiedy Sprawdzanie poprawności gry Podczas odtwarzania utworu w trybie manualnym (w którym użytkownik musi zagrać przedstawione na ekranie dźwięki) przesuwajace się nuty zatrzymuja się w oczekiwaniu na wciśnięcie odpowiednich klawiszy. Na obrazkach 3.1, 3.2 widoczny jest utwór przedstawiony na dwóch różnych widokach, w stanie oczekiwania na reakcję użytkownika. Za sprawdzanie czy wciśnięte zostały odpowiednie klawisze odpowiada klasa NotesComparator. Dzieli ona wszystkie klawisze występujace na klawiaturze na trzy kategorie: MUST_BE_PLAYED (musi zostać zagrany) MAY_BE_PLAYED (może zostać zagrany) MUST_NOT_BE_PLAYED (nie może zostać zagrany) Dźwięki, których poczatek brzmienia zaczyna się w danym momencie musza zostać zagrane. Nuty, które już sa grane, ale jeszcze się nie zakończyły (wartość siły uderzenia velocity jest większa od zera) moga, ale nie musza zostać zagrane. Wszystkie pozostałe nuty nie moga być wciśnięte. Gdy te warunki zostana spełnione, utwór odtwarzany jest dalej. Warunki te nie wymuszaja idealnego czasu puszczenia klawisza, który już gramy (uznałem, że idealna synchronizacja czasu puszczenia klawisza nie jest aż tak bardzo istotna, a zwiększała bardzo poziom trudności gry). Dodatkowym ułatwieniem jest pewna niedokładność czasu wciśnięcia klawisza na jaka pozwala aplikacja, akceptuje ona wciśnięcie go odrobinę wcześniej niż jest to wymagane (pozwala to na uniknięcie niepotrzebnych pauz podczas gry). W tym fragmencie aplikacji wykorzystałem HashMultiMap dostarczana przez bibliotekę guava
22 3.1. Budowa systemu 17 Rysunek 3.1. Odtwarzanie utworu jest zatrzymane, oczekiwanie na zagranie odpowiednich dźwięków przez użytkownika (widok główny). Rysunek 3.2. Odtwarzanie utworu jest zatrzymane, oczekiwanie na zagranie odpowiednich dźwięków przez użytkownika (widok przypominajacy notację muzyczna).
23 3.2. Część wizualna Część wizualna System współrzędnych używanych w programie Rysunek 3.3. Układ współrzędnych używany w programie Za cel postawiłem sobie stworzenie programu o możliwie dużej przenośności pomiędzy różnorodnymi systemami. Z powodu wykorzystywania własnoręcznie rysowanych ekranów, spadła na mnie odpowiedzialność za konfigurację ich zachowania w różnorodnych warunkach. Chciałem uniknać tworzenia aplikacji, która z powodu używania stałych wymiarów ekranu działałaby poprawnie jedynie na jednym ustawieniu rozdzielczości monitora, a na innych okienko programu byłoby zbyt małe badź za duże. Postanowiłem używać w aplikacji do określania położenia obiektów liczb zmiennoprzecinkowych. Lewy górny róg ekranu badź panelu jest oznaczany współrzędna ( 0.0, 0.0 ), wartości współrzędnych rosna aż do prawego dolnego rogu ekranu, gdzie przyjmuja maksymalna wielkość ( 1.0, 1.0 ). Sposób zapisu może zostać dokładniej wyjaśniony za pomoca rysunku 3.3. Współrzędne ekranu przed użyciem ich do określenia lokalizacji na ekranie sa konwertowane na odpowiadajace im wartości w pikselach. Używana do tego jest prosta funkcja: 1 long doublecoordinatetopixelcoordinate ( double coordinate, int maxpixels ) { return Math. round ( coordinate maxpixels ) ; } Wydruk 3.4. Funkcja konwertujaca Do funkcji przekazywane sa dwa argumenty, pierwszy typu double reprezentujacy współrzędna typu zmiennoprzecinkowego, drugi określa ilość pikseli w danym
24 3.2. Część wizualna 19 wymiarze (szerokości badź wysokości). Zwracana jest wartość określajaca współrzędna w pikselach. Aby uniknać niepotrzebnych obliczeń część wartości dotyczacych położenia stałych fragmentów ekranu jest zapisywana, jako już obliczone koordynaty w formie liczb całkowitych. Sa one ponownie przeliczane dopiero w przypadku zmiany wielkości okna aplikacji Zmiana wielkości grafik W aplikacji używane jest kilkanaście różnych obrazków, zapisanych głównie w formacie.png. Chciałem zagwarantować wysoka jakość wygladu aplikacji, dlatego użyte przeze mnie grafiki sa bardzo dobrej jakości, wyeksportowane z programów graficznych używanych do edycji grafiki wektorowej. Ich wielkość jest wystarczajaca do wyświetlenia obrazu na ekranach o rozdzielczności Full HD (1920x1080). By móc zapewnić wysoka wydajność aplikacji oraz dobry wyglad na mniejszych ekranach musiałem zadbać o zmianę wielkości obrazków, tak by dostosowywały się do innych wymiarów okna. Gdy zajmowałem się problemem zmiany wielkości obrazków próbowałem skorzystać z przeznaczonych do tego funkcji Java, jednak efekt końcowy był niezadowalajacy (nawet, gdy stosowałem ustawienia RenderingHint, nastawione na uzyskanie jak najlepszej jakości obrazu). Trafiłem na artykuł opisujacy iteracyjny sposób zmiany wielkości obrazów 2, który pozwalał na uzyskanie wysokiej jakości grafik. By nie ódkrywać ponownie koła"i pracować nad problemami, które zostały już rozwiazane zdecydowałem się na wybór biblioteki imgscalr 3 dostępnej na licencji Apache 2 jako narzędzia do zmiany wielkości obrazów. Ostatnim nierozwiazanym problemem pozostał czas, jaki jest potrzebny do zmiany wielkości grafiki. Rozwiazałem ten problem tworzac klasę przechowujac a w pamięci kopię obrazka, już po dokonaniu zmiany jego wielkości, dzięki czemu zmiana wielkości dokonywana jest jedynie po uruchomieniu programu i po zmianie wielkości okna. Wykorzystywanie grafik o zmniejszonej wielkości, dostosowanej do rysowania na ekranie pozwoliło także na przyśpieszenie działania aplikacji - operacje dokonywane sa na obiektach zajmujacych mniej pamięci oraz nie jest konieczna zmiana ich wielkości
25 3.2. Część wizualna Rysowanie schematu fortepianu na ekranie Rysunek 3.4. Wyglad rysowanej klawiatury przed dodaniem ozdobników. Za rysowanie klawiatury fortepianu odpowiada klasa PianoPainter. Klasa ta zawiera w sobie zmienne pozwalajace na swobodne konfigurowanie wygladu klawiatury takie jak: ilość klawiszy (domyślnie - 88) klawisz startowy, od którego zaczynamy tworzenie klawiatury (domyślnie klawisz reprezentujacy dźwięk A ) rozkład czarnych klawiszy na klawiaturze proporcje klawiszy Proporcje klawiszy zostały zebrane z keyboardu, którego używałem jako głównego urzadzenia podczas pracy nad aplikacja. Proporcja szerokości wszystkich białych klawiszy do ich wysokości to około 6,80, wysokości czarnego klawisza do jego szerokości to zaokraglaj ac 7,90, a szerokości czarnego klawisza do szerokości białego klawisza to w przybliżeniu 0,545. Jeśli założymy, że czarne klawisze sa równo wyśrodkowane pomiędzy sasiaduj acymi białymi klawiszami, powyższe dane powinny nam wystarczyć do odtworzenia klawiatury na ekranie komputera. Rysowanie keyboardu odbywa się przy użyciu podstawowych funkcji Java Graphics2D. Białe klawisze sa białymi (wypełnionymi) prostokatami, czarne klawisze sa czarnymi (wypełnionymi) prostokatami, krawędzie białych klawiszy sa czarnym prostokatem (bez wypełnienia, rysowane sa same krawędzie), a wciśnięte klawisze sa kolorowane na szaro. Efekt widoczny jest na obrazku 3.4. Niestety tak narysowana klawiatura jest graficznie dość mało atrakcyjna. Postanowiłem poprawić jej wyglad, ciagle korzystajac z tych samych podstawowych funkcji rysujacych Java, pozwalajacych na tworzenie różnokolorowych prostoka- tów. Dolna część białego klawisza ( 1/14 ) została pokolorowana na szaro. W podobny sposób pokolorowałem dolna część czarnego klawisza ( 1/9 ) używajac
26 3.2. Część wizualna 21 nieco ciemniejszego odcienia szarego koloru. Ustawienia dobrałem eksperymentalnie, starajac się uzyskać efekt najbardziej zadowalajacy artystycznie. Z prawej strony czarnych klawiszy dodałem niewielki, szary prostokat (o szerokości równej 1/5 szerokości czarnego klawisza) symulujacy cień rzucany przez klawisz. Dzięki tym usprawnieniom klawiatura instrumentu wydaje się być wypukła, w przeciwieństwie do płaskiej klawiatury widocznej wcześniej. Rezultat widoczny jest na obrazku 3.5. Rysunek 3.5. Końcowy wyglad rysowanej klawiatury.
27 3.2. Część wizualna Dwa rodzaje widoków udostępniane przez program Tworzona przeze mnie aplikacja udostępnia dwa główne rodzaje widoków, wyświetlajace nuty, które powinien zagrać użytkownik w odmienny sposób Główny sposób wyświetlania nut Rysunek 3.6. Główny widok aplikacji. Na obrazku 3.6 widoczny jest główny sposób wyświetlania nut przez moja aplikację. Nuty (będę używać tej nazwy odwołujac się do graficznej reprezentacji przedstawianej w programie) wyświetlane sa w formie zaokraglonych prostokatów różnej wielkości. Pojawiaja się one nad odpowiadajacymi klawiszami narysowanej w dolnej części ekranu klawiaturze przypominajacej standardowy 88-klawiszowy fortepian. Nuty pojawiajace się nad czarnymi klawiszami klawiatury sa węższe (sa tej samej szerokości co czarny klawisz), co pozwala na ich łatwe odróżnienie. Nuty poruszaja się w kierunku dolnej części ekranu. Gdy docieraja do linii wyznaczanej przez górna krawędź klawiatury zatrzymuja się (w manualnym trybie gry) badź wydawany jest odpowiedni dźwięk (w automatycznym trybie odtwarzania utworu). Zaokraglone prostokaty sa różnokolorowe, w zależności od numeru ścieżki w utworze, który reprezentuja. Ich wysokość jest zależna od różnicy czasu, pomiędzy zdarzeniami Note On (wydania dźwięku) oraz Note Off (zaprzestania wydawania dźwięku), które zostały odczytane z pliku MIDI. Im różnica jest większa, tym większa jest wysokość prostokata. Wysokość stanowi sugestię, co do czasu wciskania klawisza instrumentu podłaczonego do komputera - niskim prostokatom powinny odpowiadać krótkie i szybkie wciśnięcia klawiszy, a wysokim prostokatom dłuższe.
28 3.2. Część wizualna 23 Wyświetlanie nut na pięciolinii Rysunek 3.7. Alternatywny tryb wyświetlania aplikacji przypominajacy notację muzyczna. Alternatywnym trybem wyświetlania w programie, jest widok przypominajacy notację muzyczna. Przedstawiony jest na obrazku 3.7. Należy jednak zwrócić uwagę, że nie jest to poprawny zapis nutowy, raczej jego uproszczenie. Pliki MIDI nie zawieraja wszystkich potrzebnych informacji do wygenerowania notacji muzycznej. W dodatku uznałem, że niektóre części zapisu, sprawdzajace się na papierze moga nie być tak czytelne w wersji animowanej na monitorze komputerowym. Wyświetlanie wciskanych klawiszy W trybie wyświetlania przypominajacym notację muzyczna użytkownikowi jest dużo trudniej zorientować się, którym klawiszom odpowiadaja jakie nuty na pięciolinii. Z tego powodu dodałem fragment na pięciolinii, mieszczacy się pomiędzy kluczem wiolinowym i basowym, a pionowa linia, przypominajac a nieco kreskę taktowa. Nuty wyświetlane w tym fragmencie nie stanowia fragmentu utworu, reprezentuja natomiast aktualnie wciśnięte klawisze na klawiaturze instrumentu (obrazki 3.8, 3.9, 3.10). Do wyświetlania używane sa całe nuty, jednak ich wartość rytmiczna nie ma w tym przypadku znaczenia, zostały przeze mnie wybrane z powodu ich czytelności oraz braku pałeczki nutowej. Na obrazkach poniżej widoczne sa wciśnięte klawisze na klawiaturze instrumentu oraz ich reprezentacja na pięciolinii. Rodzaje wyświetlanych nut W widoku przypominajacym notację muzyczna wyświetlane jest kilka rodzajów nut - całe nuty (rys. 3.11), półnuty (rys. 3.12, 3.13), ćwierćnuty (rys. 3.14,3.15) i ósemki (rys. 3.16,3.17). Typ nuty w muzyce reprezentuje długość jej trwania. Cała nuta trwa dwa razy dłużej niż półnuta, półnuta trwa dwa razy dłużej niż ćwierćnuta, natomiast ćwierćnuta - dwa razy dłużej niż ósemka. Istnieja także nuty, takie jak szesnastka,
29 3.2. Część wizualna 24 Rysunek 3.8. Lista aktualnie wciśniętych klawiszy wyświetlana obok kluczy. trzydziestodwójka, sześćdziesięcioczwórka, a nawet stodwudziestoósemka (jednak sa one nieco rzadziej spotykane). Niestety pliki MIDI zwykle nie przechowuja informacji zwiazanych z metrum utworu, a fragmenty utworu nie sa dzielone na takty. Z tego powodu stworzyłem własny system podziału dźwięków pochodzacych z pliku MIDI na odpowiednie nuty. Na poczatku analizowana jest zawartość całego pliku i znajdowana jest długość najdłuższego dźwięku. Następnie nuty sa dopasowywane na podstawie kodu: 1 i f ( czastrwanianajdluzszejnuty / 2 < czastrwaniaanalizowanejnuty ) { //Cala nuta } 5 else i f ( czastrwanianajdluzszejnuty / 4 < czastrwaniaanalizowanejnuty ) { //Polnuta } 10 else i f ( czastrwanianajdluzszejnuty / 8 < czastrwaniaanalizowanejnuty ) { //Cwiercnuta } else 15 { //Osemka } Wydruk 3.5. Funkcja dobierajaca nuty. Oczywiście dopasowanie te jest pewnym rodzajem funkcji heurystycznej i może nie zawsze się sprawdzać, jednak pozwala na wygenerowanie dość dobrze wyglada- jacego rezultatu. Problemy moga się pojawiać z utworami zawierajacymi dźwięki o tej samej długości (wszystkie zostana potraktowane jako cała nuta) badź z utworami w których pojawia się kilka bardzo długich dźwięków (w takim wypadku cała reszta nut zostanie rozpoznana jako ósemki). System ten można jednak poprawić - możliwe, że dobre efekty dałaby próba podziału wszystkich długości dźwięków
30 3.2. Część wizualna 25 Rysunek 3.9. Wciśnięte białe klawisze klawiatury oraz ich reprezentacja na pięciolinii. na kilka dość równych grup, a nie wyznaczania granic w zależności od wartości najdłuższej, jak jest to teraz robione. W zależności od położenia nuty na pięciolinii rysowana jest jej wersja z pałeczka nutowa skierowana na dół badź do góry. Widoczne jest to na obrazku 3.18, na którym przedstawione sa dwa różne sposoby rysowania półnuty. Różnice pomiędzy widokiem a zapisem nutowym Pomiędzy stworzona przeze mnie notacja, a współczesnym zapisem nutowym istnieje wiele różnic. Wymienię najbardziej istotne: Nie występuje podział na takty. W pliku MIDI zwykle nie jest zapisana wystarczajaca ilość informacji do stworzenia taktów. Działanie znaków chromatycznych przygodnych (na przykład krzyżyka, umieszczanego przed nuta) dotyczy jedynie kolejnej nuty (a powinien dotyczyć wszystkich nut tej samej wysokości, aż do końca taktu). Rozważałem zastosowanie kasownika (widocznego na obrazku 3.19 znaku anulujacego działanie innych znaków chromatycznych) po każdej nucie, jednak uznałem, że zmniejszyłoby to zbyt mocno czytelność zapisu. Przestrzeń obok klucza jest przeznaczona do wyświetlania nut reprezentujacych aktualnie wciśnięte klawisze na klawiaturze. Nie jest w tym miejscu wyświetlane metrum (rysunek 3.20), ani znaki chromatyczne przykluczowe określajace tonację utworu. W zapisie nie sa używane pauzy. Nie występuja oznaczenia tempa, dynamiki, artykulacji. Nie używam frazowania oraz znaków powtórzenia. Jak widać różnice sa dość istotne, sposób wyświetlania można jednak rozwijać dalej w celu coraz większego upodobnienia go do nowoczesnego zapisu nutowego.
31 3.2. Część wizualna 26 Rysunek Wciśnięte czarne klawisze, przy wyświetlanych nutach widoczne sa znaki chromatyczne (krzyżyki). Rysunek Cała nuta. Rysunek Półnuta. Rysunek Półnuta (pałeczka nutowa skierowana w dół). Rysunek Ćwierćnuta. Rysunek Ćwierćnuta (pałeczka nutowa skierowana w dół).
32 3.2. Część wizualna 27 Rysunek Ósemka. Rysunek Ósemka (pałeczka nutowa skierowana w dół). Rysunek Różne sposoby rysowania tych samych nut. Rysunek Kasownik zapisany przed nuta.
33 3.2. Część wizualna 28 Rysunek Zapis metrum.
34 3.3. Inne opcje Inne opcje Wybór trybu gry Program pozwala na automatyczne odtwarzanie utworu (bez oczekiwania na wciskanie odpowiednich klawiszy przez użytkownika) badź na tryb manualny (w którym zatrzymywanie zatrzymuje się do czasu, aż osoba korzystajaca z programu zagra odpowiednie dźwięki). Wybór trybu gry jest dostępny w głównym menu aplikacji. Tryb automatyczny może okazać się przydatny, jeśli użytkownik chcę usłyszeć, jak brzmi poprawna, idealnie wykonana wersja utworu Wybór ścieżek MIDI do grania Jeśli w pliku MIDI zapisane nuty sa podzielone na ścieżki (tracks), aplikacja pozwala na wybranie jednej badź kilku z nich jako wyświetlanych. Efekt działania tej funkcji jest widoczny na obrazkach 3.21, W przypadku używania manualnego trybu gry, użytkownik musi zagrać jedynie część nut. Pozwala to na opanowanie gry na przykład najpierw lewa ręka, potem prawa ręka, a dopiero na koniec wyćwiczenia współpracy obu rak. Pozostałe ukryte ścieżki sa odtwarzane równolegle do tych granych przez użytkownika, tworzac podkład muzyczny do jego gry. W plikach midi część zapisanych instrumentów może nie nadawać się do grania z użyciem instrumentu klawiszowego (na przykład jeśli zapisane dźwięki maja symulować na przykład perkusję). W takim wypadku warto wyłaczyć taka ścieżkę podczas ćwiczenia gry. Rysunek Odtwarzanie dwóch ścieżek (tracks).
35 3.3. Inne opcje 30 Rysunek Wyglad aplikacji po wyłaczeniu jednej z ścieżek.
36 3.3. Inne opcje Zmiana szybkości odtwarzania utworu Rysunek Menu zmiany szybkości odtwarzania utworu. Aplikacja pozwala na zmianę prędkości odtwarzania utworu (rysunek 3.23). Może to się przydać na przykład do przećwiczenia trudniejszego do zagrania fragmentu utworu - zaczynajac od wolnego tempa możemy je progresywnie zwiększać, aż uda nam się opanować grę z pełna szybkościa Zmiana wielkości pola wyświetlajacego nuty Aplikacja posiada opcję zmiany pola widzenia, określajacego zagęszczenie nut na ekranie. W zależności od preferencji użytkownika na ekranie może być widoczne kilka dużych szybko poruszajacych się nut, badź wiele mniejszych i poruszajacych się wolniej. Rezultat różnych ustawień jest widoczny na rysunkach 3.24, 3.25, 3.26, 3.27.
37 3.3. Inne opcje 32 Rysunek Widok domyślny, standardowa wielkość pola widzenia. Rysunek Widok domyślny, powiększone pole widzenia.
38 3.3. Inne opcje 33 Rysunek Widok przypominajacy zapis nutowy, standardowe pole widzenia. Rysunek Widok przypominajacy zapis nutowy, powiększone pole widzenia.
39 3.3. Inne opcje Wybór syntezatora, cechy syntezatorów Rysunek Przykładowy zestaw wykrytych syntezatorów w systemie Windows 7 z podłaczonym keyboardem. Program pozwala na wybór syntezatora używanego do generowania dźwięków. Syntezatory moga się różnić między soba brzmieniem badź obsługiwanymi wiadomościami MIDI, jednak według mnie bardzo istotna cecha, jest czas pomiędzy przesłaniem wiadomości, a czasem wygenerowania dźwięku (latency). Domyślny syntezator Java - Gervill - posiada maksymalny czas opóźnienia określany na 120ms. Jest to wartość łatwo zauważalna, mogaca być dość denerwujaca dla osoby graja- cej. Jeśli w systemie zostanie wykryty syntezator Microsoft GS Wavetable Synth ustawiany jest on jako preferowalny (przed Gervill), z powodu praktycznego niższego czasu opóźnienia. Lista przykładowych syntezatorów widoczna jest na rysunku Jeśli jakość dźwięku wydawanego przez aplikację ciagle stanowi problem, wyjściem może być użycie syntezatora wbudowanego w keyboard, jeśli jest on udostępniany przez urzadzenie. Często syntezatory stanowiace część instrumentów muzycznych moga generować lepszej jakości dźwięk z mniejszym opóźnieniem, niż te emulowane przez system. Przykładowo syntezator dostępny w keyboardzie jest widoczny na obrazku pod nazwa DigitalKBD Zmiana wysokości dźwięków w utworze Nie wszystkie instrumenty klawiszowe maja ilość klawiszy identyczna z ta użyta w moim programie (wzorujacym się na układzie 88-klawiszowego fortepianu). Jednym z urzadzeń, na których testowałem działanie aplikacji był keyboard Yamaha PSR-E333, posiadajacy klawiaturę składajac a się z 61 klawiszy. Może to stanowić problem i uniemożliwiać zagranie części utworów. Udało mi się częściowo zaradzić na ten problem dodajac do programu możliwość przesuwania wszystkich dźwięków utworu, tak by mogły się zmieścić w zakresie urzadzenia którego używamy. Do wyboru sa opcje przesunięcia dźwięków o półton, badź o oktawę (dwanaście półtonów). Zmiana wysokości dźwięków możliwa jest w obie strony, a operację możemy wielokrotnie powtarzać. Jeśli przesuniemy dźwięki utworów o ilość półtonów nie będacych wielokrotnościa dwunastu, zmieni się także tonacja utworu. Przykład zmiany wysokości dźwięków utworu przedstawiony jest na rysunkach 3.29 oraz 3.30.
40 3.3. Inne opcje 35 Rysunek Część dźwięków jest niemożliwa do zagrania. Zakres dostępnych klawiszy 61-klawiszowego instrumentu został zaznaczony prostokatem. Rysunek Po przesunięciu dźwięków utworu o dwie oktawy staje on się możliwy do zagrania na danym instrumencie muzycznym.
41 3.3. Inne opcje Przewijanie utworu Rysunek Pasek przewijania umieszczony pod wizerunkiem klawiatury. Aplikacja posiada pasek przewijania (widoczny na rysunku 3.31), pozwalajacy na łatwe trafienie do fragmentu utworu, który nas interesuje. Dźwięk wydawany przez syntezator zależy nie tylko od nut (wiadomości Note On, Note Off) ale także od jego aktualnego stanu (czyli od ustawień, jakie zostały przekazane we wcześniejszej części utworu). Z tego powodu po przesunięcie wskaźnika odtwarzania utworu wymaga kilku dodatkowych czynności: zresetowania stanu klawiatury, zatrzymania wszystkich aktualnie wydawanych dźwięków, zmianę tempa odtwarzania utworu na te jakie jest w nowym punkcie oraz przesłania wszystkich istotnych wiadomości MIDI, które miały miejsce przed tym punktem Wygładzanie krawędzi (antyaliasing) Aplikacja zawiera opcję, pozwalajac a na wybór sposobu rysowania nut z badź bez wygładzania krawędzi. Właczona opcja może spowodować zwiększenie zużycia procesora, poprawiajac jednak jakość rysowanej grafiki. Różnice przedstawione sa na rysunkach 3.32 i Ustawienie te jest zapisywane i wybrana przez użytkownika wartość jest przechowywana pomiędzy kolejnymi uruchomieniami aplikacji. Właściwość ustawiana jest poprzez: 1 setrenderinghint ( RenderingHints. KEY_ANTIALIASING, RenderingHints. VALUE_ANTIALIAS_ON ) ;
42 3.3. Inne opcje 37 Rysunek Wyglad nut z właczonym wygładzaniem krawędzi. Rysunek Wyglad nut z wyłaczonym wygładzaniem krawędzi. Widoczny efekt schodkowania obrazu.
WYMAGANIA EDUKACYJNE DLA KLASY II PSM I STOPNIA CYKLU SZEŚCIOLETNIEGO. Rytmika z kształceniem słuchu
WYMAGANIA EDUKACYJNE DLA KLASY II PSM I STOPNIA CYKLU SZEŚCIOLETNIEGO Rytmika z kształceniem słuchu Uczeń: - Zna, rozróżnia, słyszy, potrafi zapisać i stosuje podstawowe jednostki metryczne: ćwierćnuty,
Smart Pianist podręcznik
Smart Pianist podręcznik Aplikacja Smart Pianist, która została opracowana specjalnie dla urządzeń przenośnych, po połączeniu ze zgodnym instrumentem muzycznym zapewnia wiele różnych funkcji związanych
Synchronizacja dźwięku i obrazu. Opracował: dr inż. Piotr Suchomski
Synchronizacja dźwięku i obrazu Opracował: dr inż. Piotr Suchomski Wprowadzenie Technika integracji dźwięku i obrazu w multimediach ma niebagatelne znaczenie; Na jakość dzieła multimedialnego, w tym również
Synchronizacja dźwięku i obrazu
Synchronizacja dźwięku i obrazu Opracował: dr inż. Piotr Suchomski Wprowadzenie Na jakość dzieła multimedialnego, w tym również filmowego, ma ogromny wpływ jakość synchronizacji dźwięku i obrazu; Zaawansowane
c¹, cis¹, d¹, dis¹, e¹, f¹, fis¹, g¹, gis¹, a¹, ais¹, h¹, c2
Taktem nazywamy odcinek na pięciolinii zawarty między dwoma pionowymi kreskami, które są kreskami taktowymi. Miarą taktową nazywamy dwie cyfry zapisane pionowo na pięciolinii na początku utworu albo jego
1. Opis okna podstawowego programu TPrezenter.
OPIS PROGRAMU TPREZENTER. Program TPrezenter przeznaczony jest do pełnej graficznej prezentacji danych bieżących lub archiwalnych dla systemów serii AL154. Umożliwia wygodną i dokładną analizę na monitorze
ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1
Instrukcja obsługi ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 1 ArtPlayer to proste oprogramowanie umożliwiające odtwarzanie plików video i ich wybór poprzez protokół
Jeszcze raz więc powtarzam - wymieramy NIE i przechodzimy do kolejnego obrazka.
Podział filmu na 2CD Minęło 7 miesięcy od ostatniego artykułu o podziale filmu na 2CD. Postanowiliśmy więc nieco odkurzyć ten artykuł bo zaczynało powoli zajeżdzać starym mięchem :-) Czy wiele się zmieniło?
Mac i MIDI. profesjonalne studio w Twoim domu. Michał Podpora Apple Distinguished Educator
Mac i MIDI profesjonalne studio w Twoim domu Michał Podpora Apple Distinguished Educator Agenda co to jest MIDI podłączenie instrumentu MIDI do komputera Apple instrument sprzętowy a instrument programowy,
Program V-SIM tworzenie plików video z przebiegu symulacji
Program V-SIM tworzenie plików video z przebiegu symulacji 1. Wprowadzenie Coraz częściej zdarza się, że zleceniodawca opinii prosi o dołączenie do opracowania pliku/ów Video z zarejestrowanym przebiegiem
instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI
instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI SPIS TREŚCI 04 Opis opcji terminala 05 SKANOWANIE 06 Skanowanie kod 07 Skanowanie kod ilość 08 Skanowanie kod ilość cena
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
Platforma WSiPnet.pl dla każdego ucznia
Platforma WSiPnet.pl dla każdego ucznia KLASY 4 6 ANNA WYSOCKA Zajęcia komputerowe są dość specyficznym przedmiotem wymagają nie tylko przyswojenia wiedzy informatycznej, ale przede wszystkim zdobycia
Instrukcja obsługi programu Do-Exp
Instrukcja obsługi programu Do-Exp Autor: Wojciech Stark. Program został utworzony w ramach pracy dyplomowej na Wydziale Chemicznym Politechniki Warszawskiej. Instrukcja dotyczy programu Do-Exp w wersji
Tworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.
Ćwiczenia z S7-1200 Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP FAQ Marzec 2012 Spis treści 1 Opis zagadnienie poruszanego w ćwiczeniu. 3 1.1 Wykaz
Podstawy technologii cyfrowej i komputerów
BESKIDZKIE TOWARZYSTWO EDUKACYJNE Podstawy technologii cyfrowej i komputerów Budowa komputerów cz. 2 systemy operacyjne mgr inż. Radosław Wylon 2010 1 Spis treści: Rozdział I 3 1. Systemy operacyjne 3
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Instrukcja do oprogramowania ENAP DEC-1
Instrukcja do oprogramowania ENAP DEC-1 Do urządzenia DEC-1 dołączone jest oprogramowanie umożliwiające konfigurację urządzenia, rejestrację zdarzeń oraz wizualizację pracy urządzenia oraz poszczególnych
XII Konferencja Sieci i Systemy Informatyczne Łódź, październik 2004
XII Konferencja Sieci i Systemy Informatyczne Łódź, październik 2004 DOMINIK KŁYS WOJCIECH ZABIEROWSKI ANDRZEJ NAPIERALSKI Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej APLIKACJA
Laboratorium Komputerowe Systemy Pomiarowe
Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Zastosowanie standardu VISA do obsługi interfejsu RS-232C Data wykonania: 03.04.08 Data oddania: 17.04.08 Celem ćwiczenia
Instrukcja obsługi programu. BlazeVideo HDTV Player v6
Instrukcja obsługi programu BlazeVideo HDTV Player v6 Spis treści 1. Opis programu...3 1.1 Wprowadzenie...3 1.2 Funkcje programu...3 1.3 Wymagania sprzętowe...4 2. Wygląd interfejsu...4 3. Obsługa programu...6
ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.
ArtPlayer Instrukcja obsługi Odtwarzacz plików video sterowany poprzez Artnet/DMX V1.1.0.2 1 ArtPlayer Modus to proste oprogramowanie umożliwiające odtwarzanie plików video i ich kontrolę poprzez protokół
PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS
PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać
5.4. Efekty specjalne
5.4. Efekty specjalne Przedstawiliśmy już sobie sporo kwestii związanych z dodawaniem, edytowaniem czy usuwaniem elementów, które możemy zamieścić w prezentacji. Ale pomyłką było by stwierdzenie, że więcej
Instrukcja użytkownika ARsoft-CFG WZ1 4.0
05-090 Raszyn, ul Gałczyńskiego 6 tel. (+48) 22 101-27-31, 22 853-48-56 automatyka@apar.pl www.apar.pl Instrukcja użytkownika ARsoft-CFG WZ1 4.0 wersja 4.0 www.apar.pl 1 1. Opis Aplikacja ARsoft-CFG umożliwia
Universal MIDI controller. Uniwersalny sterownik MIDI
Tomasz Kuźma II rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy Universal MIDI controller Uniwersalny sterownik MIDI Keywords: MIDI controller, MIDI, control device Słowa kluczowe:
Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku
Informator Techniczny nr 12 -- styczeń 2001 -- INFORMATOR TECHNICZNY GE FANUC Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku Program w sterowniku W sterowniku
Sylabus Moduł 4: Grafika menedżerska i prezentacyjna
Sylabus Moduł 4: Grafika menedżerska i prezentacyjna Niniejsze opracowanie przeznaczone jest dla osób zamierzających zdać egzamin ECDL (European Computer Driving Licence) na poziomie podstawowym. Publikacja
Pasek menu. Ustawienia drukowania
Polecenie Ustawienia drukowania... z menu Plik pozwala określić urządzenie drukujące poprzez jego wybór z pola kombi. Urządzenie można skonfigurować poprzez przycisk właściwości. Otwiera się wówczas okno
EDUKACJA MUZYCZNA. Lp. numer karty obszar tytuł karty opis słowa kluczowe edukacja pozycja
EDUKACJA MUZYCZNA podstawa programowa wg portalu Scholaris Lp. numer karty obszar tytuł karty opis słowa kluczowe edukacja pozycja 1 KP/1/MUZ/1/01 Rozpoznaj instrumenty Karta pracy z grafikami różnych
Algorytm SAT. Marek Zając 2012. Zabrania się rozpowszechniania całości lub fragmentów niniejszego tekstu bez podania nazwiska jego autora.
Marek Zając 2012 Zabrania się rozpowszechniania całości lub fragmentów niniejszego tekstu bez podania nazwiska jego autora. Spis treści 1. Wprowadzenie... 3 1.1 Czym jest SAT?... 3 1.2 Figury wypukłe...
ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE...
Spis treści INSTRUKCJA OBSŁUGI SPIS TREŚCI ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE... 2 1.3. WYMAGANIA SYSTEMU... 2 ROZDZIAŁ 2. APLIKACJA I URZĄDZENIE.... 4 2.1. DODAWANIE BRAMOFONU DO APLIKACJI... 4 2.2.
Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;
14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi
Podręczna pomoc Microsoft Power Point 2007
Podręczna pomoc Microsoft Power Point 2007 Animacja (przejście) slajdu... 2 Wybór przejścia slajdu... 2 Ustawienie dźwięku dla przejścia... 3 Ustawienie szybkości przejścia slajdu... 4 Sposób przełączenia
ROZDZIAŁ 1: Instrukcja obsługi oprogramowania VMS
ROZDZIAŁ 1: Instrukcja obsługi oprogramowania VMS 1. Instalacja oprogramowania: Oprogramowanie VMS składa się z dwóch częśći - VMS serwer oraz VMS klient.. Przy instalacji mozna wybrać, którą funkcję chcesz
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
1. Opis. 2. Wymagania sprzętowe:
1. Opis Aplikacja ARSOFT-WZ2 umożliwia konfigurację, wizualizację i rejestrację danych pomiarowych urządzeń produkcji APAR wyposażonych w interfejs komunikacyjny RS232/485 oraz protokół MODBUS-RTU. Aktualny
Fizyka skal muzycznych
Kazimierz Przewłocki Fizyka skal muzycznych Fala sprężysta rozchodząca się w gazie, cieczy lub ciele stałym przenosi pewną energię. W miarę oddalania się od źródła, natężenie zaburzenia sprężystego w ośrodku
Przemysłowy odtwarzacz plików MP3
Przemysłowy odtwarzacz plików MP3 WWW.DIGINN.EU Spis treści 1. Opis odtwarzacza MP3... 3 2. Wyprowadzenia odtwarzacza... 4 2.1 Wymiary płytki... 6 4. Tryby pracy... 8 5. Podłączanie MP3 Playera... 9 6.
Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki
Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki w oparciu o przeglądarkę Microsoft Internet Explorer System stworzony został w oparciu o aktualne narzędzia i programy
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie
Umieszczanie grafiki w dokumencie
Umieszczanie grafiki w dokumencie Najczęstszym sposobem wstawiania grafiki do dokumentu jest wybranie z górnego menu polecenia Wstaw-->Obraz--Z pliku W tym oknie podajemy lokalizacje pliku, który zostanie
Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.
Kontrola topto Obsługa aplikacji Kontrola topto 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. 5. Dodawanie, edycja i usuwanie przejść.
INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia
INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia 22.04.2016 Spis treści: Jak zmienić hasło?... 1 Jak zmodyfikować profil użytkownika?... 5 Jak zmienić hasło? 1 S t r o n a Hasło umożliwia zalogowanie się
TM-47.1-2 PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T
LANEX S.A. ul. Ceramiczna 8 20-150 Lublin tel. (081) 444 10 11 tel/fax. (081) 740 35 70 TM-47.1-2 PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T LANEX S.A., ul.ceramiczna 8, 20-150
1. Wstęp Pierwsze uruchomienie Przygotowanie kompozycji Wybór kompozycji Edycja kompozycji...
Spis treści 1. Wstęp... 3 2. Pierwsze uruchomienie... 3 3. Przygotowanie kompozycji... 4 3.1. Wybór kompozycji... 4 3.2. Edycja kompozycji... 5 3.2.1. Dodawanie pliku Flash przygotowanie plików Flash...
Komputery I (2) Panel sterowania:
Komputery I (2) Paweł Jamer Panel sterowania: Podstawowym miejscem z którego zarządzamy ustawieniami systemu Windows jest panel sterowania. Znaleźć tam możemy wszelkiego rodzaju narzędzia umożliwiające
Referat pracy dyplomowej
Temat pracy: Projekt i realizacja oprogramowania generującego sekwencje dźwięków dla zastosowań muzycznych Autor: Marcin Tatuś Promotor: dr inż. Roman Simiński Referat pracy dyplomowej 1. Cel i podstawowe
1 Moduł Konwertera. 1.1 Konfigurowanie Modułu Konwertera
1 Moduł Konwertera Moduł Konwertera zapewnia obsługę fizycznego urządzenia Konwertera US- B-RS485. Jest elementem pośredniczącym w transmisji danych i jego obecność jest konieczna, jeżeli w Systemie mają
1 Moduł Inteligentnego Głośnika
1 Moduł Inteligentnego Głośnika Moduł Inteligentnego Głośnika zapewnia obsługę urządzenia fizycznego odtwarzającego komunikaty dźwiękowe. Dzięki niemu możliwa jest konfiguracja tego elementu Systemu oraz
Elektroniczne instrumenty muzyczne MIDI. w elektronicznych instrumentach muzycznych
Elektroniczne instrumenty muzyczne MIDI w elektronicznych instrumentach muzycznych Standard MIDI MIDI ang. Musical Instruments Digital Interface Standard komunikacji (wymiany danych) cyfrowych urządzeń
Instrukcja logowania do systemu e-bank EBS
Instrukcja logowania do systemu e-bank EBS 1. Instalacja programu JAVA Przed pierwszą rejestracją do systemu e-bank EBS na komputerze należy zainstalować program JAVA w wersji 6u7 lub nowszej. Można go
Komunikujemy się z komputerem.
Wiemy już dużo o tym jak komputer liczy i zachowuje informacje. Ale w jaki sposób komunikuje się on ze światem zewnętrznym? Jeśli popatrzysz na swój komputer składa się on z jednostki centralnej, dużego
Jak dodać własny szablon ramki w programie dibudka i dilustro
Aby dodać własną ramkę otwórz moduł administracyjny dibudkaadmin.exe, wejdź do zakładki Ramki, tła, id i następnie Edycja. 1. Kliknij przycisk Dodaj ramkę 2. Określ wymiary nowej ramki Jeżeli dodajesz
1 Moduł Inteligentnego Głośnika 3
Spis treści 1 Moduł Inteligentnego Głośnika 3 1.1 Konfigurowanie Modułu Inteligentnego Głośnika........... 3 1.1.1 Lista elementów Modułu Inteligentnego Głośnika....... 3 1.1.2 Konfigurowanie elementu
Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager
Tablet bezprzewodowy QIT30 Oprogramowanie Macro Key Manager Spis treści 1. Wprowadzenie... 3 2. Panel Sterowania - wprowadzenie... 4 3. Instalacja... 5 3.1 Jak stworzyć nowy profil... 5 3.2 Jak zmodyfikować
1 Moduł Modbus ASCII/RTU
1 Moduł Modbus ASCII/RTU Moduł Modbus ASCII/RTU daje użytkownikowi Systemu Vision możliwość komunikacji z urządzeniami za pomocą protokołu Modbus. Moduł jest konfigurowalny w taki sposób, aby umożliwiał
4.2. Ustawienia programu
4.2. Ustawienia programu Zmiana wielkości dokumentu Pracując w programie MS Excel 2010 niejednokrotnie doświadczysz sytuacji, w której otwarty przez Ciebie arkusz nie będzie mieścił się na ekranie monitora.
2 INSTALACJA OPROGRAMOWANIA. 3 3 GŁÓWNE OKNO PROGRAMU 3 4 MODUŁ OBSŁUGI ARCHIWUM 7
LUBUSKIE ZAKŁADY APARATÓW ELEKTRYCZNYCH LUMEL S.A. W ZIELONEJ GÓRZE PROGRAM DO KONFIGURACJI KONCENTRATORA DANYCH TYPU PD22 PD22Wiz.exe INSTRUKCJA OBSŁUGI Zielona Góra 2007 2 SPIS TREŚCI: 1 WSTĘP. 3 2 INSTALACJA
LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS
UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS
Instrukcja przygotowania i programowania animacji programem Animation Manager w drukarce fiskalnej Novitus HD E.
Instrukcja przygotowania i programowania animacji programem Animation Manager w drukarce fiskalnej Novitus HD E. str. 1 SPIS TREŚCI: 1. Przygotowanie animacji w programie VirtualDub APNG Mod 1.9.11.1....
Klawiatura i7-k1200 do sterowania rejestratorami NVR/DVR oraz kamerami IP PTZ
Klawiatura i7-k1200 do sterowania rejestratorami NVR/DVR oraz kamerami IP PTZ Instrukcja opisuje sposób zaprogramowania oraz opisuje sterowanie wyświetlaniem na monitorach podłączonych do rejestratorów
Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.
1 Moduł Modbus TCP Moduł Modbus TCP daje użytkownikowi Systemu Vision możliwość zapisu oraz odczytu rejestrów urządzeń, które obsługują protokół Modbus TCP. Zapewnia on odwzorowanie rejestrów urządzeń
a) Tworzymy podcast w programie Audacity
a) Tworzymy podcast w programie Audacity Pierwszą czynnością, jaką wykonujemy jest ściągnięcie oprogramowania ze strony www.audacity.pl. Po ściągnięciu pliku, należy go zainstalować na komputerze pamiętając
- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
Instrukcja instalacji i obsługi oprogramowania OPTIVA Mobile Viewer 2
Instrukcja instalacji i obsługi oprogramowania OPTIVA Mobile Viewer 2 Volta Sp. z o.o., ul. Jutrzenki 94, 02-230 Warszawa v. 1.2 tel. 22 572 90 20, fax. 22 572 90 30, www.volta.com.pl, volta@volta.com.pl
Wymagania edukacyjne na daną ocenę z przedmiotu MUZYKA w Szkole Podstawowej nr 4 w Aleksandrowie Łódzkim
Wymagania edukacyjne na daną ocenę z przedmiotu MUZYKA w Szkole Podstawowej nr 4 w Aleksandrowie Łódzkim Przy wystawianiu ocen z przedmiotu muzyka bardzo ważnym elementem składowym oceny jest wysiłek wkładany
Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0
Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0 Wersja z dnia: 2017-08-21 Spis treści Opis... 3 1. Zasady bezpieczeństwa... 3 Instalacja... 3 Użytkowanie...
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania
Wymagania edukacyjne z kształcenia słuchu dla klas I-III cyklu 6-cio letniego.
Wymagania edukacyjne z kształcenia słuchu dla klas I-III cyklu 6-cio letniego. Na zakończenie I roku nauki uczeń powinien wykazać się znajomością wiedzy z zakresu: potrafi zapisać klucz wiolinowy, basowy
Czytnik kart SIM instrukcja obsługi
Czytnik kart SIM instrukcja obsługi Spis treści I. Zawartość opakowania II. III. IV. Wymagania sprzętowe Instalacja Funkcje V. Podstawy VI. VII. VIII. IX. X. Języki XI. Edycja Książki Adresowej Edycja
asix4 Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika
Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika Dok. Nr PLP4013 Wersja: 04-10-2005 Podręcznik użytkownika ASKOM i asix to zastrzeżone znaki firmy
Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na 21.06.2010 r.
Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na 21.06.2010 r. W systemie SZOI została wprowadzona nowa funkcjonalność umożliwiająca tworzenie graficznych harmonogramów pracy.
Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Gramofon z wyjściem USB, ION Quickplay LP, konwerter płyt winylowych => MP3
INSTRUKCJA OBSŁUGI Gramofon z wyjściem USB, ION Quickplay LP, konwerter płyt winylowych => MP3 Nr produktu 311844 Strona 1 z 8 PRZENOSZENIE MUZYKI DO PAMIĘCI KOMPUTERA Po instalacji oprogramowania możliwe
Kurier DPD dla Subiekt GT
Dane aktualne na dzień: 20-01-2018 12:11 Link do produktu: http://www.strefalicencji.pl/kurier-dpd-dla-subiekt-gt-p-123.html Kurier DPD dla Subiekt GT Cena Dostępność 199,00 zł Dostępny Numer katalogowy
S P I S T R E Ś C I. Instrukcja obsługi
S P I S T R E Ś C I Instrukcja obsługi 1. Podstawowe informacje o programie.................................................................................... 2 2. Instalacja programu.....................................................................................................
PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA
EGMONT INSTRUMENTS PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS tel. (0-22) 823-30-17, 668-69-75 02-304 Warszawa, Aleje Jerozolimskie 141/90 fax (0-22) 659-26-11
Instrukcja obsługi pulpitu operatorskiego DCK (skrócona wersja)
Instrukcja obsługi pulpitu operatorskiego DCK (skrócona wersja) Opis urządzenia Pulpit DCK jest profesjonalnym urządzeniem do sterowania systemami CCTV. Umożliwia sterowanie urządzeniami zarządzającymi
KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT
KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT Temat: Zaimplementować system kryptografii wizualnej http://www.cacr.math.uwaterloo.ca/~dstinson/visual.html Autor: Tomasz Mitręga NSMW Grupa 1 Sekcja 2 1. Temat projektu
INSTRUKCJA OBSŁUGI. Dyktafon, nagrywanie rozmów tel, mp3, Radio FM
Instrukcja jest własnością Firmy KORJAR. Wszystkie zawarte w niej nazwy, marki, linki, screeny itp są zastrzeżone przez swoich właścicieli i są chronione międzynarodowymi przepisami o prawach autorskich.
Tworzenie prezentacji, PowerPoint
Tworzenie prezentacji, PowerPoint PowerPoint jest programem służącym do tworzenia multimedialnych prezentacji. Prezentacja multimedialna to forma przedstawienia treści (konkretnego zagadnienia), wykorzystująca
Instrukcja obsługi Konfigurator MLAN-1000
Instrukcja obsługi Konfigurator MLAN-1000 Strona 2 z 8 SPIS TREŚCI 1. Logowanie... 3 2. Diagnostyka... 4 3. Konfiguracja sterownika... 5 3.1 Konfiguracja sterownika aktualizacja oprogramowania... 5 4.
DJCONTROL COMPACT I DJUCED 18 PIERWSZE KROKI
DJCONTROL COMPACT I DJUCED 18 PIERWSZE KROKI INSTALACJA Podłącz urządzenie DJControl Compact do komputera Zainstaluj aplikację DJUCED 18 Uruchom aplikację DJUCED 18 Więcej informacji (fora, samouczki,
16MB - 2GB 2MB - 128MB
FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami
1 Moduł Modbus ASCII/RTU 3
Spis treści 1 Moduł Modbus ASCII/RTU 3 1.1 Konfigurowanie Modułu Modbus ASCII/RTU............. 3 1.1.1 Lista elementów Modułu Modbus ASCII/RTU......... 3 1.1.2 Konfiguracja Modułu Modbus ASCII/RTU...........
Roger Access Control System. Aplikacja RCP Point. Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C
Roger Access Control System Aplikacja RCP Point Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C Spis treści Spis treści... 2 1. Wstęp... 3 1.1 Przeznaczenie i główne cechy aplikacji... 3 1.2 Wymagania
Laboratorium - Podgląd informacji kart sieciowych bezprzewodowych i przewodowych
Laboratorium - Podgląd informacji kart sieciowych bezprzewodowych i przewodowych Cele Część 1: Identyfikacja i praca z kartą sieciową komputera Część 2: Identyfikacja i użycie ikon sieci w obszarze powiadomień
Ćwiczenie II. Edytor dźwięku Audacity
Ćwiczenie II. Edytor dźwięku Audacity Sprzęt Aplikacja Komputer osobisty PC Karta dźwiękowa zainstalowana w PC Mikrofon Wzmacniacz z kolumnami Audacity Program Audacity jest wielościeżkowym edytorem dźwięku.
Radioodtwarzacz CD, FM SoundMaster RCD1750SI. Strona 1 z 9
INSTRUKCJA OBSŁUGI Radioodtwarzacz CD, FM SoundMaster RCD1750SI Nr produktu 1424954 Strona 1 z 9 Główne elementy sterujące VOLUME UP 12. MONO/STEREO 1. 2. FUNCTION 13. MODE: REPEAT/ REPEAT ALL/ RANDOM
Platforma e-learningowa
Platforma e-learningowa skrócona instrukcja obsługi. Aby uruchomić platformę e-learningową, należy otworzyć przeglądarkę internetową, a następnie wpisać adres http://aok.learnway.eu/ - wyświetlony zostanie
Instrukcja do programu DoKEX 1.0
Instrukcja do programu DoKEX 1.0 Program DoKEX 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej K-EX (Kolporter Express).
Dell P2018H Dell Display Manager Instrukcja użytkownika
Dell P2018H Dell Display Manager Instrukcja użytkownika Model monitora: P2018H Model - zgodność z przepisami: P2018Hc UWAGA: UWAGA oznacza ważną informację, która może pomóc w lepszym wykorzystaniu komputera.
Galileo v10 pierwszy program
Notatka Aplikacyjna NA 03011PL Galileo v10 Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Podstawy... 3 2.1. Tworzenie nowego projektu... 3 2.2. Dodawanie pola tekstowego... 10 2.3. Przechodzenie
UNIFON podręcznik użytkownika
UNIFON podręcznik użytkownika Spis treści: Instrukcja obsługi programu Unifon...2 Instalacja aplikacji Unifon...3 Korzystanie z aplikacji Unifon...6 Test zakończony sukcesem...9 Test zakończony niepowodzeniem...14
Standard transmisji równoległej LPT Centronics
Standard transmisji równoległej LPT Centronics Rodzaje transmisji szeregowa równoległa Opis LPT łącze LPT jest interfejsem równoległym w komputerach PC. Standard IEEE 1284 został opracowany w 1994 roku
Pierwsze kroki w Sibelius 8 cz. 2 nowy utwór Opracowanie : Daniel Firlej
Pierwsze kroki w Sibelius 8 cz. 2 nowy utwór Opracowanie : Daniel Firlej Wszystkie materiały promocyjne oraz loga w tej prezentacji wykorzystano za wiedzą i zgodą ich właścicieli. Spis treści Okno dialogowe
Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1
Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Slajd 1 Excel Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz