阿木博主一句话概括:PureData 语言 scale 对象数值映射的代码实现与优化
阿木博主为你简单介绍:
PureData 是一种用于实时音频和媒体处理的编程语言,广泛应用于音乐制作、音频处理和交互式艺术等领域。在 PureData 中,scale 对象用于生成音阶,而数值映射则是将输入的数值范围转换为 scale 对象所定义的音阶范围。本文将探讨如何使用代码编辑模型实现数值映射,并对相关技术进行深入分析。
一、
在 PureData 中,scale 对象是一个非常有用的工具,它可以将输入的数值映射到特定的音阶上。在实际应用中,我们可能需要将输入的数值范围(例如 0-1)映射到 scale 对象所定义的音阶范围(例如 0-127)。本文将介绍如何使用代码编辑模型实现这一数值映射,并探讨相关的技术细节。
二、数值映射的基本原理
数值映射的基本原理是将输入的数值范围线性或非线性地映射到目标范围。在 PureData 中,我们可以使用以下公式进行线性映射:
[ text{output} = text{input} times (text{max_output} - text{min_output}) + text{min_output} ]
其中,input 是输入数值,output 是输出数值,max_output 和 min_output 分别是输出范围的最大值和最小值。
三、代码实现
以下是一个使用 PureData 实现数值映射的示例代码:
```pd
PureData 代码
scale 0 12 24 36 48 60 72 84 96 108 120 127; 定义音阶
inlet; 输入
outlet; 输出
数值映射函数
map $f $in $scale;
$in = $in 127; 将输入范围从 0-1 映射到 0-127
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范围内
$in = $in - 1; 将数值范围从 1-128 映射回 0-127
$in = $in 12; 将数值范围从 0-127 映射到 scale 对象的音阶范围
$in = $in + 0; 保持数值不变
$in = $in % 128; 确保数值在 0-127 范围内
$in = $in + 1; 将数值范围从 0-127 映射回 1-128
$in = $in % 128; 确保数值在 1-128 范
Comments NOTHING