Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab11_Java_Vkazivky_2010_Mutimedia in Java_ Ima....doc
Скачиваний:
3
Добавлен:
17.04.2019
Размер:
863 Кб
Скачать
☆

Import javax.Sound.Midi.*;

Import java.Io.*;

class SynMIDI {

SynMIDI() {

play(synth());

}

public Sequence synth(){

Sequence seq = null;

try{

// Послідовність буде відраховувати по 10 MIDI-подій на звук довжиною в чверть

seq = new Sequence(Sequence.PPQ, 10);

// Створюємо в послідовністю одну дорожку

Track tr = seq.createTrack();

for (int k = 0; k < 100; k++){

ShortMessage msg = new ShortMessage();

// Пробігаємо MIDI-ноти від номера 10 до 109

msg.setMessage(ShortMessage.NOTE_ON, 10+k, 93);

// Будемо програвати ноти через кожні 5 відрахунків

tr.add(new MidiEvent(msg, 5*k));

msg = null;

}

} catch (Exception e) {

System. err.println("From synth(): "+e);

System.exit (0);

}

return seq;

}

public void play (Sequence seq) {

try{

Sequencer sequencer = MidiSystem.getSequencer();

if (sequencer == null){

System.err.println("Sequencer is not supported");

System.exit(0);

}

sequencer.open();

sequencer.setSequence(seq);

sequencer.startRecording();

int[] type = MidiSystem.getMidiFileTypes(seq);

MidiSystem.write(seq, type[0], new File("gammas.mid"));

}catch(Exception e) {

System.err.println("From play(): " + e);

}

}

public static void main(String[] args){

new SynMIDI();

}

}

На жаль, із-за обмалі часу ми не можемо торкнутися теми про роботу з синтезатором (synthesizer), мікшування звуку, роботи з декільками інструментами і інших можливостей Java Sound API. В документації SUN J2SDK, в каталозі docs\guide\sound\prog_guide, єсть детальне керівництво програміста, а в каталозі demo\sound\src лежать вихідні тексти синтезатора, використовуваного в Java Sound API.

3.Контрольні запитання

  1. Що називається алгоритмом?

4.Лабораторне завдання

1. Ви вже розібрали програми лістингів 10.7 і 10.8 і випробували їх. Це перші програми, які реагують на кліки мишкою по кнопках. Заставте цю програму робити щось інше, при натисканні на кнопки. Наприклад, змінювати колір компонентів, виводити текст у вікно чи в компонент, додавати нові компоненти і т. п. Переробіть круглу кнопку в овальну. Будьте готові при здачі лабораторної роботи до того, що викладач заставить вас замість овальної кнопки зробити трикутну, пятикутну, шестикутну. А також скаже, що повинна зробити програма при натисканні на кнопку.

  • Візьміть за основу програму лістингу 11.4. Додайте в форму текстове вікно і запрограмуйте повноцінний калькулятор.

  • Додайте у форму ще декілька кнопок і запрограмуйте обчислення тригонометричних, обернених тригонометричних і інших елементарних функцій. Будьте готові до того, що викладач при прийомі роботи запропонує додати ще якусь кнопку - функцію.

5. ЗМІСТ ЗВІТУ

  1. Мета роботи.

  2. Короткі теоретичні відомості.

  3. Файли проекту.

  4. Аналіз результатів та висновки.

Список рекомендованої літератури

  1. Bruce Eckel, Thinking in Java, 2nd Edition, 2000.

  2. Christopher Batty and David Scuse, Installing Eclipse. Department of Computer Science, University of Manitoba, Winnipeg, Manitoba, Canada, 2003.

31

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]