RtApiWasapi::getDeviceInfo: невозможно получить формат устройства
Я пытаюсь научиться использовать обработку, и поэтому пытаюсь использовать звуковую библиотеку. При запуске любой из первых двух примеров программ, представленных по адресу https://processing.org/tutorials/sound/, IDE отвечает этой ошибкой:
Это приложение запросило среду выполнения прекратить его необычным способом. Пожалуйста, обратитесь в службу поддержки приложения для получения дополнительной информации. прекращение вызова после выброса экземпляра 'RtAudioError' what(): RtApiWasapi::getDeviceInfo: Невозможно получить формат микса устройства. Не удалось запустить эскиз (не удалось инициализировать целевую виртуальную машину). Для получения дополнительной информации прочитайте revisions.txt и Help? Поиск проблемы.
Кроме того, всякий раз, когда я пытаюсь запустить эскиз с использованием этой библиотеки, наряду с этой ошибкой, Windows говорит
Перестал работать бинарный файл Java(TM) Platform SE. Windows собирает дополнительную информацию о проблеме. Это может занять несколько минут...
Не могли бы вы помочь мне решить эту проблему? Я использую компьютер с Windows Vista. Это второй пример кода:
/**
* Processing Sound Library, Example 2
*
* This sketch shows how to use envelopes and oscillators.
* Envelopes describe to course of amplitude over time.
* The Sound library provides an ASR envelope which stands for
* attack, sustain, release.
*
* .________
* . ---
* . ---
* . ---
* A S R
*/
import processing.sound.*;
// Oscillator and envelope
TriOsc triOsc;
Env env;
// Times and levels for the ASR envelope
float attackTime = 0.001;
float sustainTime = 0.004;
float sustainLevel = 0.2;
float releaseTime = 0.2;
// This is an octave in MIDI notes.
int[] midiSequence = {
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72
};
// Set the duration between the notes
int duration = 200;
// Set the note trigger
int trigger = 0;
// An index to count up the notes
int note = 0;
void setup() {
size(640, 360);
background(255);
// Create triangle wave and envelope
triOsc = new TriOsc(this);
env = new Env(this);
}
void draw() {
// If value of trigger is equal to the computer clock and if not all
// notes have been played yet, the next note gets triggered.
if ((millis() > trigger) && (note<midiSequence.length)) {
// midiToFreq transforms the MIDI value into a frequency in Hz which we use
//to control the triangle oscillator with an amplitute of 0.8
triOsc.play(midiToFreq(midiSequence[note]), 0.8);
// The envelope gets triggered with the oscillator as input and the times and
// levels we defined earlier
env.play(triOsc, attackTime, sustainTime, sustainLevel, releaseTime);
// Create the new trigger according to predefined durations and speed
trigger = millis() + duration;
// Advance by one note in the midiSequence;
note++;
// Loop the sequence
if (note == 12) {
note = 0;
}
}
}
// This function calculates the respective frequency of a MIDI note
float midiToFreq(int note) {
return (pow(2, ((note-69)/12.0)))*440;
}