GithubHelp home page GithubHelp logo

jurihock / stftpitchshiftplugin Goto Github PK

View Code? Open in Web Editor NEW
22.0 2.0 3.0 673 KB

Official JUCE plugin for stftPitchShift

License: GNU General Public License v3.0

CMake 14.11% Makefile 2.07% C++ 73.05% Shell 8.01% Batchfile 2.15% C 0.62%
audio dsp fft formants juce-plugins pitch-shifting plugin stft stftpitchshift timbre

stftpitchshiftplugin's Introduction

Official JUCE plugin for stftPitchShift

language license build cpp tag

The stftPitchShiftPlugin features poly pitch and timbre shifting simultaneously and in real-time. It's completely based on the stftPitchShift library, which also provides a Python interface and useful command line tools.

Features

Following features are currently included:

  • poly pitch shifting with or without formant preservation,
  • pitch independent timbre changing,
  • low latency capability depending on the preset block size,
  • optional output normalization to match the input loudness level.

The stftPitchShiftPlugin is available in VST3, AU, LV2 formats as well as a standalone app. It also provides a basic UI to adjust the effect parameters on the fly:

Please refer to the User Manual for detailed explanations.

Binaries

The ready to use binaries can be obtained in two ways:

  • via continuous build artifacts or
  • via a local build from the source code.

Continuous build artifacts

Use one of the following links to download the latest binaries for your specific operating system:

On macOS, you will also have to deal with the Gatekeeper, in order to execute the standalone app or to load the AU or VST3 plugin in your DAW.

Build from source code

Since the project is based on CMake, it can be compiled in the same way on any of the supported operating systems.

Please read the official JUCE documentation and the included script files:

The advantage of this method on macOS is that no additional Gatekeeper handling is required.

Last but not least

This project is currently at an early development stage, so expect more highlights to come.

Stay tuned!

Credits

License

stftPitchShiftPlugin is licensed under the terms of the GPL license. For details please refer to the accompanying LICENSE file distributed with stftPitchShiftPlugin.

stftpitchshiftplugin's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

stftpitchshiftplugin's Issues

TODO

  • Test AU/VST at least in Logic
  • #2
  • Add performance measurements
  • Try different FFT backend (PocketFFT, JUCE FFT, Apple)
  • Maybe add a configurable gain for individual pitch shifting stages
  • Think about advanced automation, maybe something with MIDI chord recognition
  • Think about the QDFT integration, e.g. to extract additional features for automation
  • #6
  • #5

Variable block length in `processBlock`

Observations:

  • Standalone app never changes the block size in processBlock.
  • Logic changes the block size once in the first processBlock callback.
  • Audacity permanently changes the block size in processBlock, e.g. between 512 and 157 (max. 1156).

One way to handle variable blocks would be to delay the output by the max. block size reported in prepareToPlay and report the resulting latency back by setting setLatencySamples. Therefore, two modes of operation need to be introduced, e.g. offline and online mode.

Bypass delay

Delay the output in the bypass setting by the same amount as in the core setting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.