You are on page 1of 3

Alunan Instrument Music Menggunakan Java

Jakarta, 18 Januari 2009


23.45 wib.

COPYRIGHT © RDP LABORATORIES

Pada kesempatan yang berbahagia ini, perkenankanlah saya selaku pecundank


membagi sedikit kode program sampah yang telah saya ciptakan. Kode program yang
saya buat hanyalah butiran-butiran debu yang tidak memiliki arti. Oke, cukup sekian
kata pengelantur dari saya.

Pembahasan kali ini mengenai library/class-class yang terdapat di dalam paket


javax.sound.midi. Program ini mengingatkan saya sewaktu masih di SMP, sewaktu masih
menjadi drummer('yang jagain drum-drum minyak'). Tahukah anda? Di Java kita dapat
membuat instrument berbagai alat musik, mulai dari piano, violin, saxophone, drum,
dan masih banyak lagi('gamelan, angklung, kayanya juga bisa').

Kode program berikut ini, masih sangat sederhana, karena hanya mencakup
instrument alat music piano dan drum. Berikut adalah kode program selengkapnya :

package rdp.laboratories;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.sound.midi.Synthesizer;
import javax.sound.midi.MidiChannel;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.MidiSystem;

@SuppressWarnings("serial")
public class RDPInstrumentMusic extends JFrame {

MidiChannel channel;
static JButton drums, pianos, stop;

int volume = 100;


boolean mute = true;

public RDPInstrumentMusic(final Synthesizer synth) {


super("RDP Instrument Music");
drums = new JButton("Drums Instrument");
pianos = new JButton("Pianos Instrument");
stop = new JButton("Stop");
stop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
channel.getMute();
}
});

drums.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
channel = synth.getChannels()[9];
int key = e.getKeyCode();

if (key >= 35 && key <= 127) {


channel.noteOn(key, volume);
}
}
});

pianos.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
channel = synth.getChannels()[0];
int key = e.getKeyCode();

if (key >= 35 && key <= 127) {


channel.noteOn(key, volume);
}
}
});
}

public static void main(String[] args) throws MidiUnavailableException {


Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();

JFrame frame = new RDPInstrumentMusic(synthesizer);


frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);

JPanel panel = new JPanel();


panel.setLayout(new FlowLayout());
panel.add(stop);
panel.add(pianos);
panel.add(drums);

frame.add(panel);
frame.pack();
frame.setLocation(300, 300);
frame.setVisible(true);
}
}
Setelah anda mengkompilasi dan mengeksekusi, maka anda dapat menekan tombol
keyboard untuk mendengarkan instrument music dari alat music yang anda pilih. Ayo,
di keraskan speakernya, biar terasa di studio music.

Ya, memang masih sangat sederhana sekali. Kalau dibuat program yang mempunyai
fungsi seperti organ tunggal, seru juga kali ya. Kita tidak perlu beli organ
tunggal dan membawa organ tunggal yang besar dan berat ke setiap tempat pentas.
Kita cukup membawa komputer serta alat sound system, lebih murah dan praktis.

Sepertinya cukup menarik untuk dijadikan Tugas Akhir yang judulnya “Aplikasi
Java Sebagai Pengganti Alat Music Organ Tunggal” ('Bodoh !!! Kuliah masih malas
saja, sudah membicarakan Tugas Akhir. Ingat SKSmu masih banyak yang belum lulus!').

Masih banyak fungsi dari class-class yang terdapat di paket javax.sound.midi.


Mungkin dilain waktu, akan saya bahas mengenai hal-hal yang terdapat didalamnya.
Anda dapat membaca dokumentasi(javadocs), untuk mengetahui lebih jauh.

Cukup sekian, semoga bermanfaat untuk kita semua. Dengan segala kerendahan
hati dan kebodohan diri saya mohon maaf, karena yang benar datangnya dari Allah
SWT, dan yang salah datangnya dari orang yang melakukan kesalahan('maksudnya ya
saya ini, yang selalu melakukan kesalahan'). Jika ada saran dan kritik dapat anda
tiupkan via email di generasifrustasi@gmail.com.

Kibarkan Terus Bendera 'Semangat'


Di Tiang Tinggi 'Perjuangan'

Thank’s to :

- My God Allah SWT, Kasih SayangMu Takkan Pernah Dapat Kuhitung


- My PC, Maafkan Aku Yang Telah Memaksamu Untuk Beroperasi Walau Dalam
Keadaan Sekarat
- Teman-teman di hmif.org, untuk om dewo selaku web master, untuk om ardi
selaku web design, untuk om yonda, om lukman, selaku team technical
support.

You might also like