TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

标题: tcAudio模块特效示例 - ASS外挂音频柱状图(频谱分析) [打印本页]

作者: milkyjing    时间: 2011-12-5 13:41:54     标题: tcAudio模块特效示例 - ASS外挂音频柱状图(频谱分析)

说明

需要先添加tcAudio模块, 下载地址 http://www.tcax.org/forum.php?mod=viewthread&tid=198
附件为完整工程, 其中test.mp3可以被替换, 推荐的音频格式为wav, mp3, ogg.
本例子仅作为一个展示用例.
  1. from tcaxPy import *
  2. from util.tcAudio import *

  3. SPECWIDTH = 368
  4. SPECHEIGHT = 127
  5. BANDS = 28

  6. def Spectrum(fft):      # convert fft data to graph
  7.     bars = []
  8.     b0 = 0
  9.     for x in range(BANDS):
  10.         peak = 0        # peak of a certain bar
  11.         b1 = pow(2, x * 10.0 / (BANDS - 1))
  12.         if b1 > 1023:
  13.             b1 = 1023
  14.         if b1 <= b0:
  15.             b1 = b0 + 1    # make sure it uses at least 1 FFT bin
  16.         while b0 < b1:
  17.             if peak < fft[1 + b0]:
  18.                 peak = fft[1 + b0]
  19.             b0 += 1
  20.         y = int(sqrt(peak) * 3 * SPECHEIGHT - 4)   # scale it (sqrt to make low values more visible)
  21.         if y > SPECHEIGHT:
  22.             y = SPECHEIGHT     # cap it
  23.         bars.append(y)
  24.     return bars

  25. def tcaxPy_User():
  26.     file_name = GetVal(val_OutFile) + '.ass'
  27.     ass_header = GetVal(val_AssHeader)
  28.     ASS_FILE = CreateAssFile(file_name, ass_header)
  29.     tcAudioInit()
  30.     channel = tcAudioOpen('test.mp3')
  31.     freq = tcAudioGetFreq(channel)      # usually 44100 Hz
  32.     duration = tcAudioGetDuration(channel)
  33.     num = int(duration * freq / 2048)
  34.     for i in range(num):
  35.         ASS_BUF = []
  36.         fft = tcAudioGetFFT(channel, 2048)
  37.         bars = Spectrum(fft)
  38.         bar_width = int(SPECWIDTH / BANDS)
  39.         count = len(bars)
  40.         for j in range(count):
  41.             start = i * 100 * 2048 / freq
  42.             end = (i + 1) * 100 * 2048 / freq
  43.             x = (1280 - SPECWIDTH) / 2 + bar_width * j
  44.             y = 700
  45.             FSC = fsc((bar_width - 2) * 100, bars[j] * 100)
  46.             CLR = color1(FmtRGB(j * 10 % 255, randint(0, 20), randint(20, 60))) + alpha1(50)    # a little change
  47.             ass_main(ASS_BUF, SubL(start, end, 0, Pix_Style), an(1) + pos(x, y) + FSC + CLR, PixPt())
  48.         WriteAssFile(ASS_FILE, ASS_BUF)     # write the buffer in memory to the file
  49.         progress(i + 1, num)
  50.     tcAudioFin()
  51.     FinAssFile(ASS_FILE)
复制代码


附件: [完整工程] test_spectrum.rar (2011-12-5 13:41:42, 1.01 MB) / 下载次数 3376
http://www.tcax.org/forum.php?mod=attachment&aid=MTI5fGFiZjIyMmVjfDE3MTQ5MzQ0Njd8MHww
作者: milkyjing    时间: 2011-12-5 13:49:54

效果截图

spectrum.jpg

如果外挂预览比较卡, 可以试着只生成一部分 (提前关掉执行窗口, 已生成的部分ASS依然可以被使用), 或者直接压制后预览...



图片附件: spectrum.jpg (2011-12-5 13:47:59, 5.57 KB) / 下载次数 907
http://www.tcax.org/forum.php?mod=attachment&aid=MTMwfGQ3MDkxNWRhfDE3MTQ5MzQ0Njd8MHww


作者: 5231251    时间: 2011-12-20 17:28:21

为什么不行啊
audio.jpg

图片附件: audio.jpg (2011-12-20 17:28:14, 44.1 KB) / 下载次数 866
http://www.tcax.org/forum.php?mod=attachment&aid=MTY4fDUzNzhkYTU4fDE3MTQ5MzQ0Njd8MHww


作者: milkyjing    时间: 2011-12-20 18:04:39

5231251 发表于 2011-12-20 17:28
为什么不行啊

用千千静听转换成mp3, 或wav试试吧.... 测试版, 问题难免...


作者: 5231251    时间: 2011-12-21 01:37:58

都试过了啊 问题依旧!桑心……
作者: milkyjing    时间: 2011-12-21 15:14:57

5231251 发表于 2011-12-21 01:37
都试过了啊 问题依旧!桑心……

QQ上把音频文件和脚本发我吧...


作者: 5231251    时间: 2011-12-22 01:01:19

milkyjing 发表于 2011-12-21 15:14
QQ上把音频文件和脚本发我吧...

发在你的邮箱了
作者: milkyjing    时间: 2011-12-22 16:20:13

5231251 发表于 2011-12-22 01:01
发在你的邮箱了

用附件中这个dll替换掉TCAX\util中的那个同名bass.dll再试试吧.

附件: [替换] bass.rar (2011-12-22 16:20:03, 100.29 KB) / 下载次数 3121
http://www.tcax.org/forum.php?mod=attachment&aid=MTcyfDU4NGNkZjc1fDE3MTQ5MzQ0Njd8MHww
作者: 5231251    时间: 2011-12-27 18:33:10

好吧   还是不行   算了!
作者: milkyjing    时间: 2011-12-27 22:41:53

5231251 发表于 2011-12-27 18:33
好吧   还是不行   算了!

等以后出正式版吧... 这个版本只是提供个概念...
作者: 5231251    时间: 2012-1-15 18:43:33

现在这个可以用了  
问下那个音频柱大小可以修改吗  可以的话怎么修改
作者: milkyjing    时间: 2012-1-15 19:17:33

5231251 发表于 2012-1-15 18:43
现在这个可以用了  
问下那个音频柱大小可以修改吗  可以的话怎么修改


可以, 修改SPECWIDTH或bar_width的值吧...

p.s. 说实话, 没什么不能修改的...


作者: 5231251    时间: 2012-1-15 23:36:20

milkyjing 发表于 2012-1-15 19:17
可以, 修改SPECWIDTH或bar_width的值吧...

p.s. 说实话, 没什么不能修改的...

那怎么修改它的位置  在tcc中定义alignment好像不管用  想放在屏幕角落
作者: milkyjing    时间: 2012-1-16 00:06:41

5231251 发表于 2012-1-15 23:36
那怎么修改它的位置  在tcc中定义alignment好像不管用  想放在屏幕角落


TCC配置通常是针对内置特效的, 自己定制(编写)的脚本不一定会支持(要支持的话, 得编写不少额外代码, 增加复杂度), 所以最直接的办法是修改py脚本...

要先对python有个入门级的了解...

对于本例, 你只要修改pos中的数值就可以了 (如果不明白这句话的含义, 那我建议你先去学习一下py入门编程-->真的没有捷径)

相关链接: http://www.tcax.org/forum.php?mod=viewthread&tid=40

http://www.tcax.org/forum.php?mod=viewthread&tid=30




作者: Seekladoom    时间: 2022-2-13 01:18:53

本帖最后由 Seekladoom 于 2022-2-13 01:22 编辑

【频谱特效测试】冒险岛背景音乐 5首.part01.rar (950 KB, 下载次数: 2018)
【频谱特效测试】冒险岛背景音乐 5首.part02.rar (950 KB, 下载次数: 1950)
【频谱特效测试】冒险岛背景音乐 5首.part03.rar (950 KB, 下载次数: 1944)
【频谱特效测试】冒险岛背景音乐 5首.part04.rar (146.88 KB, 下载次数: 1976)


随手改了几个TCAX频谱的配色:
图1:DarkMage - 黑魔法师登场曲(配色来源:老黑战斗场景的黑红紫配色)
DarkMage.png

图2:Dream Fragments - 露西德二阶段战斗曲(配色来源:露西德发色)
Dream Fragments.png

图3:Kinesis Theme Ⅰ - 超能力者凯内西斯主题曲(配色来源:凯内西斯的副武器——国际象棋)
Kinesis Theme I.png

图4:Start the Adventure - 冒险岛初代登录曲(配色来源:登录界面的那块木板)
Start the Adventure.png

图5:Title 2010 Winter - 冒险岛第二代登录曲(配色来源:登录成功时的提示框)
Title 2010 Winter.png



附件: 【频谱特效测试】冒险岛背景音乐 5首.part04.rar (2022-2-13 01:18:49, 146.88 KB) / 下载次数 1976
http://www.tcax.org/forum.php?mod=attachment&aid=Mjg5OHw3YjMyYWUwMXwxNzE0OTM0NDY3fDB8MA%3D%3D

附件: 【频谱特效测试】冒险岛背景音乐 5首.part03.rar (2022-2-13 01:18:45, 950 KB) / 下载次数 1944
http://www.tcax.org/forum.php?mod=attachment&aid=Mjg5N3w1OWM2MDI1NXwxNzE0OTM0NDY3fDB8MA%3D%3D

附件: 【频谱特效测试】冒险岛背景音乐 5首.part02.rar (2022-2-13 01:18:41, 950 KB) / 下载次数 1950
http://www.tcax.org/forum.php?mod=attachment&aid=Mjg5NnwxZTk5NTJjZXwxNzE0OTM0NDY3fDB8MA%3D%3D

附件: 【频谱特效测试】冒险岛背景音乐 5首.part01.rar (2022-2-13 01:18:35, 950 KB) / 下载次数 2018
http://www.tcax.org/forum.php?mod=attachment&aid=Mjg5NXxkYTY1N2E4NXwxNzE0OTM0NDY3fDB8MA%3D%3D

图片附件: Title 2010 Winter.png (2022-2-13 01:20:29, 9.01 KB) / 下载次数 839
http://www.tcax.org/forum.php?mod=attachment&aid=MjkwM3wzYjc3ZTU0OHwxNzE0OTM0NDY3fDB8MA%3D%3D



图片附件: Start the Adventure.png (2022-2-13 01:20:29, 8.96 KB) / 下载次数 908
http://www.tcax.org/forum.php?mod=attachment&aid=MjkwMnwwNDc4NzYzZXwxNzE0OTM0NDY3fDB8MA%3D%3D



图片附件: Kinesis Theme I.png (2022-2-13 01:20:29, 8.9 KB) / 下载次数 828
http://www.tcax.org/forum.php?mod=attachment&aid=MjkwMXxlMDhmOTI3NHwxNzE0OTM0NDY3fDB8MA%3D%3D



图片附件: Dream Fragments.png (2022-2-13 01:20:29, 8.99 KB) / 下载次数 833
http://www.tcax.org/forum.php?mod=attachment&aid=MjkwMHxmN2NhZGEzM3wxNzE0OTM0NDY3fDB8MA%3D%3D



图片附件: DarkMage.png (2022-2-13 01:20:28, 9.15 KB) / 下载次数 849
http://www.tcax.org/forum.php?mod=attachment&aid=Mjg5OXxhNzFlZDk3YnwxNzE0OTM0NDY3fDB8MA%3D%3D






欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://www.tcax.org/) Powered by Discuz! X2