Skip to content

mwcm/pitcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pitcher.py

Screen Shot 2022-11-14 at 8 09 32 PM

Installation

1. Use git to clone this repo, or download it as a ZIP using the "Clone or download" button & unzip
2. Open your terminal of choice
3. cd to the new pitcher directory
4. pip install -r ./requirements.txt

Usage:

python pitcher_cli.py --input-file ./input.wav --st -4 --output-file ./output.wav

You can now also run a simple gui version using the command:

python pitcher_gui.py

The releases page also has binary files for the GUI (.exe and .app).

Options:

--st                        - number of semitones to shift pitch by,                 int,    required
--input-file                - path to input audio file (WAV, MP3, OGG, FLAC),        string, required
--output-file               - path to output audio file,                             string, required
--log-level                 - logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL), string, default 'INFO'
--input-filter              - apply input anti-aliasing filter,                      flag,   default True
--no-input-filter           - skip input anti-aliasing filter
--quantize                  - apply ADC quantization simulation,                     flag,   default True
--no-quantize               - skip ADC quantization simulation
--time-stretch              - enable time stretching,                                flag,   default True
--no-time-stretch           - disable time stretching
--output-filter             - apply output EQ filtering,                             flag,   default True
--no-output-filter          - skip output EQ filtering
--normalize-output          - normalize output audio,                                flag,   default False
--quantize-bits             - bit depth for quantization simulation,                 int,    default 12
--custom-time-stretch       - time stretch factor (1.0=device default, 0.0=none),    float,  default 1.0
--output-filter-type        - output filter: lp1 (7.5kHz), lp2 (10kHz), moog,        str,    default 'lp1'
--moog-output-filter-cutoff - cutoff frequency for moog filter in Hz (20-20000),     int,    default 10000
--force-mono                - convert input to mono (output will also be mono),      flag,   default False
--use-sp12-rate             - use SP-12 SR (27500 Hz) instead of SP-1200 (26040 Hz), flag,   default False

Usage Examples:

# Basic pitch shifting
python pitcher_cli.py --input-file input.wav --output-file output.wav --st -4

# Disable specific processing steps
python pitcher_cli.py --input-file input.wav --output-file output.wav --st 2 --no-quantize --no-output-filter

# Use moog filter with custom cutoff
python pitcher_cli.py --input-file input.wav --output-file output.wav --st 0 --output-filter-type moog --moog-output-filter-cutoff 5000

# Minimal processing (bypass most effects)
python pitcher_cli.py --input-file input.wav --output-file output.wav --st -1 --no-input-filter --no-time-stretch --no-output-filter

If you find this project useful, please consider donating to the NAACP Legal Defense Fund or BLM CA

About

audio pitch-shifting & re-sampling utility, based on the EMU SP-1200

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages