.PS
# `Audio.m4'
cct_init

define(`In123',`
thinlines_
     arrow <- from `$1'.In1 up 0.05 left 0.15
     "{\sl In1}sp_" rjust above
     arrow <- left 0.15 from `$1'.In2
     "{\sl In2}sp_" wid 0.2 rjust
     arrow <- from `$1'.In3 down 0.05 left 0.15
     "{\sl In3}sp_" rjust below
thicklines_ ')

L:[
  [
  S: speaker
  `"\tt speaker"' at S.s+(0,-0.2) #below
  In123(S)
  thinlines_
     arrow <- from S.In4 left 0.05 up 0.15
     "{\sl In4}" above rjust
     arrow <- from S.In5 right 0.05 up 0.15
     "{\sl In5}" above
     arrow <- from S.In6 left 0.05 down 0.15
     "{\sl In6}" below rjust
     arrow <- from S.In7 right 0.05 down 0.15
     "{\sl In7}" below
     spline <- from S.Box.e+(0,0.05) right 0.27 up 0.10 \
      then right 0.1 up 0.2
     "\sl Box" above
  thicklines_
  ]
[
  H: speaker(,,H)
  `"\tt speaker(,{,}H)"' at H.s+(0,-0.30) #below
  ] with .sw at last [].se+(0.25,-0.1)
  ]
[
  B: bell
  `"\tt bell"' at B.s+(0,-0.2) #below
  In123(B)
  thinlines_
  arrow <- from B.Box.n+(-0.1,0) up 0.15 left 0.1 ; "\sl Box" above
  arrow <- from B.Circle.n up 0.15 ; "\sl Circle" above
  thicklines_
  ] with .w at last [].e+(0.0,0.5)
[
  Z: buzzer
  `"\tt buzzer"' at Z.s+(0,-0.2) #below
  In123(Z)
  thinlines_
  arrow <- from Z.Box.n up 0.15 ; "\sl Box" above
  thicklines_
  ] with .sw at last [].se+(0.4,0)
R:[
  Z: buzzer(,,C)
  `"\tt buzzer(,{,}C)"' at Z.s+(0,-0.2) #below
  In123(Z)
  thinlines_
  spline <- from 0.8<Z.Face.s,Z.Face.n> right 2*arrowht up 0.5*arrowht \
    then up 0.15 right 0.05 
    "\sl Face" above
  thicklines_
  ] with .sw at last [].se+(0.4,0)
[
  M: microphone
  `"\tt microphone"' at M.s+(0,-0.2) #below
  In123(M)
  thinlines_
  arrow <- from M.Circle.n up 0.15 ; "\sl Circle" above
  thicklines_
  ] with .sw at last [].se+(0.4,0)
[
  M: microphone(A)
  `"\tt microphone(A)"' at M.s+(0,-0.2) #below
  thinlines_
  arrow <- from M.Head.e+(0,0.05) right 0.2; "\sl Head" ljust 
  spline 0.5 <- from M.Head.b down 0.05 right 0.1 then right 0.1
  "\sl Head.b" ljust
  arrow <- from M.Stand.s right 0.2; "\sl Stand.s" ljust
  thicklines_
  ] with .n at last [].s+(0,-0.05)
[[
  E: earphone
  `"\tt earphone"' at E.s+(0,-0.2) #below
  In123(E)
  thinlines_
  arrow <- from E.Box.n up 0.15 left 0.15 ; "\sl Box" above
  thicklines_
  ]
 [
  E: earphone(,,C)
  `"\tt earphone(,{,}C)"' at E.s+(0,-0.2) #below
  thinlines_
  arrow <- from E.L up 0.15 left 0.15; "\sl L" rjust
  arrow <- from E.R up 0.15 right 0.15; "\sl R" ljust
  "\sl N" at E.N above
  "\sl C" at E.C
  thicklines_
  ] with .sw at last [].se+(0.6,0)
] with .n at (0.6 between L and R, R.s)+(0.5,0.1-ifdpic(0.2,0.25))

.PE
