Skip to main content

mksinewave

mksinewave is a Python command-line utility for generating pure sine wave audio tones with customizable configurations, smooth attenuation fades, and automatic audio container inference.

PyPI Version MIT License PyPI Python Version

Features

  • Flexible Frequency Formats: Accepts standard numbers (440), human-friendly shortcuts (1.4k), or explicit units (22kHz).
  • Smart Fades: Prevent harsh audio pops and clicks with customizable linear head and tail attenuation (fade-in/fade-out).
  • FFmpeg-Style Extension Inference: Saves directly to .wav, .flac, .ogg, or .aiff by automatically detecting the format from your output filename.
  • Safety Proofed: Includes built-in human hearing range guards (20 Hz - 22 kHz) and Nyquist frequency anti-aliasing checks.
  • Safe Overwriting: Protects existing files unless explicitly overridden with the -f / --force flag.

Installation

Clone the repository and install it locally using pip:

pip install mksinewave

For active local development, install using the [dev] optional dependency group in editable mode:

pip install -e "mksinewave[dev]"

Usage

Once installed, the global mksinewave command is available anywhere on your system.

Basic Syntax

mksinewave <frequency> <duration> [options]

Examples

1. Generate a standard A4 tone (440Hz) for 3 seconds:

mksinewave 440 3

2. Generate a 1.5 khz tone for 5 seconds as a compressed FLAC file with a smooth fade-in and fade-out:

mksinewave 1.5k 5 --fade-in 0.5 --fade-out 1.0 -o output.flac -v

3. Force overwrite an existing file using a specific sample rate:

mksinewave "2.2 kHz" 2.5 -s 48000 -o alert.ogg -f

Available Command-Line Flags

  • --fade-in: Length of head attenuation fade-in in seconds (Default: 0.0).
  • --fade-out: Length of tail attenuation fade-out in" seconds (Default: 0.0).
  • -s, --sample-rate: Audio sampling rate in hertz (Default: 44100).
  • -o, --output: Output file path inferred via extension (Default: sine_wave.wav).
  • -f, --force: Overwrite the target file if it already exists.
  • -v, --verbose: Enable logging output detailing the generation process.
  • frequency (Positional): Target frequency. Supports formats like 440, 1.4k, 22kHz.
  • duration (Positional): Total length of the audio track in seconds.

Development & Testing

This project maintains rigorous test coverage using pytest and pytest-cov.

If you installed the development dependencies, you can execute the test suite globally from the project root directory:

test-mksinewave

License

This project is licensed under the MIT License. See the LICENSE file for details.

Metadata

Release files for mksinewave 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mksinewave 1.0.2
File Size Uploaded
mksinewave-1.0.2.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mksinewave 1.0.2
File Interpreter ABI Platform
mksinewave-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 10.1 kB

Release files / mksinewave-1.0.2.tar.gz

Download URL mksinewave-1.0.2.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3e6fa816e7e8e73731f31489822aec7dcdc244b2d1258f5b92a915f6c5f21c86
BLAKE2b-256 checksum
How to use checksums
69a85e8c54548c2fc1efffd9f0673cda30941f63d375caa0d3b8d5b846122524
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.13.9 Linux/6.17.0-PRoot-Distro

Release files / mksinewave-1.0.2-py3-none-any.whl

Download URL mksinewave-1.0.2-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7ba0fd3db664944863ce676a4bb144faae871dd956c7ef9ba66a95c97b7962d
BLAKE2b-256 checksum
How to use checksums
9a4680be82be920ad84df10d04b5e9cf43911cb05264a05b62600bef0559881c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.13.9 Linux/6.17.0-PRoot-Distro

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page