Processing:Библиотеки/Sound/Класс AudioSample/write(): различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
==Класс== | ==Класс== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
AudioSample | AudioSample | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 16: | Строка 16: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
write() | write() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 26: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
.write(data) | .write(data) | ||
.write(startFrame, data, startIndex, numFrames) | .write(startFrame, data, startIndex, numFrames) | ||
Строка 34: | Строка 34: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
data – массив, служащий источником записываемых данных. Тип данных – float[] | data – массив, служащий источником записываемых данных. Тип данных – float[] | ||
startFrame – индекс отсчета (сэмпла) в звуковом фрагменте, с которого нужно начать запись данных. Тип данных – int | startFrame – индекс отсчета (сэмпла) в звуковом фрагменте, с которого нужно начать запись данных. Тип данных – int | ||
Строка 45: | Строка 45: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
void | void | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 51: | Строка 51: | ||
==Пример== | ==Пример== | ||
<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 | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Черновик |
write()[1]
Класс
AudioSample
Обозначение
write()
Описание
Записывать данные в звуковой фрагмент можно разными способами. Во-первых, версия функции write() с 1 параметром (data) использует массив значений float в качестве источника данных, которые нужно записать в звуковой фрагмент. Этот массив должен содержать столько же значений float, сколько имеется отсчетов (сэмплов) в звуковом фрагменте. Во-вторых, при помощи функции write() с 4 параметрами (startFrame, data, startIndex, numFrames) запись можно выполнить не в весь звуковой фрагмент, а в его часть. В-третьих, при помощи версии write() с 2 параметрами (index, value) запись можно выполнить лишь в один отсчет (сэмпл) звукового фрагмента.
Синтаксис
.write(data)
.write(startFrame, data, startIndex, numFrames)
.write(index, value)
Параметры
data – массив, служащий источником записываемых данных. Тип данных – float[]
startFrame – индекс отсчета (сэмпла) в звуковом фрагменте, с которого нужно начать запись данных. Тип данных – int
startIndex – индекс значения в массиве, с которого нужно начать запись данных (как правило, «0»). Тип данных – int
numFrames – количество отсчетов (сэмплов), которые должны быть записаны в звуковой фрагмент (не может превышать data.length - startIndex). Тип данных – int
index – индекс отсчета (сэмпла) звукового фрагмента, которому нужно присвоить заданное значение. Тип данных – int
value – значение, которое нужно присвоить заданному отсчету (сэмплу). Тип данных – float
Возвращаемое значение
void
Пример
import processing.sound.*;
AudioSample sample;
void setup() {
size(640, 360);
background(255);
// создаем новый звуковой фрагмент:
sample = new AudioSample(this, 100000, 22050);
// в созданном выше звуковом фрагменте нет ничего, кроме нулей,
// поэтому давайте запишем в него какие-нибудь данные:
for (int i = 0; i < sample.frames(); i++) {
// создаем случайные значения,
// и в результате звук будет похож на белый шум:
sample.write(i, random(-100, 100));
}
sample.play();
}
void draw() {
}