Nada

 

Laboration 7 - förslag - Så ska det låta

I 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.

Labb x

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 audiocontrol i terminalfönstret.

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 barnvisor finns alla svenska barnvisor. Den ser ut så här:

CCGGAAG
Blinka lilla stjärna
GGGHAAAC
Björnen sover
BEbFCBAbGFEb
Bamse
C#EEC#C#HHA
Alfons Åberg
Programmet 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.


Sidansvarig: <ann@nada.kth.se>
Senast ändrad 9 maj 2010
Tekniskt stöd: <webmaster@nada.kth.se>