KG's variable pitch/speed player
File size: less than 700kB
Thanks to soundtouchjs module (https://github.com/cutterbl/SoundTouchJS).
日本語
0. Devices tested
- (Stable) Linux -- Firefox, Chrome
- (Stable) Windows 10 -- Edge
- (Stable) macOS -- Safari
- (Stable) Android Phone -- mobile Chrome
- (stable) iPhone 6/iPodTouch mobile Safari
- (stable) iPadOS mobile Safari
The program is written in JavaScript and computation is on your web browser.
It should work offline.
1. Features
- Same program (just 700kB) works on various devices.
- No installation required. Runs offline.
- Slow down playback for drummer, guitarist, pianist, vocalist
- Fine pitch adjustment for vocalist, guitarist, pianist
- Modified sound on pitch/speed can be downloaded as wav file
(No network connection required since downloading is local)
2. Brief How To
Prepare audio file (wav, mp3, and other formats depends on the device)
on local disk or cloud storage.
For iOS(iPhone) devices, iCloud Drive is easy to access.
For Android devices, Google Drive is easy to access.
(FYI) Sample audio files (copyright free)
Download them and save in local disk or cloud storage.
Then open one of them in this program.
Buttons and slider controls
- 1) Load an audio file in the top input box.
Then "selectFile!" becomes "PlayOnce".
- 2A) Normal Playback
- "PlayOnce" to play once
- "Pause" to pause,
- "Rewind" to set the time to the beginning.
- 2B) Loop Playback
- "LoopAB" to play AB loop
- "StopLoop" to stop loop
- interval: interval between successive playback (default 2 sec)
- A, B Setting --
Set A and B with Time slider and "setA", "setB" button
or press "setA" and "setB" during playback.
- Sliders
- Speed Control: move the slider (25% to 200%)
- Pitch Control: move the semi-tone slider and fine pitch adjust ment
by moving "cents" slider (100 cents = 1 semi-tone)
- Volume Control: move the slider (default 80)
does not affect the volume of exported wav file.
- 3) Export
- "ExportAfterPlayback": export wave file at the selected speed and pitch
- "abortExport": abort export
- "iOSAudioReset": click if audio system gets insane on iOS devices
- Notes on export
- ExportWav needs playback time with the current playback speed
- Do not move Speed and Pitch Sliders while exporting unless if you really want to
- Volume value does not affect the exported sound
- Filename will be set as "originalname&s90&p-188.wav"
(speed 80, pitch -1.88)
-
iOS 12 requires special operation to store the exported data
2. Comments
My iPhone/iPod Touch (iOS12) requires
special operation to store the exported data.
Blob window pops up and it is possible to save the data in iCloud Drive.
You want to rename the file with extension".wav",
because the filename will not be set automatically.
The problem of the specification might be solved already on iOS 13.
Note iOS 13 does not support older devices such as my iPod Touch
and iPhone6.
I know it is stupid to wait for playback time for export.
I am trying to find a way to use soundtouchjs module
with OfflineAudioContext.
Source code (JavaScript and sound files)
https://github.com/goto920/
Contact: goto at kmgoto.jp