Laboration 7 - förslag - Så ska det låtaI den här labben ska du göra ett piano som låter och kan känna igen melodier. Så här kan det se ut.
![]() Steg 1: Grafik Gör en klaviatur med boxar. Utgå från oktaven som vi byggde på en av övningarna. Vi gjorde inte den uppgiften på kursen 2010 men lösningen finns här: Piano.java.
Steg 2: Ljud
Innan du sätter igång med ljudet kan det vara bra att starta programmet
När man trycker på tangenterna med musen ska det låta i högtalarna. För det krävs förstås en muslyssnare och så några magiska satser för att trolla fram ljud. Först behövs importraden import javax.sound.midi.*;och sedan initierar man så här: MidiChannel channel; Synthesizer synthesizer; try { synthesizer = MidiSystem.getSynthesizer(); synthesizer.open(); channel = synthesizer.getChannels()[0]; } catch(Exception e){System.out.println(e);}Nu kan man spela en ton genom att anropa channel.noteOn(ton, styrka)
där ton är ett heltal som anger vilken ton man vill spela och
styrka är ett heltal som anger hur starkt den ska spelas. Ettstrukna
C (i mitten på ett vanligt piano) har nummer 60 och 100 är en rimlig styrka.
När man har tröttnat på ljudet anropar man channel.noteOff(ton) .
Steg 3: Melodiigenkännare
I filen CCGGAAG Blinka lilla stjärna GGGHAAAC Björnen sover BEbFCBAbGFEb Bamse C#EEC#C#HHA Alfons ÅbergProgrammet ska läsa in filen och lagra alla melodier i en hashtabell. Om användaren spelar någon av melodierna så ska hon få reda på det så du måste komma ihåg dom senaste tonerna användaren spelade och kolla om den tonföljden finns i hashtabellen. |