Processing:Библиотеки/Sound/Класс AudioSample: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
AudioSample | AudioSample | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 37: | Строка 37: | ||
==Конструктор== | ==Конструктор== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
AudioSample(parent, frames) | AudioSample(parent, frames) | ||
AudioSample(parent, frames, stereo) | AudioSample(parent, frames, stereo) | ||
Строка 49: | Строка 49: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
parent – как правило, используется «this». Тип данных – PApplet | parent – как правило, используется «this». Тип данных – PApplet | ||
frames – количество отсчетов (сэмплов), которые будет включать звуковой фрагмент. Тип данных – int | frames – количество отсчетов (сэмплов), которые будет включать звуковой фрагмент. Тип данных – int | ||
Строка 59: | Строка 59: | ||
==Пример== | ==Пример== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
import processing.sound.*; | import processing.sound.*; | ||
AudioSample sample; | AudioSample sample; |
Версия от 18:11, 14 мая 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Черновик |
AudioSample[1]
Обозначение
AudioSample
Описание
Класс AudioSample предоставляет низкоуровневый доступ к аудио-буферу, что позволяет создавать, проигрывать, манипулировать и получать доступ к звуковым фрагментам. Если вы хотите создать звуковой фрагмент из аудиофайла, хранящегося на диске, это можно сделать при помощи подкласса SoundFile.
Методы
- channels() – возвращает количество каналов в звуковом фрагменте
- cue() – ставит курсор воспроизведения на заданную позицию звукового фрагмента
- duration() – возвращает продолжительность звукового фрагмента (в секундах)
- frames() – возвращает количество отсчетов (сэмплов) звукового фрагмента
- jump() – перескакивает на заданную позицию звукового фрагмента, продолжая его проигрывание
- play() – запускает проигрывание звукового фрагмента; проигрывает фрагмент лишь 1 раз
- rate() – задает скорость проигрывания звукового фрагмента
- resize() – меняет размер буфера звукового фрагмента на заданное количество отсчетов (сэмплов)
- sampleRate() – возвращает частоту дискретизации звукового фрагмента
- pan() – задает стерео-значение для звукового фрагмента (работает только с моно!)
- isPlaying() – проверяет, проигрывается ли в данный момент звуковой фрагмент
- pause() – останавливает проигрывание звукового фрагмента, ставя курсор воспроизведения в место, где была сделана остановка
- read() – считывает в массив заданное количество отсчетов (сэмплов) звукового фрагмента
- write() – записывает заданное количество отсчетов (сэмплов) в звуковой фрагмент
Конструктор
AudioSample(parent, frames)
AudioSample(parent, frames, stereo)
AudioSample(parent, frames, stereo, frameRate)
AudioSample(parent, data)
AudioSample(parent, data, stereo)
AudioSample(parent, data, frameRate)
AudioSample(parent, data, stereo, frameRate)
Параметры
parent – как правило, используется «this». Тип данных – PApplet
frames – количество отсчетов (сэмплов), которые будет включать звуковой фрагмент. Тип данных – int
stereo – задает то, как будет восприниматься этот звуковой фрагмент: как 2-канальный (стерео) или 1-канальный (моно). По умолчанию стоит моно (false). Тип данных – boolean
framerate – частота дискретизации звукового фрагмента (по умолчанию – 44100). Тип данных – int
data – массив значений float. Собственно, звуковые данные этого звукового фрагмента. Длина этого массива соответствует количеству отсчетов (сэмплов) в звуковом фрагменте. Тип данных – float[]
Пример
import processing.sound.*;
AudioSample sample;
void setup() {
size(640, 360);
background(255);
// создаем массив и вручную задаем в нем осциллятор,
// генерирующий синусный сигнал:
int resolution = 1000;
float[] sinewave = new float[resolution];
for (int i = 0; i < resolution; i++) {
sinewave[i] = sin(TWO_PI*i/resolution);
}
// создаем на основе этих данных звуковой фрагмент;
// частоту дискретизации задаем на 200 генераций в секунду:
sample = new AudioSample(this, sinewave, 200 * resolution);
// запускаем циклическое проигрывание звукового фрагмента
// (но не слишком громко):
sample.amp(0.2);
sample.loop();
}
void draw() {
}