Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikolalysenko/pitch-shift
Variable speed pitch shifter written in JavaScript
https://github.com/mikolalysenko/pitch-shift
Last synced: about 2 months ago
JSON representation
Variable speed pitch shifter written in JavaScript
- Host: GitHub
- URL: https://github.com/mikolalysenko/pitch-shift
- Owner: mikolalysenko
- License: mit
- Created: 2013-06-18T15:09:49.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-06-18T22:14:04.000Z (over 11 years ago)
- Last Synced: 2024-10-26T07:34:11.606Z (about 2 months ago)
- Language: JavaScript
- Homepage: http://mikolalysenko.github.io/pitch-shift/
- Size: 1.05 MB
- Stars: 79
- Watchers: 7
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
pitch-shift
===========
A variable speed pitch shifter written in JavaScript.[Here is a demo you can try in your browser!](http://mikolalysenko.github.io/pitch-shift/)
## Example
Here is a simplified psuedo-example:
```javascript
//Create a pitch shifting object
var shifter = require("pitch-shift")(
function onData(frame) {
//Play / write out frame. Called whenver data is ready
},
function onTune(t, pitch) {
console.log("Got pitch ", pitch, " at time ", t)
//This is the amount to scale the sample by
return 1.0
})
//Feed some data to the shifter
shifter(new Float32Array([1, 1, 0, 1, 0, 0, 0 /* ... etc */ ]))
```For a more complete working example, check out test/test.js or example/index.js
## Install
npm install pitch-shift
### `require("pitch-shift")(onData, onTune, options)`
Creates a pitch shifting function* `onData(frame)` Called when a pitch shifted frame is ready.
* `onTune(t, pitch)` Called when a frame of audio needs to be processed.
* `options` An object full of options to pass to the pitch shifter+ `frameSize` size of frame to process (default `2048`)
+ `hopSize` the distance between frames in samples. Must divide frame size. (default `frameSize/4`)
+ `dataSize` maximal allowable size of a data frame (default `frame_size`)
+ `sampleRate` Conversion factor from samples to seconds. (default `44100`)
+ `analysiWindow` analysis window. must be a typed array with length equl to frame size (defaults to Hann window)
+ `synthesisWindow` synthesis window. must be a typed array with length equal to frame size (defaults to Hann window)
+ `threshold` peak detection threshold. Set to 1.0 to always take maximum, otherwise set lower to detect half tones. (default `0.9`)
+ `minPeriod` Minimal resolvable period. (default `sampleRate/400`)**Returns** A function that you call with a frame of data.
## Credits
(c) 2013 Mikola Lysenko. MIT LicenseGettysburg adress reading by Britton Rea. Recording obtained from the Internet archive. http://archive.org/details/GettysburgAddress