The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Type: Package
Title: Remove Vocals from a Song
Version: 3.0
Date: 2025-06-02
Author: John R. Dixon [aut, cre]
Maintainer: John R. Dixon <gbm2sas@gmail.com>
Description: Attempts to remove vocals from a stereo '.wav' recording of a song.
License: GPL-3
Depends: tuneR, seewave
NeedsCompilation: no
Packaged: 2025-06-02 10:36:37 UTC; user
Repository: CRAN
Date/Publication: 2025-06-02 11:20:02 UTC

Remove Vocals from a Song

Description

Attempt to remove vocals from a stereo '.wav' recording of a song.

Author(s)

John R. Dixon <gbm2sas@gmail.com>

Maintainer: John R. Dixon <gbm2sas@gmail.com>

References

Well known trick.


Remove vocals from a song

Description

Attempt to remove vocals from a stereo '.wav' recording of a song.

Usage

karaoke(infile = NULL, outfile = NULL, sampf = NULL)

Arguments

infile

filename of a stereo '.wav' recording of a song

outfile

filename for the output '.wav' file

sampf

sometimes optional sampling frequency

Author(s)

John R. Dixon <gbm2sas@gmail.com>

References

Well known trick.

Examples

#We use some '.wav' samples included in the seewave package to construct an example.
data(orni)
data(peewit)
data(tico)
#Extend all the samples to be at least 20 seconds long.
for(loop in 1:5) orni<-pastew(orni,orni,f=22050, output="Wave")
for(loop in 1:5) peewit<-pastew(peewit,peewit,f=22050, output="Wave")
for(loop in 1:5) tico<-pastew(tico,tico,f=22050, output="Wave")
#Cut all samples down to exactly 20 seconds long.
orni<-cutw(orni,f=22050,from=0,to=20, output="Wave")
tico<-cutw(tico,f=22050,from=0,to=20, output="Wave")
peewit<-cutw(peewit,f=22050,from=0,to=20, output="Wave")
#Construct and write the example song to a '.wav' file.  The tweeting bird, "tico", will be the 
#"vocalist", mixed to center.  The "rhythm section" will be "orni" and "peewit", not mixed to 
#center.  (Usually in stereo song recordings, the vocals are most mixed to center, allowing the 
#trick employed by the "karaoke" function to work.)
left<-normalize(tico+orni)
right<-normalize(tico+peewit)
wobj<-stereo(left,right)
slot(wobj,"pcm")<-FALSE
writeWave(wobj, filename="song.wav")
#Make the karaoke version: the vocal from "tico" is removed.
karaoke(infile="song.wav", outfile="song4karaoke.wav")
file.remove("song.wav")
file.remove("song4karaoke.wav")

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.