Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
qplay(1)			    hxtools			      qplay(1)

Name
       qplay --	convert	QBASIC play strings to PCM

Syntax
       qplay [-i part] [-q part] [-r rate] [file...] | aplay -f	dat -c 1

Description
       qplay  will convert QBASIC-style	strings	for its	"PLAY" command to lin-
       ear 16-bit raw PCM. Normally, you will be wanting to pipe it into a raw
       PCM player like aplay(1)	to actually output it to a  sound  device.  Be
       sure  to	lower the volume beforehand to avoid nasty surprises that come
       with square waves. By default, bsvplay will mix 1:1  square:sine	 waves
       to give a medium	tone hardness.

Options
       -q part
	      Part to mix square waves in (default: 1.0)

       -i part
	      Part  to	mix sine waves in (default: 1.0). If -q2 -i1 is	speci-
	      fied  for	 example,  the	final  PCM  output  will  consist   of
	      2/3*squarepcm + 1/3*sinpcm.

       -r rate
	      PCM sample rate (default:	48000 Hz)

File format / PLAY statements
       The file	format qplay expects is	of course not BASIC, but raw PLAY com-
       mand  strings.  Lines that start	with a leading hash mark ('#') are ig-
       nored.

       Commands	are case insensitive and whitespace  is	 mostly	 ignored.  The
       original	QBasic manpage is slightly incorrect; below is what qplay sup-
       ports.

   Octave commands
       on     Sets the current octave. There are seven octaves,	n = 0-6.

       >      Increases	 octave	 by 1. The upper octave	limit in QBasic	was 6;
	      qplay has	a limit	of 9.

       <      Decreases	octave by 1. Octave cannot drop	below 0.

   Tone	commands
       A - G  Plays a note in the range	A-G. The number	sign (#) or  the  plus
	      sign  (+)	 after a note specifies	sharp; a minus sign (-)	speci-
	      fies flat.  N n Plays note n. The	range for n is	0-84  (in  the
	      seven possible octaves, there are	84 notes); n = 0 means a rest.

   Suffixes
       # or + Follows a	specified note and turns it into a sharp.

       -      Follows a	specified note and turns it into a flat.

   Duration commands
       L n    Sets  the	 length	 of  each  note. L4 is a quarter note, L1 is a
	      whole note, etc.	The range for n	is 1-64. The length  may  also
	      follow  the  note	 when a	change of length only is desired for a
	      particualr note. For example, A16	can be equivalent to L16A.

       MN     Sets "music normal" so that each note will play 7/8 of the  time
	      determined by the	length (L).

       ML     Sets  "music legato" so that each	note will play the full	period
	      set by lengt (L).

       MS     Sets "music staccato" so that each note will  play  3/4  of  the
	      time determined by the length (L).

   Tempo commands
       P n    Specifies	a pause, ranging from 1-64. This option	corresponds to
	      the length of each note, set with	L n.  T	n Sets the "tempo", or
	      the number of L4 quarter notes in	one minute. The	range for n is
	      32-255. The default for n	is 120.

	.     A	 period	 after	a  note	 causes	the note to play 3/2 times the
	      length determined	by L (length) times T (tempo).	The period has
	      the same meaning as in a musical score. Multiple periods can ap-
	      pear after a note. Each period adds a length equal  to  one-half
	      the  length  of the previous period. For example,	the command A.
	      plays 1 +	1/2, or	3/2 times the length, and A.. plays 1 +	1/2  +
	      1/4,  or 7/4 times the length.  Periods can appear after a pause
	      (P). In this case, the pause length is scaled in	the  same  way
	      notes are	scaled.

   Variables
       X(var) Play the string in the variable var.

       Variable	definitions in qplay syntax are	for example:

	    $var = "CDEF";

       and they	must stand on a	single line.

Examples
	    echo "L16O2CDEFGAB>CDEFGAB>L4C" | qplay - |	aplay -fdat -c1

       will play a tone	ladder.

See also
       aplay(1), bsvplay(1), hxtools(7)

hxtools				  2008-02-06			      qplay(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=qplay&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help