Installation

You can simply use pip:

pip install pitchmeld

Pitchmeld is a “connected module”: First, you have to provide an API token in the environement variables that you obtain through the pitchmeld website, ex.:

export PITCHMELD_KEY=api_duJhSwq878ii44VkyD0X3AIjG1eBpf0kZM3Zek4YXQHTlZhgGqxrWip7z6p8pyUW

Then, you can run some python code, ex.:

python -c 'import pitchmeld; print(pitchmeld.__version__)'

License verification

When loading the module with import pitchmeld, the API token will be checked through the network and thus validate your usage license. This validation process starts when the module is loading, in the background, thus minimizing any delay before audio processing.

If the license is not valid, and you run any transformation function, a RuntimeError exception will be raised.

Note

No matter the validity of your license, you will always be able to import the pitchmeld module. This is to avoid that a licensing issue blocks a whole SaaS service that makes use of pitchmeld.

Note

No audio stream will be passed to pitchmeld servers. 100% of the processing is done locally on your machine.

Note

So why this package needs to connect to the Internet and why does it need a license validation? The reasons are the following:

  • Pay us for our work building this tool.

  • Pay us when we are taking care of our users’ requests.

  • Gather performance statistics that warn us as soon as a version is unexpectedly underperforming.

  • Gather usage statistics that help us setting priorities for the development.

As you can see, no rent-seeking mechanism here. As soon as there will be no more active development and maintenance on this project, we will be more than happy to merge pitchmeld into the open-source project phaseshift, thus making it free for everyone.

Testing

To verify that everything is setup properly, you can run the tests provided with the module:

python -c 'import pitchmeld.tests; pitchmeld.tests.run()'

This runs mainly smoke tests.

This command does not run all regressions tests for audio processing, as they are too heavy to be shiped with the python module.