Processing:Библиотеки/Sound/Класс AudioSample/write(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 10: Строка 10:
==Класс==
==Класс==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
AudioSample
AudioSample
</syntaxhighlight>
</syntaxhighlight>
Строка 16: Строка 16:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
write()
write()
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 26:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
.write(data)
.write(data)
.write(startFrame, data, startIndex, numFrames)
.write(startFrame, data, startIndex, numFrames)
Строка 34: Строка 34:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
data – массив, служащий источником записываемых данных. Тип данных – float[]
data – массив, служащий источником записываемых данных. Тип данных – float[]
startFrame – индекс отсчета (сэмпла) в звуковом фрагменте, с которого нужно начать запись данных. Тип данных – int
startFrame – индекс отсчета (сэмпла) в звуковом фрагменте, с которого нужно начать запись данных. Тип данных – int
Строка 45: Строка 45:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
void
void
</syntaxhighlight>
</syntaxhighlight>
Строка 51: Строка 51:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<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


Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


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() {
}

См.также

Внешние ссылки