TVP
TVP 就是组织化植物蛋白。它是用脱脂大豆粉制成,脂肪含量很低( 3% )。通常被制成片状、粒状或块状,可以当作牛肉馅的替代品。要注意的是 TVP 和 HVP (植物水解蛋白)不同。 HVP 是食品添加剂,含有大量 MSG (谷氨酸一钠),而 TVP 不含这种成分。虽然 TVP 本身的脂肪含量很低,但是工业产品中有时候会额外添加脂肪。
*.tvp 天天动听V3.3.0及以上版本可的视化效果配置文件,后缀为tvp,存在放在x:/ttpod/plugins/内。(注:x 代表软件安装盘,如,C:,E:盘)
可视化效果语法说明,需要对基础程序语言有一些了解,有兴趣的朋友可以研究一下。波形图的语法其实是很简单的,所有的操作参数都遵照这样的格式
(运算符 参数 ...)
参数可以(通常)是下面的一种
一个字 支持只有数值,及所有浮点数字
例如 1.0 23.92
一个变量 变量的引用方式为'$名字','名字'可以是任何字符或数字
文字式的组合。
例如:$x $Volume $Y3
脚本现在支持一种简单的数组类型,在一个数组中
最大可自定义的数字为1024。这个数组可以按下面的方式
书写
[$名字 参数]
注意:这个'$'是必须填写的。'参数'可能是任
何参数的类型。只有'参数'的整数部分的内容是有用的。
任何可以使用变量的地方都可以使用数组。
一个运算符 大多数的参数可以是另一个运算的返回值
例如 (运算 (运算 参数) 参数)
你需要在你的脚本中定义一些在恰当时间运行的函数。比如,脚本的所有类型应该有
一个用来为主函数准备相关变量和设置的初始函数,一个初始函数的范本应该是
(function init
(= $RandomX (- (rnd 2.0) 1.0))
(= $RandomY (- (rnd 2.0) 1.0))
)
要读懂脚本代码,最好是从内到外。所以,在这个例子中最里层的函数是(rnd 2.0),
这个会返回一个在0.0和2.0之间的随机数字;
向外一层是(- (rnd 2.0) 1.0),
这个是指用0.0到2.0之间的一个随机数值减去1.0的差值;
外层是(= $RandomX (- (rnd 2.0) 1.0)),
指的是设置变量$RandomX的值为我们刚才计算出的值(也就是(- (rnd 2.0) 1.0));
翻译成C语言也就是:$RandomX = rnd(2.0) - 1.0
你会注意到:整个函数包含在(function init ..)内。
这是如何定义函数。此时如果不能运行你自己的函数,那么你只需要为每种类型的脚本创建所需的函数。
尽管语言可能看上去令人费解,但它很容易学,并且它独特的布局设计允许简单快速的编译并运行这些脚本。
函数列表
-------------
下面的函数是可用的
数学运算符:
这些是一些数学函数,及三角函数和其他一些标准数学函数。三角函
数中的所有角度都是按弧度的(一个满圆是2π×弧度)
函数 用法 注释
-------- ----------------------- --------------------------------------
+ (+ arg1 arg2 ...) 和:返回(arg1 + arg2)的值,可以添加更多参数。
- (- arg1 arg2) 差:返回(arg1 - arg2)的值
* (* arg1 arg2 ...) 积:返回(arg1 * arg2)的值,可以添加更多参数。
/ (/ arg1 arg2) 商:返回(arg1 / arg2)的值,如果arg2 = 0,那么返回结果0
mod (mod arg1 arg2) 余数:返回(arg1 / arg2)的余数
% (% arg1 arg2) 余数:和mod含义相同
abs (abs arg1) 绝对值:返回arg1的绝对数值
trunc (trunc arg1) 整数部分:返回arg1的整数部分
sign (sign arg1) 正负:如果arg1 >= 0,返回值为1.0,否则为-1.0
pos (pos arg1) 非负数:如果arg1 >= 0,返回值为arg1,否则为0.0
neg (neg arg1) 反数:返回arg1的反数。注意:这个不同于pos函数,而是等同于(- 0 arg1)。
sqrt (sqrt arg1) 平方根:返回arg1的平方根值
log (log arg1) 对数:返回arg1的对数
exp (exp arg1) 指数:返回arg1的指数
pow (pow arg1 arg2) 幂指数:返回arg1的arg2次方冥
sin (sin arg1) 正弦:返回arg1的正弦值
cos (cos arg1) 余弦:返回arg1的余弦值
tan (tan arg1) 正切:返回arg1的正切值
atan (atan arg1 arg2) 反正切:返回arg2 / arg1 的反正切。正确对待arg1 = 0。
rnd (rnd [arg1 [arg2]]) 随机:返回一个在arg1和arg2之间的随机数值。
如果没有arg2,则会返回一个在0和arg1之间的值;
如果都没有,那么返回一个0和1之间的值。
wrap (wrap arg1 [arg2 剪切arg1到[arg2, arg3]的范围内
[arg3]])
clamp (clamp arg1 [arg2 如果arg1小于arg2,返回arg2
[arg3]]) 如果arg1大于arg3,返回arg3
否则返回arg1
逻辑运算符:
逻辑运算使用了布尔函数的许多语法。
由于脚本只支持浮点数,所以值1.0表示真,值0.0表示假。
在使用逻辑数字时,所有非0数字都被认为是真。
函数 用法 注释
-------- ----------------------- --------------------------------------
&& (&& arg1 arg2 ...) 当arg1和arg2同时非0时,视为真。
如果添加更多参数,那么它们必须同样是非0数值。
当找到第一个0值时,只有足够的参数会被评估,
否则全部参数会被评估。
|| (|| arg1 arg2 ...) 当arg1或者arg2为非0值时,视为真。
如果添加更多参数,那么它们必须同样是非0数值。
当找到第一个非0值时,只有足够的参数会被评估,
否则全部参数会被评估。
! (! arg1) 当arg1为0时,视为真。
== (== arg1 arg2) 如果arg1和arg2相等时,视为真。
!= (!= arg1 arg2) 当arg1不等于arg2时,视为真。
< (< arg1 arg2) 当arg1小于arg2时,视为真。
<= (<= arg1 arg2) 当arg1小于等于arg2时,视为真。
> (> arg1 arg2) 当arg1大于arg2时,视为真。
>= (>= arg1 arg2) 当arg1大于等于arg2时,视为真。
位运算符
尽管脚本中的所有变量是浮点数字,但一小部分的位运算符还是可用的。位运
算符的小数部分将被丢弃,整数部分可以调用。
函数 用法 注释
-------- ----------------------- --------------------------------------
& (& arg1 arg2 ...) 返回arg1和arg2的按二进制位进行“与”运算的值,
如果提供更多参数,它们同样按“与”运算。
| (| arg1 arg2 ...) 返回arg1和arg2的按二进制位进行“或”运算的值,
如果提供更多参数,它们同样按“或”运算。
<< (<< arg1 arg2) arg1整数值左移arg2位。
>> (>> arg1 arg2) arg1整数值右移arg2位。
赋值操作
函数 用法 注释
-------- ----------------------- --------------------------------------
= (= $v arg1) 等于
polar (polar $v1 $v2 arg1 转换arg1和arg2的x,y坐标为极坐标,
arg2) 并且把它们赋予给变量$v1和$v2(分别为半径和角度)
函数返回值为$v1
cart (cart $v1 $v2 arg1 转换arg1和arg2的极坐标为x,y坐标,
arg2) 并且把它们赋予给变量$v1和$v2(分别为x和y坐标)
这个函数的值为$v1的值
+= (+= $v arg1) 等同于(= $v (+ $v arg1))
-= (-= $v arg1) 等同于(= $v (- $v arg1))
*= (*= $v arg1) 等同于(= $v (* $v arg1))
/= (/= $v arg1) 等同于(= $v (/ $v arg1))
%= (%= $v arg1) 等同于(= $v (% $v arg1))
流程函数:
这些功能允许辅助于下面的函数
函数 用法 注释
-------- ----------------------- --------------------------------------
function (delcare name [arg 运行一个函数。name是函数名,arg为参数
...]) 没有值从函数中返回。它只能最外层而且同样只在最外层有效。
block (block [arg ...]) 执行一个代码段。返回值是最后的参数。
if (if arg1 arg2 [arg3]) 如果arg1, arg2, arg3同时为真,返回1
否则返回0
loop (loop $v1 arg1 arg2 不断从[arg1, arg2]中顺序取一个整数值,赋值给$v1
arg3 并执行arg3
while (while arg1 arg2) 只要arg1为真,则不断执行arg2
音频数据函数:
这些函数允许你获取当前时间的音频数据,它们只能用在在Color,Wave,Sugar函数中。
函数 用法 注释
-------- ----------------------- --------------------------------------
lSpect (lspect arg1) 返回arg1对应的频率强度。arg1应该
在0到1的范围。这个数据是左声道的。返回的
数值在0到1的范围。
rSpect (rspect arg1) 同lspect相同,除了数据是右声道的。
lWave (lwave arg1) 返回此时arg1(范围是0到1)指定的波动值
(范围为-1到1)。数据取自左声道。
rWave (rwave arg1) 同lwave相同,除了数据是取自右声道。
3D函数:3dSetup和3dRotate会在很多点将要以相同的角度旋转时使用。
3dSetup被调用一次,而更多的会被调用为3dRotate。
函数 用法 注释
-------- ----------------------- --------------------------------------
3dSetup (3dSetup arg1 arg2 用arg1,arg2和arg3分别对应x,y和z的
arg3 ) 转动数值来确定一个旋转的点阵。这个函数
应该在3dRotate函数调用前调用,当你以相
同角度选择很多点时会预先计算。
3dRotate (3dRotate $v1 $v2 $v3 旋转通过3dSetup确定的arg1,arg2和arg3
arg1 arg2 arg3) 的点(x,y,z)并把值存储在($v1,$v2,$v3)中。
特殊变量和函数
-------------------------------
在每个脚本中,有很多有着特殊含义的变量,其中一些可以通过脚本来决定运行状态-
这个通常在初始函数中完成。其他的放在函数前面被调用,可以有效地传送参数到函数。
==============================================================================
Color(色彩)
==============================================================================
函数: init
可用变量: 无
返回变量: 无
调用时机: 在色彩图将要被第一次调用的时候调用。
------------------------------------------------------------------------------
函数: action
可用变量: $Time 时间(单位秒)- 参照下面的$UseTime和$RelativeTime
$Value 色彩值(从0到1.0这个范围被看做是背景色,
1为最亮的色)
$LeftPeak, 左声道平均强度
$RightPeak, 右声道平均强度
$MidPeak 整个波形的平均强度
返回变量: $H, $S, $V 色彩,颜色的饱和度和强度,每一个的范围
为0到1。只有当$UseHSV为真时,才可使用。
$R, $G, $B 红,绿和蓝部分,每一个的范围为0
到1。只有当$UseHSV不为真时,才可使用。
调用: 无论何时,一种颜色是必须的,色彩第一次被调用时,色彩
(256色)中的每一种颜色将被调用一次。如果$UseTime为
真,每帧图片消失前,那么它会被色彩中的每一种颜色调用。
------------------------------------------------------------------------------
特殊变量: $UseHSV 如果为真,色彩模型而非RGB数值将被用来
确定色彩
------------------------------------------------------------------------------
特殊变量: $UseTime 如果为真,色彩会随时间改变并且每帧图片也会
随时间变化。
------------------------------------------------------------------------------
特殊变量: $RelativeTime 如果为真,时间变量被设定为相对于色彩第
一次被调用的时间,否则为系统时间。
------------------------------------------------------------------------------
特殊变量: $PI PI值(3.14159265358979323)
==============================================================================
Move(移动)
==============================================================================
函数: init
可用变量: 无
返回变量: 无
调用: 在移动将要被第一次调用的时候调用。
------------------------------------------------------------------------------
函数: action
可用变量: $X 横坐标范围从-1到1
$Y 纵坐标范围从-1到1
$Radius 极径,距极坐标的半径
$Theta 极角,和极轴的角度
返回变量: $SrcX, $SrcY x,y坐标轴,新色彩x,y起点
$SrcRadius, 极轴和极角,新色彩ρ,θ起点
$SrcTheta
调用: 当前屏幕的每一个(x,y)被调用一次
------------------------------------------------------------------------------
特殊变量: $RequireRadius 如果真,当动作函数被调用时,将计算和输
出极径的(x,y)点值
------------------------------------------------------------------------------
特殊变量: $RequireTheta 如果真,当动作函数被调用时,将计算和输
出极角的(x,y)值
------------------------------------------------------------------------------
特殊变量: $UsePolar 如果真,极径值$SrcRadius和极角值$SrcTheta
将替代SrcX和SrcY。如果在初始函数中设置
为真,那么$RequireRadius和$RequireTheta
同样会被设置为真。
------------------------------------------------------------------------------
特殊变量: $UseAspect 如果真,那么x,y的范围是从(-1,-1)到
(1,1)定义最小的正方形来适应所有屏幕,
否则是用长方形来完全适应屏幕。
------------------------------------------------------------------------------
特殊变量: $PI PI值(3.14159265358979323)
------------------------------------------------------------------------------
==============================================================================
Wave(波形)
==============================================================================
函数: init
可用变量: 无
返回变量: $Paths 独立波形的数量,最多为16,默认为1
调用: 当波形被第一次调用的时候调用。
------------------------------------------------------------------------------
函数: prepare
可用变量: $Time 时间(单位秒)- 参照下面的$UseTime
和$RelativeTime
$LeftPeak, 左声道平均强度
$RightPeak, 右声道平均强度
$MidPeak 整个波形的平均强度
返回变量: 无
调用: 新波形的每一帧在开始之前被调用一次,
------------------------------------------------------------------------------
函数: action
可用变量: $Time 同上
$Leftpeak,
$RightPeak,
$MidPeak,
$Step 当前所处步骤,范围从0到1
$Left, $Right, 左右声道的音量数据,范围从0到1
$Mid 左右声道平均值,范围从0到1
返回变量: $X0, $Y0, 每个路径(从0到$NumPaths - 1)
$X1, $Y1 你需要提供波形在这步的x和y点值
$Fade0, $Fade1 画线用的色彩。参照下面的特殊变量。
调用: 波形的$Steps(参见下面的$NumSteps)被调用一次。每一次
调用会计算出各自路径的x,y坐标。
------------------------------------------------------------------------------
特殊变量: $Paths 独立波形显示的数量
------------------------------------------------------------------------------
特殊变量: $Steps 沿着波形要走的步数。默认值为256。
最大值为512,最小值为2.
------------------------------------------------------------------------------
特殊变量: $Loop0, 在每一个路径中,如果$Loopn为真,那么会
$Loop1, 从最后一点到第一个点的,一个环状波形。
------------------------------------------------------------------------------
特殊变量: $NoLines0 在每一个路径中,如果真,那么只会显示波
$NoLines1 形的点而非画线。
------------------------------------------------------------------------------
特殊变量: $Fade0 在0到1的范围内,一个新画的波形消退的程
$Fade1 度。值为0时,会在出现的地方画出最亮的
颜色,同时值为1时,画出的是背景色。
------------------------------------------------------------------------------
特殊变量: $RelativeTime 如果真,当波形第一次被调用的时候,$Time
是相对于0的一个时间值,否则为系统
时间。
------------------------------------------------------------------------------
特殊变量: $UseAspect 如果真,那么X,Y的范围是从(-1,-1)到
(1,1)定义最小的正方形来适应所有屏幕,
否则是用长方形来完全适应屏幕。
------------------------------------------------------------------------------
特殊变量: $useBlendType 设置绘画色彩的方式。混合方式为0时会填
入指定的色彩,混合方式为1时,会填入实
时值,混合方式为2时,只有新色彩比现在
的色彩明亮时才会填入。
------------------------------------------------------------------------------
特殊变量: $PI PI值(3.14159265358979323)
------------------------------------------------------------------------------
==============================================================================
sugar(粒子)
==============================================================================
函数: init
可用变量: 无
返回变量: $Steps 绘制的颗粒的数量。粒子函数会依次设置$Step为从0到($Steps - 1)的整数值
调用: 当粒子被第一次调用的时候会被调用,
------------------------------------------------------------------------------
函数: prepare
可以变量: $Time 时间(单位秒)- 参照下面的$UseTime和$RelativeTime
$LeftPeak, 左声道平均强度
$RightPeak, 右声道平均强度
$MidPeak 整个波形的平均强度
返回变量: 无
调用: 在新框架开始之前被调用一次。
------------------------------------------------------------------------------
函数: action
可用变量: $Time, 同上
$Leftpeak,
$RightPeak,
$MidPeak,
$Step 这是当前的粒子数量,包括0到($Steps - 1)
返回变量: $X, $Y 粒子的x值和y值
$Xend, $Yend 结束点的x值和y值
$Size 粒子的大小。大小的值应该在0.01到1.0之间
,大于1.0的话会很大。
$Style 这个值决定了要绘制的粒子的风格。目前支
持下面的类型
1 一个圆,使用大小$Size。
2 一条线,在($x,$y)和($Xend,$Yend)这
两点之间。$Size将会被忽略。
其他值按类型1对待。
$Fade 粒子被绘制的颜色。参照下面的特殊变量。
调用: 每一个在0到(Steps - 1)的粒子被调用一次,每次
调用会计算出xy坐标和粒子大小。
------------------------------------------------------------------------------
特殊变量: $Steps 显示的粒子数量。
每个粒子的每一帧会被粒子函数调用一次
------------------------------------------------------------------------------
特殊变量: $Fade 在0到1的范围内,新粒子引起的消退程度。
0值时,粒子会绘制最明亮的颜色,1值时,
会绘制背景色
------------------------------------------------------------------------------
特殊变量: $RelativeTime 如果为真,当波形被第一次调用时,那么
$Time是相对于0的时间,否则为
系统时间。
------------------------------------------------------------------------------
特殊变量: $UseAspect 如果真,那么x,y的范围是从(-1,-1)到
(1,1)定义最小的正方形来适应所有屏幕,
否则是用长方形来完全适应屏幕。
------------------------------------------------------------------------------
特殊变量: $useBlendType 设置绘画色彩的方式。混合方式为0时会填
入指定的色彩,混合方式为1时,会填入实
时值,混合方式为2时,只有新色彩比现在
的色彩明亮时才会填入。
------------------------------------------------------------------------------
特殊变量: $PI PI值(3.14159265358979323)[1]