Learn R Programming

seewave (version 1.4.3)

oscillo: Show a time wave as an oscillogram

Description

This graphical function displays a time wave as an oscillogram in a single or multi-frame plot. The envelope of the wave can also be shown.

Usage

oscillo(wave, f, from = FALSE, to = FALSE, zoom = FALSE,
k=1, j=1, labels = TRUE, byrow = TRUE, env = FALSE, smooth = NULL,
ksmooth = NULL, identify = FALSE, plot = TRUE, colwave = "black", 
colbg = "white", coltitle = "black", collab = "black", 
cexlab = 1, fontlab = 1, colline = "black", 
colaxis = "black", coly0 = "grey47",
title = FALSE, xaxt="s", yaxt="n", bty = "l")

Arguments

wave
data describing a time wave or a Sample object generated loading a wav file with loadSample (package Sound).
f
sampling frequency of wave (in Hz). Does not need to be specified if wave is a Sample object.
from
start of the oscillogram (in s).
to
end of the oscillogram (in s).
zoom
time zoom in with start and end points chosen on the oscillogram with a cursor.
k
number of horizontal sections (by default =1).
j
number of vertical sections (by default =1).
labels
if TRUE plots time and amplitude labels (by default TRUE).
byrow
logical, if TRUE, the sections are filled by rows, otherwise the sections are filled by colmuns (by default TRUE).
env
logical, if TRUE plots the envelope of the time wave instead (by default FALSE).
smooth
if env is TRUE then smoothes the envelope by floating average.
ksmooth
if env is TRUE then smoothes the envelope by applying a kernel smoothing.
identify
returns the time coordinate of points chosen with a cursor on the oscillogram.
plot
logical, if TRUE returns an oscillographic or envelope plot of wave(by default TRUE).
colwave
colour of the oscillogram or of the envelope.
colbg
background colour.
coltitle
if title is TRUE, colour of the title.
cexlab
character size for axes title.
fontlab
font for axes title.
collab
colour of axes title.
colline
colour of axes line.
colaxis
colour of the axes.
coly0
colour of the y=0 line.
title
logical, if TRUE plots the title with information on time and f (by default FALSE).
xaxt
equivalent to xaxt of par (by default ="s").
yaxt
equivalent to yaxt of par (by default ="n").
bty
the type of box to be drawn around the oscillogram.

Value

  • Data are returned as one-column matrix if plot is FALSE. identify returns a numeric object with the time coordinate of points successively chosen on the oscillogram.

See Also

oscilloST,cutw, pastew, timer

Examples

Run this code
data(tico)
# a simple oscillogram of a bird song
oscillo(tico,f=22050)
# zoom in
op<-par(mfrow=c(4,1),mar=c(4.5,4,2,2))
oscillo(tico,22050,cexlab=0.75)
oscillo(tico,22050,from=0.5,to=0.9,cexlab=0.75)
oscillo(tico,22050,from=0.65,to=0.75,cexlab=0.75)
oscillo(tico,22050,from=0.68,to=0.70,cexlab=0.75)
par(op)
# the same divided in four lines
oscillo(tico,f=22050,k=4,j=1)
# the same divided in different numbers of lines and columns
oscillo(tico,f=22050,k=4,j=4)
oscillo(tico,f=22050,k=2,j=2,byrow=TRUE)
oscillo(tico,f=22050,k=2,j=2,byrow=FALSE)
# envelope representation without and with smoothing
oscillo(tico,f=22050,env=TRUE)
oscillo(tico,f=22050,env=TRUE,smooth=80)
oscillo(tico,f=22050,env=TRUE,ksmooth=kernel("daniell",10))
oscillo(tico,f=22050,env=TRUE,ksmooth=kernel("daniell",500))
# overplot of oscillographic and envelope representation
env<-oscillo(tico,f=22050,env=TRUE,plot=FALSE,smooth=40)
ticonorm<-tico/max(tico)
envnorm<-env/max(env)
oscillo(ticonorm,f=22050)
par(new=TRUE)
plot(envnorm,type="l",col="red",xaxs="i",yaxs="i",ann=FALSE,xaxt="n",yaxt="n",
    ylim=range(ticonorm),bty="l",lwd=2)
legend(x=4, y=1,"smoothed envelope", col="red",lty=1,lwd=2,bty="n",cex=0.75)
# full colour modifications in a two-frame oscillogram
oscillo(tico,f=22050,k=4,j=1,title=TRUE,colwave="black",colbg="grey",
    coltitle="yellow",collab="red",colline="white",
    colaxis="blue",coly0="grey50")
# change the title
data(orni)
oscillo(orni,f=22050,title=FALSE)
mtext("The song of a famous cicada",side=3,line=2,font=2,col="red",cex=1.5)

Run the code above in your browser using DataLab