Elektrotehnički fakultet Univerziteta u Beogradu Katedra za računarsku tehniku i informatiku Praktikum iz objektno-orijentisanog programiranja (13S112

Слични документи
Opšte korisničko uputstvo

KaPuSaO CAD SOFTVERSKI PAKET Računarski program KaPuSaO, je softverski paket koji je namenjen evidentiranju i administriranju putnih pojava, saobraćaj

Slide 1

Tutoring System for Distance Learning of Java Programming Language

Video automat More Lucky & Wild Uvod Kako se kladiti? Opcija Gamble Upravljanje igrom Pravila Bonus Jackpot karte Prekidi igre Povrat novca igračima U

X ROULETTE SILVER Korisnički priručnik / Pravila igre (v 1.7) 1. PREGLED IGRE U igri Roulette Silver (srebrni rulet), pokušavate pogoditi u kojem broj

X EUROPEAN ROULETTE Korisnički priručnik / Pravila igre (v 1.5) 1. PREGLED IGRE U igri European Roulette (europski rulet), pokušavate pogoditi u kojem

X ROULETTE 3D Korisnički priručnik / Pravila igre (v 1.9) 1. PREGLED IGRE U igri Roulette 3D pokušavate pogoditi u kojem broju utora će se zaustaviti

X PUNTO BANCO Korisnički priručnik / Pravila 1. PREGLED IGRE Igru Punto Banco igrate u ulozi gledatelja. Djelitelj dijeli karte igraču i kući (djelite

GODIŠNJI FINANCIJSKI PLAN DSVR-A ZA GODINU GODIŠNJI FINANCIJSKI PLAN DRUŠTVA SPORTAŠA VETERANA I REKREATIVACA ZA GODINU U Zagrebu, siječan

Otvoreno računarstvo o 4. laboratorijska vježba o Java Igor Čavrak

PODUZETNIŠTVO

subagent GRCKA OSTRVA LETO 2019 ~ LEFKADA 10 NOCENJA ~ Avio prevoz Direktni carter letovi iz Beograda Placanje na rate do kraja godine Cena aranţmana

Microsoft PowerPoint Stabilizatori 3 od 3 (16) EKM [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

Microsoft Word - ADICIONE FORMULE.doc

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Tutoring System for Distance Learning of Java Programming Language

TEHNIČKI OPIS NATJECATELJSKE DISCIPLINE RAČUNOVODSTVO

Microsoft Word - SVODJENJE NA I KVADRAT.doc

DEALER GENERAL

LJUSKE I KUPOLE Povjesne kupole

Slide 1

IZVEŠTAJ

IZVEŠTAJ

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

IZVEŠTAJ

Politika posljednji put revidirana: 31. siječnja POLITIKA ZAŠTITE PRIVATNOSTI Bridgestone Europe NV/SA, društvo osnovano u skladu s belgijskim z

PowerPoint-Präsentation

Razvoj ekonomske misli

Joint EU/CoE Project Strategic Development of Higher Education and Qualification Standards 2 nd Workshop on Qualification and Occupational Standards 6

Slide 1

Opći opis funkcionalnosti Poslovna platforma je digitalna poslovna platforma za pravne osobe koja integrira komercijalno i financijsko poslovanje uz a

RBP_09

Otpornost materijala

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

OPĆI UVJETI ZA IZDAVANJE I KORIŠTENJE VISA CLASSIC REVOLVING KARTICE OTP BANKE d

OBJAVLJIVANJE PODATAKA O PRENOSU VREDNOSTI: SAŽETAK METODOLOGIJE 1. OBAVEZA KOMPANIJE ASTELLAS 1.1 Astellas je kompanija koja je članica Evropske fede

ADSL2+ 4 Port WLAN 11n Router Opšti zahtjevi Mogućnost pristupa multimedijalnim servisima (VoIP i IPTV) u bridge načinu rada; Mogućnost pristupa Inter

Šifra GORIONIK ZA PELET B-Home Round 25 B-Essential Round 50 Šifra EBM / R1 UPUTSTVO ZA KORIŠĆENJE, MONTAŽU I ODRŽAVANJE SR Pročitati veom

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

PowerPoint Presentation

Јована Мариновића бр.2,11040 Београд, Србија,тел: ; факс: ПИБ бр мат. бр рач. бр број:

Draft Inception Report

4/30/2015 Poziv za javnu nabavku etender Portal - UJN CG CRNA GORA Ministarstvo finansija Uprava za javne nabavke Obrazac 3 Član 63 Zakona o javnim na

Microsoft Word - PLANIMETRIJA.doc

Јована Мариновића бр. 2, Београд, Србија, тел: ; факс: е-тан: Н20.Г5 ПИБ бр мат. бр

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Funkcije predavač: Nadežda Jakšić

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Okvir za smanjenje rizika od katastrofa iz Sendaija –2030.

Finalno izvješće s održanih promocijskih dana Karijera nakon sportske karijere 1. Uvod U okviru projekta Sportaši i obrazovanje proveden j

Projektna dokumentacija Boostowski - mobile

Microsoft PowerPoint - Teorija kreanja vozila-predavanje 2.2.ppt

Microsoft PowerPoint - NG_A-Perspektiva-2.ppt

Predujam za pripremu

R u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s

ATLAS TALENATA- Materijal Ovaj proizvod je nastao u sklopu projekta Otvaranje novih mogućnosti preko obrazovanja Nemačkog udruženja narodnih univerzit

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

18. ožujka Državno natjecanje / Osnovna škola (6. razred) Primjena algoritama (Basic/Python/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Kineski..

Crna Gora Mali i Zi OPSTINA ULCINJ KOMUNA E ULQINIT Sekretarijat za prostorno planiranje i odrzivi razvoj Sekretariati per planifikim hapsinor dhe zhv

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt

Slide 1

LEGENDA: OBOJENO ŽUTIM SU STARI UVJETI

Microsoft Word - Opći uvjeti-skrbništvo nad financijskim instrumentima_ docx

1

Srbija se i dalje smatra zemljom tranzita, jer većina migranata namerava da nastavi svoj put do Zapadne Evrope. Legalni način da to urade, dolaskom na

Primenjeno programiranje - Vežbe

Laboratorija za termičku obradu Inženjerstvo površina Kratko uputstvo za obradu i analizu profila u programskom paketu SPIP Programski paket SPIP preu

BOLONJA BOLONJA-RIMINI-SAN MARINO-RAVENA-MODENA- PARMA 5 DANA, 2 NOĆENJA BUS 1 Polazak iz NIŠA BUS 2 Polazak iz KRALJEVA PROGRAM PUTOVANJA: 1. dan MES

Uvod u računarstvo 2+2

Microsoft Word - vjezbe_7.doc

BOSNA I HERCEGOVINA FEDERACIJA BOSNA I HERCEGOVINA KANTON SARAJEVO OPĆINA CENTAR SARAJEVO Služba za upravu za imovinsko-pravne pos geodetske poslove i

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Sustav odvodnje i pročišćavanja otpadnih voda aglomeracije MURSKO SREDIŠĆE USLUGE NADZORA NAD IZGRADNJOM SUSTAVA ODVODNJE I PROČIŠĆAVANJA OTPADNIH VOD

Otvoreno računarstvo

LEXUS LC 500 i 500h CJENIK PAKETA I OPREME

PowerPoint Presentation

Рслублички фонд за Јована Мариновићабр. 2,11040 Београд, Србија Тел: 011/ , ; Факс: 011/ е-тап: ривпс^ггго.ге 15К С ПЕ Д О В А Н

PRORAČUNSKI KORISNIK CENTAR ZA KULTURU "DR. IVAN KOSTENČIĆ" 2. IZMJENE PLANA PRIHODA I RASHODA ZA GODINU I PRIJEKCIJA PLANA ZA I 201

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

PowerPoint Presentation

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Dijagrami sekvenci

Funkcije predavač: Nadežda Jakšić

LEXUS RX 450h L CJENIK PAKETA I OPREME

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

UPUTSTVO ZA KRETANJE KROZ EON KORISNIČKI INTERFEJS 1

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

TURIZAM MAKARSKA SKRIPTA Položi turizam i pravac Makarska ID: 30502

Microsoft PowerPoint - Lab_step_nc2017.ppt [Compatibility Mode]

KATALOG ZNANJA IZ INFORMATIKE

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

Primenjeno programiranje - vezbe GUI i baze podataka

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког развоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

SELECT statement basic form

Транскрипт:

Praktikum iz bjektn-rijentisang prgramiranja (13S112POOP) Prjektni zadatak Java Napisati skup klasa sa dgvarajućim metdama, knstruktrima, peratrima i destruktrima za realizaciju sftverskg sistema za sviranje klavira. Ptrebn je bezbediti mgućnst sviranja pmću tastature ili miša, ka i učitavanje i snimanje kmpzicija. Pdržani frmati fajlva treba da budu TXT i MIDI a treba predvideti i mgućnst prširenja drugim frmatima. Opis frmata navedenih fajlva je dat u prilgu vg dkumenta. Krisnik (naručilac) sftvera, želi da sftver pruži sledeće funkcinalnsti: Interakciju sa krisnikm putem grafičkg krisničkg interfejsa Učitavanje pdataka Osnvnu bradu učitavanje pdataka kmpziciji učitavanje pdataka ntama prikaz pdataka kmpziciji sviranje pmću tastature ili miša snimanje kmpzicije Eksprtvanje kmpzicije Kraj rada frmatiranje fajlva p TXT ili MIDI frmatu Za uspešn rešenje zadatka ptrebn je izvršiti analizu zahteva. Ka rezultat analize, ptrebn je dpuniti i precizirati funkcinalnu specifikaciju sftverskg alata. Na snvu specifikacije, ptrebn je napisati sistem klasa u jeziku Java kje realizuju traženi sftver. U nastavku su navedeni neki elementi specifikacije. Od studenata se čekuje da dpune ne stavke kje nisu dvljn precizn frmulisane, dnsn ddaju nve stavke (tam gde t ima smisla) uklik uče prstr za unapređenje. Izmene i dpune specifikacije mgu da dnekle dudaraju d zahteva naručica sftvera u nj meri u kjj t neće narušiti traženu funkcinalnst. Takđe, prilženi UML dijagram kji pisuje zahtevani sftver se ne mra bavezn pštvati, već sam predstavlja skicu ptencijalng rešenja. Prilikm izrade specifikacije vditi računa ptencijalnm unapređenju sftvera na snvu naknadnih zahteva. Prilikm izrade rešenja, d studenata se čekuje intenzivn krišćenje svih nih mgućnsti kje pružaju specifikacija i bibliteke jezika Java, ka št su klekcije, algritmi, regularni izrazi, iteratri, lambda izrazi i sl. Rešenja kja ne vde računa vm aspektu neće mći da dbiju maksimalan brj pena. Takđe, vditi računa bjektn rijentisanm dizajnu rešenja, čistći, čitksti i kmentarisanju prgramskg kda. 1

Osnvni pjmvi Kmpzicija se sastji d muzičkih simbla. Muzički simbli su nta i pauza. Muzički simbl ima svje trajanje kje se zadaju u vidu razlmka. Nta je pisana ktavm (ce brj u psegu 2-6) i visinm (C, D, E, F, G, A, B, pznatije ka: DO, RE, MI, FA, SOL, LA, SI). Izgled upršćene verzije klavira kja se kristi u vm prjektu sa značenim ktavama dat je na slici 1. Slika 1. Izgled klavira Ntu je mguće pvisiti ddavanjem zanaka # (pvisilica), te je pvišena nta C u stvari C# (tuda i naziv prgramskg jezika). Pvišene nte se na klaviru sviraju na crnim dirkama desn d snvne nte. Slžena nta (dvzvuk ili akrd) se sastji d više drugih nta kje se sviraju istvremen, a sve mraju biti istg trajanja. C D E F G A B Na slici 2. dat je uvećan prikaz jedne ktave sa značenim tnvima. Crnim slvima su na dirkama značeni tnvi kje predstavljaju bele dirke, dk su crvenim slvima značeni tnvi kje predstavljaju crne dirke iznad njih, tj. pvišeni tnvi (snizilice nećem razmatrati u vm prjektu). Raspred tnva je u isti u svim ktavama, a radi jednstavnsti uzet je da se klavir sastji d 5 celih ktava. Slika 2. Izgled jedne ktave 2

Funkcinalna specifikacija U nastavku je zadat de krisničkih zahteva kje treba razraditi i, p ptrebi, dpuniti tak da se dbije funkcinalna aplikacija. Interakcija sa krisnikm Krisnik mže da interaguje sa prgramm izbrm u datm trenutku dstupnih pcija putem grafičkg krisničkg interfejsa. Interakcija mže da se vrši putem tastature ili miša. U zavisnsti d izabrane pcije i njenih parametara, prgram izvršava zadatu pciju ili ispisuje pruku greške. Pruka greške treba da bude št je mguće detaljnija da bi krisniku pmgla da grešku tklni. Sve eventualne parametre kji su ptrebni prilikm rada aplikacije je ptrebn zatražiti d krisnika. Uklik krisnik ne zada ništa, kristiti vrednsti fiksirane u prgramu. Učitavanje pdataka Predvideti pstjanje knfiguracing fajla sa ptrebnim mapiranjima karaktera na nte i MIDI brjeve. U svakm redu datteke nalaze se pdaci za p jedan ulazni karakter i t: karakter kji se pisuje, tekstualni pis nte i MIDI brj nte, dvjeni znakm zareza, ka u navedenm primeru, kji pisuje karakter t kji se mapira na ntu C4 čiji je MIDI brj 60: t,c4,60 Dat mapiranje ptrebn je iskristiti prilikm iscrtavanja klavira. Na zahtev krisnika na svakj dirki klavira se iscrtava karakter kji je ptrebn pritisnuti na tastaturi da bi se prizve tn te dirke, št će detaljnije biti pisan u nastavku dkumenta. Krisnik dabirm pnuđene pcije iz menija i unsm putanje d ulazng fajla mže zahtevati učitavanje kmpzicije. Prilikm učitavanja dvljn je pdržati sam tekstualni frmat fajla. Ulazni fajl se sastji d sekvence karaktera kji pisuju muzičke simble. Mže sadržati prelaze u nvi red, ali njih treba ignrisati. Dekdvanje ulazng fajla i pretvaranje karaktera u muzičke simble se vrši uz pmć mapiranja kje se učitava p pkretanju prgrama. Na snvu mapiranja se dređuje visina i ktava u kjj se nta nalazi. Prilikm parsiranja fajla pauze i trajanja nta se dređuju prema sledećim pravilima: blank znak značava pauzu u trajanju 1/8 znak između simbla značava pauzu u trajanju 1/4 trajanje nta navedenih unutar uglastih zagrada sa znakm razmaka između svake nte je 1/8 navđenje nta unutar uglastih zagrada bez znaka razmaka između njih značava da sve nte treba dsvirati u istm trenutku i sve nte su trajanja 1/4 trajanje nta navedenih van zagrada je 1/4 3

U nastavku je dat primer dela ulazng fajla, a u tabeli ispd i tumačenje svakg d simbla: [Yui] t Yu [t u y] Ulazni simbli Simbli kje značavaju Trajanje simbla [Yui] nte D#4, E4 i F4 1/4 (sviraju se istvremen) _ (blank znak) pauza 1/8 t nta C4 1/4 pauza 1/4 Yu nte D#4 i E4 1/4 (sviraju se jedna za drugm) _ (blank znak) pauza 1/8 [t u y] nte C4, E4 i D4 1/8 (sviraju se jedna za drugm) Prilikm učitavanja pdataka kmpzicijama i ntama kristiti regularne izraze za parsiranje datih fajlva. Predvideti način za pravak d grešaka u slučaju neispravng frmata datteke ili nepstjanja tražene datteke. Osnvna brada Krisniku je ptrebn mgućiti sledeće: Učitavanje i prikaz kmpzicije. Krisnik mže izabrati da se učitana kmpzicija prikazuje u vidu slva iz tekstualng fajla iz kg je vršen učitavanje ili u vidu tekstualnih pisa nta, kje je mguće prnaći u fajlu sa mapiranjem. U ba slučaja se sve nte kje se sviraju u jednm trenutku ispisuju vertikaln (jedna ispd druge). Prilikm ispisivanja pauza dvljn je staviti prazan prstr. Trajanja 1/4 značiti crvenm bjm pzadine ili slva, a trajanja 1/8 zelenm bjm. Ispd ispisa tekstualnih pisa stavljati markere u vidu crnih linija kje značavaju četvrtine. Na slici 3. prikazani su primeri ba načina ispisa datg dela kmpzicije. [Yui] t Yu [t u y] Slika 3. Primeri ispisa kmpzicije 4

Autmatsk sviranje kmpzicije. Krisnik mže zatražiti da se učitana kmpzicija dsvira. Ptrebn je bezbediti mgućnst privremeng i trajng zaustavljanja sviranja. Tkm sviranja na prikazanm klaviru ptrebn je crvenm bjm beležavati dirke tnva kji se u tm trenutku sviraju. Takđe, tekstualni prikaz kmpzicije je ptrebn pmerati ulev tkm sviranja tak da je prvi prikazani tn uvek naj kji se trenutn svira. P završetku sviranja kmpzicije ptrebn je vratiti tekstualni prikaz u prvbitn stanje. Sviranje klavira. Krisnik u bil km trenutku (i pre učitavanja kmpzicije) mže svirati p klaviru pmću miša (klikm na prikazane dirke) ili tastature (pritiskanjem tastera na tastaturi kji dgvaraju dirkama klavira). Obezbediti mgućnst da se na dirkama klavira ispišu tekstualni pisi nta radi lakšeg sviranja. Uklik prilikm sviranja klavira pstji učitana kmpzicija i krisnik dsvira tn kji se i čekuje ptrebn je pmeriti prikaz kmpzicije ulev (ka i kd autmatskg sviranja) sve d sledećeg tna kji se svira (navedeni kncept je čest mguće naći u igricama kje testiraju kucanje na tastaturi, a u kjima se pjavljuju i pmeraju ulev reči kje je ptrebn tkucati). Uklik se čekuje više tnva istvremen njihv redsled se mže zanemariti, ali je ptrebn da svi budu dsvirani u kratkm vremenskm intervalu. P završetku kmpzicije ili na zahtev krisnika ptrebn je vratiti tekstualni prikaz na pčetak kmpzicije. Snimanje kmpzicije. Ptrebn je bezbediti mgućnst snimanja kmpzicije. Krisnik mže izabrati pciju za pčetak snimanja, a zatim svira p prikazanm klaviru na jedan d pisanih načina. P završetku, krisnik bira pciju za snimanje kmpzicije kju je svira. Prgram treba da bezbedi eskprtvanje dsvirane kmpzicije u tekstualnm ili MIDI frmatu u fajl sa zadatm putanjm. Pauze na pčetku i kraju kmpzicije je ptrebn ignrisati. Trajanje tnva dređivati na snvu dužine pritiska tastera. Kraj rada Krisnik mže da zahteva kraj rada. Od krisnika se traži ptvrda za napuštanje prgrama, uz upzrenje uklik prgram nakn pslednjeg snimanja kmpzicije nije generisa neki fajl. Krisniku treba pnuditi mgućnst da eksprtuje kmpziciju pre napuštanja prgrama, uklik t želi. Testiranje rada prgrama Test primere za testiranje rada realizvang sftverskg rešenja mguće je naći na sajtu: https://virtualpian.net/. Sajt mgućava sviranje virtuelng klavira pmću tastature računara, prema istim pravilima kja važe i u vm prjektu. Za veliki brj kmpzicija bezbeđeni su skupvi karaktera kje je ptrebn pritiskati, kji ujedn predstavljaju i ulazne fajlve vg sftvera, a mguće ih je prnaći pd pcijm Music sheets. Rezultat rada prgrama, dnsn krektnst generisanih fajlva je mguće prveriti alatima za reprdukciju. 5

MIDI fajl mže se prveriti pmću velikg brja audi alata, među kjima je i Windws Media Player, kji dlazi instaliran uz Windws perativni sistem i pdržava puštanje midi fajlva. Dijagram klasa Na snvu prethdne funkcinalne specifikacije frmiran je sledeći dijagram klasa. Dijagram klasa nije detaljan, te ga treba tumačiti ka skicu kja načeln ukazuje na arhitekturu sftvera. Studenti mgu da kriste vaj dijagram ka referencu i, p ptrebi, pršire ga da bi ga usaglasili sa eventualnim dpunama specifikacije. Prilikm implementacije rešenja, bratiti pažnju na bjektn rijentisani dizajn i intenzivn kristiti klekcije i algritme standardne bibliteke jezika Java i lambda funkcije gde gd je t mguće. Primetiti da pstje dva različita frmata izlaznih fajlva. Specifikacija MIDI frmata Kmpletnu specifikaciju MIDI frmata fajla mguće je prnaći na sledećj adresi: http://www.music.mcgill.ca/~ich/classes/mumt306/standardmidifilefrmat.html Za ptrebe prjekta ptrebn je iskristiti Java Sund API : https://www.racle.cm/technetwrk/java/javasunddem-140014.html Na navedenm linku mguće je naći kmpletnu dkumentaciju, a na narednj strani dkumenta dat je primer uptrebe v bibliteke. U primeru je predstavljena jedna klasa sa glavnm funkcijm, a p pkretanju krisnik ima mgućnst da unsi MIDI brjeve nta kje prgram ptm svira. 6

package muzika; imprt javax.sund.midi.midichannel; imprt javax.sund.midi.midisystem; imprt javax.sund.midi.midiunavailableexceptin; imprt javax.sund.midi.synthesizer; imprt java.util.scanner; public class MidiPlayer { private static final int DEFAULT_INSTRUMENT = 1; private MidiChannel channel; public MidiPlayer() thrws MidiUnavailableExceptin { this(default_instrument); public MidiPlayer(int instrument) thrws MidiUnavailableExceptin { channel = getchannel(instrument); public vid play(final int nte) { channel.nteon(nte, 50); public vid release(final int nte) { channel.nteoff(nte, 50); public vid play(final int nte, final lng length) thrws InterruptedExceptin { play(nte); Thread.sleep(length); release(nte); private static MidiChannel getchannel(int instrument) thrws MidiUnavailableExceptin { Synthesizer synthesizer = MidiSystem.getSynthesizer(); synthesizer.pen(); return synthesizer.getchannels()[instrument]; public static vid main(string[] args) thrws Exceptin { MidiPlayer player = new MidiPlayer(); Scanner scanner = new Scanner(System.in); int nte; while (!Thread.currentThread().isInterrupted()) { System.ut.print("Nte (1..127) : "); nte = scanner.nextint(); player.play(nte, 200); scanner.clse(); 7