[comp.sys.amiga] PD Audio Library in AmigaWorld

kim@amdahl.UUCP (04/09/87)

[ Some days you eat the line ... some days the line eat's you ... ]

Another note from last night's FAUG meeting ...

Rob Peck (gee, that guy is modest) announced that the July/August
issue of AmigaWorld *will* be carrying his article on a library
of routines that will make dealing with the audio.device much
easier ... WITH FULL SOURCE CODE (a 1st for AmigaWorld)!

Rob is still soliciting input on features that people would like
to see in such a PD library, and suggested sending him your wish-
list at the address in the back of his book (sorry, I don't have
my copy with me).  He's also on the net, and his email address
is:
        ...!hplabs!dana!rap

Routines for doing all the "standard stuff" are already there
(like channel allocation, playing this note for this long with
this waveform, scripts, play this digitized sound sample, etc.)
What Rob is looking for (I think), are special capabilities that
he might have overlooked, and such.  He mentioned the possibility
of an SMUS player, but didn't know if he could do it in time.

Hope I got the gist of this right, Rob ... care to elaborate?

One of the really amazing things about the Amiga "culture" is the
quantity of quality PD s/w that is available.  My sincerest thanks
to everyone who's made this possible!

/kim


-- 
UUCP:  kim@amdahl.amdahl.com
  or:  {sun,decwrl,hplabs,pyramid,ihnp4,seismo,oliveb,cbosgd}!amdahl!kim
DDD:   408-746-8462
USPS:  Amdahl Corp.  M/S 249,  1250 E. Arques Av,  Sunnyvale, CA 94086
CIS:   76535,25

[  Any thoughts or opinions which may or may not have been expressed  ]
[  herein are my own.  They are not necessarily those of my employer. ]

rap@dana.UUCP (04/11/87)

In article <6135@amdahl.UUCP>, kim@amdahl.UUCP (Kim DeVaughn) writes:
> Another note from last night's FAUG meeting ...
> 
> Rob is still soliciting input on features that people would like
> to see in 

<.... a PD audio library...>.
> 
> Hope I got the gist of this right, Rob ... care to elaborate?


Kim asked if I wanted to elaborate about the sound "feedback"
that I wanted.  Yes, here are a few extra details.  

To reiterate:
the AWorld article will contain source code for various routines that
are designed to make use of the audio.device easier (at least they
do it for me).  All the routines they publish now automatically
either allocate or use and reuse audio communications packets,
queueing up notes for each channel and basically playing the sounds
with no further intervention on the part of the caller.  Later
(not published) I will be adding provisions to inform the caller 
that a specific sound has begun to play (perhaps even the 
sound-of-silence, appended to the end of a queue of sounds).

Here is a list of the functions that will be in the article and
now are functional.  I am asking if net-folks and other interested
parties would like to see additional functions installed on the
disk-to-be-offered at the time the article finally appears (July/Aug).
I will have some time available between now and then to patch-into
or build-ontop-of these functions.  I cannot "publish" much detail
about the functions here, so as to avoid difficulties with
the magazine on prepublication, but I can at least give you
the names of the fuctions and ask if you would find any other
functions useful:

	InitAudio()
	channel = GetChannel(channel)

	error = PlayNote(channel, waveform, freq, volume, duration, <more>)

	StopChannel( channel)
	StartChannel(channel)
	ResetChannel(channel)
	FlushChannel(channel)

	FreeChannel( channel)

	FinishAudio()

Plus internal functions for creating and initializing and
freeing audio I/O blocks.

I did a chalk-talk at a developers' group meeting, and showed them what
I was working on for this article.  They suggested the following additions
to what you see described above.

	stereo pairs (allocation and usage examples)

	attached-channel pairs (allocation and usage)
	 could use for vibrato and similar effects.

	PlayWave (for handling sampled sounds in addition to synthesized ones)

	PlaySong (to automatically feed the channels)

	Implied rest function between notes for more natural sounding output
	 without explicitly encoding periods of silence into a song.

	Slew rate for volume and/or frequency between adjacent queued
	 notes (this one is really tricky and may require patches to
	 the audio device itself).

	PD SMUS Player... well, maybe.
-------------------------------------------------------------------------

What else do you need?  I want to make it really easy for developers to
port sound stuff onto the Amiga.  It has a dynamite sound system and it
SHOULD GET USED.  How can I help to make it easier?

Please note that I cannot release the source code until the magazine
goes to press.  But a souce/object disk will be available directly 
from me at that time, at a very attractive price (article will say 
$8. ppd to get the latest-and-greatest version then available).

Whatever suggestions you have now will simply make the final product
more useful to YOU later.  Let me know via direct email or usnail if 
you wish.  If there are enough responses, I will post a condensed
list of suggestions to the net for further comments.

Rob Peck		net:  ...hplabs!dana!rap
			usnail:  Datapath, P.O.Box 1828, Los Gatos, Ca 95031