Skip to content

ManasWolrd/WarpCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WarpCore

尝试重现 Prosoniq PiWarp 或 Zynaptiq Wormhole 插件的效果。
This project attempts to recreate the effect style of Prosoniq PiWarp or Zynaptiq Wormhole.

WarpCore 是一个多段频谱反转插件,类似于 PiWarp/Wormhole 的时域局部频谱反转效果。
WarpCore is a multi-band spectrum inversion plugin, similar to the local time-domain spectrum inversion effect of PiWarp/Wormhole.

如果你想了解如何做到反转频谱,这里是我参考的资源。
If you want to know how to reverse the spectrum, here are the resources I referred to.
Spectral Flipping Around Signal Center Frequency

Warning

These demo videos are old version which has a bad quality on complex source like music signal.
这些演示视频是旧版本,在复杂的音乐信号上质量很差。
YouTube
Bilibili

Bilibili New version Demo
Bilibili WarpCore destroy the whole song

功能(Features)

动态 SIMD 调度以充分利用您的现代 CPU。
dynamic simd dispatch to fully use your modern cpu.
零延迟,只有来自巴特沃斯滤波器的非线性相位。
zero latency with some nonlinear phase from butterworth filter.

  • 可配置极点数滤波器
    Configurable filter pole count.

    包括:滤波器极点数量、滤波器截止频率缩放。
    Includes: filter pole count and filter cutoff frequency scaling.

  • 共振峰移动
    Formant shifting.

    应该是加在输出的振荡器上面。
    This should be applied on the output oscillator stage.

  • 参数平滑
    parameter smooth.

图形界面(GUI)

display

Tip

if you want a close preset to default Piwarp, set paramter
如果你想要一个接近默认Piwarp的预设,设置参数为
Warp = 50
Freq High = Full
Scale = 1.5
Poles = 3
Pitch = 0
DryWet = 1
Freq Mode = music: 0 + 2n

GUI使用(GUI usage)

对旋钮右键应该弹出一个菜单,使用enter输入想要的数值,使用reset重置到默认值。
Right-clicking on the knob should bring up a menu, use enter to input the desired value, and use reset to reset to the default value.
双击旋钮也会重置到默认值。
Double-clicking the knob will also reset it to the default value.

Tip

FreqHigh=Full时频段范围会随着采样率变化,如果想要在所有采样率保持,请使用FreqHigh=19999.2(通过enter输入19999得到)
When FreqHigh=Full, the frequency band range changes with the sampling rate. If you want it to stay the same for all sampling rates, please use FreqHigh=19999.2 (obtained by entering 19999).

参数(Parameter)

It seems that many people cannot understand the parameters of WarpCore, so here is an additional explanation:
似乎很多人不能理解WarpCore的参数,在这里增加说明

参数 (Parameter) 英文说明 (English Description) 中文说明 (Chinese Description)
Warp Divides the spectrum from 0 to FreqHigh into this number of segments and applies spectral inversion separately to each segment. 将 0 ~ FreqHigh 的频谱分割为该参数指定的段数,对每个段分别进行光谱反转。
Freq High Sets the highest frequency for the inverted spectrum; audio above this frequency will be filtered out (silenced). 设置反转频谱的最高频率,超过此频率的音频将会被过滤(静音)。
Scale Controls the cutoff frequency of the filter in the inversion device. < 1: comb filter/resonator effects; > 1: segment overlap/rougher texture. 控制每个频段反转装置中滤波器的截止频率。小于 1 会产生类似梳状滤波(谐振器)的效果;大于 1 会导致段间重叠,质感更粗糙。
Poles Controls the order of the filter (best between 2-4). Lower: rough texture; Higher: less overlap but enhanced metallic feel. 控制滤波器阶数(建议设为 2~4)。数值较低质感粗糙,数值较高则段间重叠减少,但会增加微弱的金属感。
Pitch FormantMode=Pitch: controls output pitch. FormantMode=Formant: shifts formants without changing pitch. 在 Pitch 模式下控制输出音高;在 Formant 模式下移动共振峰而不改变音高。
Dry/Wet Mixes dry and inverted wet signals. Nonlinear phase may cause notch filtering or peculiar phase cancellations. 混合干声与反转湿声。由于滤波器的非线性相位,可能会产生陷波或奇特的相位抵消。
Formant Mode Controls whether pitch affects the pre-oscillator or the post-oscillator (see Pitch explanation). 控制 Pitch 作用于前振荡器还是后振荡器,具体效果参考 Pitch 参数说明。
Freq Mode Controls oscillator frequency distribution. 0+xn: skips 1st segment inversion; x+n: inverts 1st segment (equiv. to Scale*2). 控制振荡器频率分布。0+xn 基本不反转第一个频段,而 1+xn 会。x+n 在某种程度上等同于将 Scale 翻倍。

Install Plugin / 安装插件

GitHub Release 里的 zip 是按平台分别打包的,解压后目录会多一层平台文件夹,这个是正常的。
GitHub Release zip files are packaged per platform, so it is normal to see one extra platform folder after extraction.

你真正需要复制的是插件 bundle 本身,不是 ReleaseVST3 / AU / LV2 这一层目录。
What you actually need to copy is the plugin bundle itself, not the Release or VST3 / AU / LV2 folder that contains it.

解压后大致会看到这样的结构:
After extraction, the folder structure will look roughly like this:

plugin-win-vX.Y.Z.zip
  plugin-win/
    PluginName_artefacts/
      VST3/
        PluginName.vst3/

plugin-macos-vX.Y.Z.zip
  plugin-macos/
    PluginName_artefacts/
      AU/
        PluginName.component/
      VST3/
        PluginName.vst3/

plugin-linux-vX.Y.Z.zip
  plugin-linux/
    PluginName_artefacts/
      LV2/
        PluginName.lv2/
      VST3/
        PluginName.vst3/

安装时请直接复制这些文件夹之一:
When installing, copy one of these folders directly:

  • PluginName.vst3
  • PluginName.component
  • PluginName.lv2

常见安装目录:
Common install locations:

  • Windows VST3: C:\Program Files\Common Files\VST3\
  • macOS VST3: /Library/Audio/Plug-Ins/VST3/ or ~/Library/Audio/Plug-Ins/VST3/
  • macOS AU: /Library/Audio/Plug-Ins/Components/ or ~/Library/Audio/Plug-Ins/Components/
  • Linux LV2: ~/.lv2/ or /usr/lib/lv2/
  • Linux VST3: ~/.vst3/ or /usr/lib/vst3/

例如在 Windows 上,不要复制 VST3 文件夹本身,而是把其中的 PluginName.vst3 整个文件夹复制到 C:\Program Files\Common Files\VST3\
For example, on Windows, do not copy the VST3 folder itself. Copy the whole PluginName.vst3 folder inside it to C:\Program Files\Common Files\VST3\.

额外的,macOS 用户还需要做以下工作:
Additionally, macOS users may need to do the following:

sudo xattr -dr com.apple.quarantine /path/to/your/plugins/plugin_name.component
sudo xattr -dr com.apple.quarantine /path/to/your/plugins/plugin_name.vst3
sudo xattr -dr com.apple.quarantine /path/to/your/plugins/plugin_name.lv2

如果 macOS 阻止打开下载的插件,可以对插件 bundle 执行上面的命令来移除 quarantine 属性。
If macOS blocks a downloaded plugin, you can run the commands above on the plugin bundle to remove the quarantine attribute.

构建(Build)

git clone --recurse https://github.com/ManasWolrd/WarpCore.git

# Windows
cmake -G "Ninja" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang -DCMAKE_BUILD_TYPE=Release -S . -B build
cmake --build build --config Release

# Linux
sudo apt update
sudo apt-get install libx11-dev libfreetype-dev libfontconfig1-dev libasound2-dev libxrandr-dev libxinerama-dev libxcursor-dev
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -S . -B build
cmake --build build --config Release

# macOS
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -S . -B build
cmake --build build --config Release

About

A multiband spectral inversion plugin similar to PiWarp/Wormhole(The WARP part), making wried robotic voice tone or negative harmony for your melody.

Topics

Resources

License

Stars

Watchers

Forks

Packages