← All modules
AvailableMIDI & Modulation

Pitch Shift

Transpose notes by semitones and octaves.

Engine preview

Standalone app, VST3

About

Pitch Shift is the simplest MIDI effect: it adds a fixed number of semitones to every note that passes through. An octave knob shifts in multiples of 12 on top of that. A note that would land outside 0–127 is quietly suppressed rather than wrapped, because wrapping a C2 down to a B7 is never what a transposer should do.

This is a preview module. The transform is applied inline at the note event, so there is no latency and no scheduling. It sits in front of whatever instrument is mounted, exactly as the arpeggiator does, but where the arp re-times notes this module only re-pitches them.

System requirements.

The downloadable Pitch Shift release supports the hosts and systems listed below.

  • Standalone appmacOS · arm64

    Runs on its own. No DAW required.

  • VST3macOS · arm64

    Works in Ableton Live, Reaper, Cubase, Studio One, Bitwig and FL Studio.

Version 0.1.0

Build evidence

Every row below is a recorded build row or the recorded absence of one. Nothing here is inferred from what this module is meant to support.

Module
music.codex.pitch-shift v0.1.0
Built at
Closure hash
04e818e8d56f…
Toolchain
  • scriptc 08fd3e4e1ac2…
  • moduleToolchainDist f5cb74b687e3…
  • pluginShellKitRuntime ff520435eab5…
  • faceShellGeneration a24486cb7676…
  • uiPreservation cd28dbd7e3d6…
  • packagerVersion 4
Build result and download for each format
FormatResultDownload
Browser package (JS)
Builtweb

bundle sha256 1671e204c0e0… · 177 KB

Built, but no downloadable archive was recorded.
Browser package (WASM)
Builtweb

bundle sha256 4e863a92dbb8… · 2.0 MB

Built, but no downloadable archive was recorded.
VST3
Builtdarwin-arm64Steinberg validator + VST3 host render: passed

bundle sha256 79b03a6afde1… · 2.1 MB

SynthoPitchShift-vst3-darwin-arm64.zip

archive sha256 938a4a320e43… · 2.1 MB · darwin-arm64

Audio UnitNot built — the build failed

Error: auval failed (exit 255); see /Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-szhI70/auval.log (temporary; set CODEX_NATIVE_LOG_DIR to retain the full log) Captured output tail: AU Validation Tool Version: 1.10.0 Copyright 2003-2019, Apple Inc. All Rights Reserved. Specify -h (-help) for command options -------------------------------------------------- VALIDATING AUDIO UNIT: 'aufx' - '0lWH' - 'No5K' -------------------------------------------------- Manufacturer String: Syntho AudioUnit Name: Pitch Shift Component Version: 0.0.1 (0x1) * * PASS -------------------------------------------------- TESTING OPEN TIMES: COLD: Time to open AudioUnit: 133.216 ms WARM: Time to open AudioUnit: 0.087 ms This AudioUnit is a version 2 implementation. FIRST TIME: Time for initialization: 0.406 ms * * PASS -------------------------------------------------- VERIFYING DEFAULT SCOPE FORMATS: Input Scope Bus Configuration: Default Bus Count:1 Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved Output Scope Bus Configuration: Default Bus Count:1 Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved * * PASS -------------------------------------------------- VERIFYING REQUIRED PROPERTIES: * * PASS -------------------------------------------------- VERIFYING RECOMMENDED PROPERTIES: VERIFYING PROPERTY: Latency PASS VERIFYING PROPERTY: Tail Time PASS VERIFYING PROPERTY: Bypass Effect PASS * * PASS -------------------------------------------------- VERIFYING OPTIONAL PROPERTIES: * * PASS -------------------------------------------------- VERIFYING SPECIAL PROPERTIES: VERIFYING CUSTOM UI Cocoa Views Available: 1 SynthoAUViewPitchShiftFactory PASS DEFAULT PRESET: 0, Name: Default HAS FACTORY PRESETS ID: 0 Name: Default VERIFYING CLASS INFO PASS TESTING HOST CALLBACKS PASS * * PASS -------------------------------------------------- PUBLISHED PARAMETER INFO: # # # 3 Global Scope Parameters: Parameter ID:0 Name: On Parameter Type: Generic Values: Minimum = 0.000000, Default = 1.000000, Maximum = 1.000000 Flags: Readable, Writable -parameter PASS Parameter ID:1 Name: Semitones Parameter Type: Generic Values: Minimum = -36.000000, Default = 0.000000, Maximum = 36.000000 Flags: Readable, Writable -parameter PASS Parameter ID:2 Name: Octave Parameter Type: Generic Values: Minimum = -3.000000, Default = 0.000000, Maximum = 3.000000 Flags: Readable, Writable -parameter PASS Testing that parameters retain value across reset and initialization PASS * * PASS -------------------------------------------------- FORMAT TESTS: Reported Channel Capabilities (explicit): [2, 2] Input/Output Channel Handling: 1-1 1-2 1-4 1-5 1-6 1-7 1-8 2-2 2-4 2-5 2-6 2-7 2-8 4-4 4-5 5-5 6-6 7-7 8-8 X * * PASS -------------------------------------------------- RENDER TESTS: Input Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved Output Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved Render Test at 512 frames ERROR: -10875 IN CALL AudioUnitRender * * FAIL -------------------------------------------------- AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE. -------------------------------------------------- codex kernel_engine: processBlock requested 2 output channel(s) from a build that declares 0; refusing rather than reading the null planar output view an event-only product legally has at runCaptured (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:3301:11) at verifyAuComponent (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:3901:24) --- captured build output (tail) --- …(6693 earlier bytes omitted) Linking CXX executable SynthoPitchShiftStandalone.app/Contents/MacOS/SynthoPitchShiftStandalone [ 92%] Building CXX object CMakeFiles/SynthoPitchShiftAU.dir/src/codex_json.cpp.o codex-plugin-shell: embedding UI bundle for SynthoPitchShiftStandalone [ 92%] Built target SynthoPitchShiftStandalone [ 94%] Building CXX object CMakeFiles/SynthoPitchShiftAU.dir/src/cc_map.cpp.o [ 96%] Building OBJCXX object CMakeFiles/SynthoPitchShiftAU.dir/src/webview_au.mm.o [ 98%] Building OBJCXX object CMakeFiles/SynthoPitchShiftAU.dir/src/webview_common.mm.o [100%] Linking CXX CFBundle shared module AU/SynthoPitchShift.component/Contents/MacOS/SynthoPitchShift codex-plugin-shell: embedding UI bundle for SynthoPitchShiftAU [100%] Built target SynthoPitchShiftAU [100%] Built target codex_verify_au /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/verify_au_main.cpp:609:72: warning: null passed to a callee that requires a non-null argument [-Wnonnull] 609 | const bool invalidLifecycleRejected = AudioUnitRender(unit, nullptr, nullptr, 0, 1, nullptr) != noErr; | ^~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/verify_au_main.cpp:609:87: warning: null passed to a callee that requires a non-null argument [-Wnonnull] 609 | const bool invalidLifecycleRejected = AudioUnitRender(unit, nullptr, nullptr, 0, 1, nullptr) != noErr; | ^~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/verify_au_main.cpp:913:72: warning: null passed to a callee that requires a non-null argument [-Wnonnull] 913 | const bool invalidLifecycleRejected = AudioUnitRender(unit, nullptr, nullptr, 0, 1, nullptr) != noErr; | ^~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/verify_au_main.cpp:913:87: warning: null passed to a callee that requires a non-null argument [-Wnonnull] 913 | const bool invalidLifecycleRejected = AudioUnitRender(unit, nullptr, nullptr, 0, 1, nullptr) != noErr; | ^~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/verify_au_main.cpp:1238:72: warning: null passed to a callee that requires a non-null argument [-Wnonnull] 1238 | const bool invalidLifecycleRejected = AudioUnitRender(unit, nullptr, nullptr, 0, 1, nullptr) != noErr; | ^~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/verify_au_main.cpp:1238:87: warning: null passed to a callee that requires a non-null argument [-Wnonnull] 1238 | const bool invalidLifecycleRejected = AudioUnitRender(unit, nullptr, nullptr, 0, 1, nullptr) != noErr; | ^~~~~~~ 6 warnings generated. /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/entry_au.cpp:271:49: warning: conditional expression between different enumeration types ('(unnamed enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/MacTypes.h:388:1)' and '(unnamed enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h:809:1)') is deprecated [-Wdeprecated-anon-enum-enum-conversion] 271 | shell.lastRenderError_ = shell.initialized_ ? noErr : kAudioUnitErr_FailedInitialization; | ^ ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/entry_au.cpp:349:36: warning: conditional expression between different enumeration types ('(unnamed enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/MacTypes.h:388:1)' and '(unnamed enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h:809:1)') is deprecated [-Wdeprecated-anon-enum-enum-conversion] 349 | shell.lastRenderError_ = ready ? noErr : kAudioUnitErr_FailedInitialization; | ^ ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/felix/web/git/ai-utils/hybrid-audio-engine/native/plugin-shell/src/entry_au.cpp:992:36: warning: conditional expression between different enumeration types ('(unnamed enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/MacTypes.h:388:1)' and '(unnamed enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Headers/CoreAudioBaseTypes.h:92:1)') is deprecated [-Wdeprecated-anon-enum-enum-conversion] 992 | return ccMap_.publish(map) ? noErr : kAudio_MemFullError; | ^ ~~~~~ ~~~~~~~~~~~~~~~~~~~ 3 warnings generated. /Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-szhI70/cmake/SynthoPitchShiftStandalone.app: replacing existing signature ld: warning: ignoring duplicate libraries: '/Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-szhI70/scriptc/native-program.lib.a' /Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-szhI70/cmake/AU/SynthoPitchShift.component: replacing existing signature /Users/felix/Library/Audio/Plug-Ins/Components/SynthoPitchShift-verify-95011.component: replacing existing signature

Not built for macOS
CLAPNot built — the build failed

Error: CLAP Processor host: event-only qualification is not implemented by the CLAP tape probe at probeProcessorClapHost (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:3657:11) at buildProcessorClapFormatProduct (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:4278:16) at buildProcessorFormatTarget (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:2796:12) at generateProcessorNativeTarget (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:3085:27) at async Object.privateExtension (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:496:22) at async prepareProcessorCatalogPublication (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/module-toolchain/dist/node-catalog-publication.js:1733:15) at async publishCatalogModule (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/module-toolchain/dist/node-catalog-publication.js:1870:26) at async publishNativeCatalog (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:492:22) at async Module.buildAudioModuleFormat (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/plugin-shell-kit/src/native-workflows.ts:6498:9) at async buildOne (/Users/felix/web/git/ai-utils/hybrid-audio-engine/packages/build-executor/scripts/native-lane-job.mjs:197:20) --- captured build output (tail) --- …(2043 earlier bytes omitted) iles/codex_verify_license_state.dir/src/licensing/license_state.cpp.o [ 7%] Linking CXX executable codex_verify_license_state [ 7%] Built target codex_verify_license_state [ 9%] Building CXX object CMakeFiles/SynthoPitchShiftEngineTest.dir/src/test_engine_main.cpp.o [ 11%] Building CXX object CMakeFiles/SynthoPitchShiftEngineTest.dir/src/kernel_engine.cpp.o [ 12%] Linking CXX executable codex_verify_clap [ 12%] Built target codex_verify_clap [ 14%] Building CXX object CMakeFiles/SynthoPitchShiftEngineTest.dir/src/runtime_bank_loader.cpp.o [ 16%] Building CXX object CMakeFiles/SynthoPitchShiftRateAdapterStateTest.dir/src/test_rate_adapter_state_main.cpp.o [ 18%] Building CXX object CMakeFiles/SynthoPitchShiftRateAdapterStateTest.dir/src/kernel_engine.cpp.o [ 20%] Building OBJCXX object CMakeFiles/SynthoPitchShiftEngineTest.dir/src/runtime_bank_fetch.mm.o [ 22%] Linking CXX executable SynthoPitchShiftEngineTest [ 24%] Building CXX object CMakeFiles/SynthoPitchShiftRateAdapterStateTest.dir/src/runtime_bank_loader.cpp.o [ 24%] Built target SynthoPitchShiftEngineTest [ 25%] Building OBJCXX object CMakeFiles/SynthoPitchShiftRateAdapterStateTest.dir/src/runtime_bank_fetch.mm.o [ 27%] Building CXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/test_runtime_diagnostics_main.cpp.o [ 29%] Linking CXX executable SynthoPitchShiftRateAdapterStateTest [ 31%] Building CXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/kernel_engine.cpp.o [ 31%] Built target SynthoPitchShiftRateAdapterStateTest [ 33%] Building CXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/runtime_bank_loader.cpp.o [ 35%] Building CXX object CMakeFiles/SynthoPitchShiftRateAdapterTest.dir/src/test_rate_adapter_main.cpp.o [ 37%] Linking CXX executable SynthoPitchShiftRateAdapterTest [ 38%] Building CXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/bank_control.cpp.o [ 38%] Built target SynthoPitchShiftRateAdapterTest [ 40%] Building OBJCXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/runtime_bank_fetch.mm.o [ 42%] Building CXX object CMakeFiles/codex_verify_diagnostic_conformance.dir/src/verify_diagnostic_conformance_main.cpp.o [ 44%] Building CXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/codex_json.cpp.o [ 46%] Building CXX object CMakeFiles/SynthoPitchShiftRuntimeDiagnosticsTest.dir/src/cc_map.cpp.o [ 48%] Building CXX object CMakeFiles/codex_verify_diagnostic_conformance.dir/src/diagnostic_canonical_json.cpp.o [ 50%] Linking CXX executable SynthoPitchShiftRuntimeDiagnosticsTest [ 50%] Built target SynthoPitchShiftRuntimeDiagnosticsTest [ 51%] Building CXX object CMakeFiles/codex_verify_diagnostic_conformance.dir/src/codex_json.cpp.o [ 53%] Building CXX object CMakeFiles/SynthoPitchShiftGraphHarness.dir/src/verify_graph_module_shell_main.cpp.o [ 55%] Building CXX object CMakeFiles/SynthoPitchShiftGraphHarness.dir/src/kernel_engine.cpp.o [ 57%] Building CXX object CMakeFiles/codex_verify_diagnostic_conformance.dir/src/cc_map.cpp.o [ 59%] Building CXX object CMakeFiles/SynthoPitchShiftGraphHarness.dir/src/runtime_bank_loader.cpp.o [ 61%] Linking CXX executable codex_verify_diagnostic_conformance [ 61%] Built target codex_verify_diagnostic_conformance [ 62%] Building OBJCXX object CMakeFiles/SynthoPitchShiftGraphHarness.dir/src/runtime_bank_fetch.mm.o [ 64%] Building OBJCXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/standalone_main.mm.o [ 66%] Linking CXX executable SynthoPitchShiftGraphHarness [ 66%] Built target SynthoPitchShiftGraphHarness [ 68%] Building OBJCXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/webview_common.mm.o [ 70%] Building CXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/entry_clap.cpp.o [ 72%] Building CXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/kernel_engine.cpp.o [ 74%] Building CXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/runtime_bank_loader.cpp.o [ 75%] Building CXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/kernel_engine.cpp.o [ 77%] Building CXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/runtime_bank_loader.cpp.o [ 79%] Building CXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/bank_control.cpp.o [ 81%] Building CXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/bank_control.cpp.o [ 83%] Building OBJCXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/runtime_bank_fetch.mm.o [ 85%] Building CXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/codex_json.cpp.o [ 87%] Building OBJCXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/runtime_bank_fetch.mm.o [ 88%] Building CXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/codex_json.cpp.o [ 90%] Building CXX object CMakeFiles/SynthoPitchShiftStandalone.dir/src/cc_map.cpp.o [ 92%] Linking CXX executable SynthoPitchShiftStandalone.app/Contents/MacOS/SynthoPitchShiftStandalone [ 94%] Building CXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/cc_map.cpp.o codex-plugin-shell: embedding UI bundle for SynthoPitchShiftStandalone [ 94%] Built target SynthoPitchShiftStandalone [ 96%] Building OBJCXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/webview_clap.mm.o [ 98%] Building OBJCXX object CMakeFiles/SynthoPitchShiftCLAP.dir/src/webview_common.mm.o [100%] Linking CXX CFBundle shared module CLAP/SynthoPitchShift.clap/Contents/MacOS/SynthoPitchShift codex-plugin-shell: embedding UI bundle for SynthoPitchShiftCLAP [100%] Built target SynthoPitchShiftCLAP [100%] Built target codex_verify_clap /Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-1y66az/cmake/SynthoPitchShiftStandalone.app: replacing existing signature ld: warning: ignoring duplicate libraries: '/Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-1y66az/scriptc/native-program.lib.a' /Users/felix/web/git/ai-utils/hybrid-audio-engine/modules/pitch-shift/build/.processor-native-1y66az/cmake/CLAP/SynthoPitchShift.clap: replacing existing signature

Not built for macOS, Windows or Linux
Standalone app
Builtdarwin-arm64standalone executable self-test + native Processor harness: passed

bundle sha256 c711ddbaf0b1… · 1.8 MB

SynthoPitchShiftStandalone-standalone-darwin-arm64.zip

archive sha256 2069caeaa41b… · 1.8 MB · darwin-arm64

Parity

browser-js = browser-wasm = vst3 = standalone qualified against their own recorded digests. Not recorded: au, clap.

Signal graph.

Experimental

Migration fallback: approximated from parameter groups, not a runtime wiring diagram.

How it works.

Every noteOn and noteOff has its MIDI note number offset by the sum of semitones and octave×12. The result is clamped to 0–127; notes that fall outside are suppressed entirely. The velocity and timing are untouched.

Goes well with.

Preview

Velocity

Shape, compress, or randomize note velocities.

Preview
Preview

Chord

Turn single notes into chords.

Preview
Preview

Humanize

Add timing and velocity jitter for human feel.

Preview
Preview

Arpeggiator

Walk held notes through a rhythmic pattern.

PreviewNot built for macOS, Windows or Linux