EMUSIC-L Digest Volume 40, Issue 14 This issue's topics: CSound, NetJam, and direct digital synthesis (fwd) MIDI control of samplers (2 messages) MIDI Sample Dump Panning PC Audio Software Performer/SMPTE problem (3 messages) Software (2 messages) TCPPlay TCPPlay followup Your EMUSIC-L Digest moderator is Joe McMahon . You may subscribe to EMUSIC-L by sending mail to listserv@american.edu with the line "SUB EMUSIC-L your name" as the text. The EMUSIC-L archive is a service of SunSite (sunsite.unc.edu) at the University of North Carolina. ------------------------------------------------------------------------ Date: Wed, 27 May 1992 14:02:55 EDT From: "Joseph D. McMahon" Subject: CSound, NetJam, and direct digital synthesis (fwd) Richard Byrd writes: I read Herr Latta's blurb about NetJam in a recent EMUSIC digest, and am quite interested. I'll be FTPing that site soon. Nifty idea. I also read of the possibility of branching into CSound...it may (or may not!) be of interest to know that we have CSound running on PCs, Macs, a Cray XMP, an old clunker of a Sperry Univac V77 mini, as well as the university's 3090 mainframe! Additionally, we have been running Hubert Howe's MUSIC4BF program for years for direct digital. I'd be interested to see what kind of stuff I could collect for those programs. ---------- Everything alive either grows or dies. ---------- Just plain ol' Richard -- rbyrd3@ua1vm.ua.edu -- NetAdmin, UA School of Music ------------------------------ Date: Tue, 12 May 1992 10:08:08 CDT From: Joseph Fosco Subject: MIDI control of samplers Hi, I'd like to know a little about the ability to control samplers via MIDI, and the capabilities of samplers in general. Ideally, I'd like to be able to do anything possible from the front panel with MIDI. Could I begin sampling with MIDI? Would it be possible to sample something and immediately start to loop through it, kind of like some of the old sompling stomp boxes? Could you change the loop points of the sample while the sample is playing? Would it be possible to play 1 sample while recording another? I hope these don't seem too general, but aside from the ability of samplers to record a sample, edit it and play it back I'm not too familiar with what is possible. Also, I'm trying to keep this relatively short, but if you need more details about what I'm thinking about please ask. Thanks. Joseph Fosco Internet: b38669@anlvm.anl.ctd.gov Bitnet: b38669@anlvm ------------------------------ Date: Wed, 13 May 1992 11:56:17 BRA From: Flavio <87141167@BRUFSC.BITNET> Subject: Re: MIDI control of samplers >From: Joseph Fosco >Subject: MIDI control of samplers > >Hi, > >I'd like to know a little about the ability to control samplers via >MIDI, and the capabilities of samplers in general. I don't know about the midi control of samplers, but some capabilities are: mixing two samples, concatenating, digital filtering, truncating, various looping algorithms, reversing, time scaling, digital pitch shifting, etc. Some samplers have all features (Akai S1000, S1100, Roland S770, Emu III, for example) and others have only some features (Roland W30 haven't time scaling, pitch shifting). Only looking the specifications you'll know what a sampler have. A regular introduction is the Keyboard's Buyer's Guide. >Ideally, I'd >like to be able to do anything possible from the front panel with >MIDI. I think that this isn't possible. Look the sys-ex implementation. >Could I begin sampling with MIDI? Would it be possible to >sample something and immediately start to loop through it, kind >of like some of the old sompling stomp boxes? Could you change >the loop points of the sample while the sample is playing? Would >it be possible to play 1 sample while recording another? > In order: No. No. Yes. No. (IN ROLAND W30) Hope this helps, Flavio _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- FLAVIO BRESSAN - 87141167@BRUFSC | GETTING OUT THE CORRUPTION, MISERY GRAD IN ELECTRICAL ENGINEERING | PEOPLE ALIENATION, POWER GAMES, FEDERAL UNIVERSITY OF SANTA CATARINA| INFLATION, WILD CAPITALISM, ------------------------------------- UN-NATIONALISM, UN-EDUCATION, DESPERDICE OF NATURAL RICHNESS, DESPERDICE IN GENERAL, BAD INVESTORS, ABUSIVE PROFITS, UN-COMPETITIVE INDUSTRY, MONOPOLIES, ETC... BRASIL IS THE COOLEST PLACE TO LIVE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ ------------------------------ Date: Tue, 5 May 1992 11:12:37 +0200 From: Vjeko Balas Subject: Re: MIDI Sample Dump Hi, If you get any info, I`d be pleased if I could also get a copy. See ya, Vjeko eedvab@aachen.ericsson.se ------------------------------ Date: Fri, 1 May 1992 08:55:33 EDT From: Rick Duffy Subject: Panning hello there, I'm starting to work on a system, one of whose components will eventually be 3-d sound localization. But for now, I just want to do some good stereo panning (through algorithms running on some computer with a pre-sampled sound). The simplest and most obvious way seems to be just decreasing the sound's amplitude in one ear while increasing it in the other. I'm wondering, though, if this is all it takes, or if I should really also do some manipulation of the frequencies as well (the thought being that as a sound moves around your head, perhaps the higher frequencies would drop out more than the lower ones, or something like that). I expect I should also do some time variation as well, with a sound localized near your right ear arriving at your left ear with a sloght (slight) delay. This is all going to be done in headphones, btw. Again, right now I don't want do get into true 3-d sound, measuring pinnae, applying lots of filter functions, etc. Just some good (maybe better than good) and fast panning, with a good feel of "space". Any comments would be great! .. rick ------------------------------ Date: Thu, 7 May 1992 17:02:58 -0400 From: SPRG0002@TULSAJC.BITNET Subject: PC Audio Software Does anyone on the list have experience (good or bad) with any particular softw are packages designed for PC sound boards? In particular the Pro-Audio Spectrum board from Media Vision. The .WAV file editing and cut/paste provided with the board is somewhat under powered and cumbersome. Exercise and defend your right to keep and bear arms... Have a day ------------------------------ Date: Thu, 30 Apr 1992 15:24:30 BST From: nick@DCS.EDINBURGH.AC.UK Subject: Performer/SMPTE problem I find that when I cycle the power of my MIDI Time Piece 90% of the problem goes away: It seems like the MTP has its own inconsistencies. I didn't write this, btw. My MTP is functional on the SE/30 without problems and works as a slave on the PowerBook (but the DA doesn't). what does "cycle the power" mean? =-> OFF =-> =-> ON =-> Nick. ------------------------------ Date: Fri, 1 May 1992 01:28:00 EST From: NLEONARD@RCNVMS.RCN.MASS.EDU Subject: Re: Performer/SMPTE problem Cycle the power means turning the power off then on. Neil Leonard ------------------------------ Date: Fri, 1 May 1992 10:47:03 BST From: nick@DCS.EDINBURGH.AC.UK Subject: Performer/SMPTE problem How is the Powerbook with MAX and or whatever sequencer you use? MIDI IN currently doesn't work reliably, for various well-accepted reasons associated with the power management code in the ROM's. MIDI OUT seems fine. I'm using mine as a sequencing engine with Performer, for output only (via an MTP), with OMS drivers running the MTP and Performer attached with MIDI Manager. It seems quite happy, though any dense data creeping into the PowerBook causes SCC overrun reports from OMS. I intend to use this setup on stage, with the SE/30 running MAX (for which I need reliable input and output - MAX is providing various virtual keyboard functions). Nick. ------------------------------ Date: Fri, 22 May 1992 08:47:00 EST From: BULMER STEVEN R Subject: RE: Software Regarding the software request, please post opinions to the list as I would be very interested in opinions; especially any opinions comparing Finale by Coda and Encore by Passport. -Steve B ------------------------------ Date: Fri, 22 May 1992 10:57:51 MET From: Doumen Jan Subject: Software Hi, I don't know if this is the right discussion list for the next question, but on others I don't get answers. So let's try it here. I am looking for a good software for music editing. Preferably free- or share ware but good ones commercial available are also welcome. It's the intention to use it to print my own composed music, so if possible one where you just put note by note in music notation and then print it out on a laserprinter. Anybody suggestions or ideas. Comments on software's is also welcome. If possible please correspond to me directly since I am not subscribed to the list. I'll post a summary if I get enough information. De Jean. -- ------------------------------ Date: Wed, 13 May 1992 17:01:03 EDT From: "Joseph D. McMahon" Subject: TCPPlay Well, I've just run across an interesting little item. TCPPlay (available from ftp.apple.com, in the /public directory, I believe) provides a means for your Mac to play sounds which reside in Unix-format soundfiles. It sets up a TCP/IP listener that an application on the Unix machine can connect to. This application takes the transmitted files and plays them with standard Mac sound output. Not terribly high quality, but! It does provide one with a (relatively) quick means of checking the output froma sound-generating program. This is especially useful if you flat don't have access to anything else that can do the D-to-A conversion. I've been thinking about trying out some of the sound-generation software available at various places around the net, and now I think I will definitely do it. We have a Convex downstairs that not much is running pn right now; looks like a good place to start... --- Joe M. ------------------------------ Date: Wed, 13 May 1992 17:08:28 EDT From: "Joseph D. McMahon" Subject: TCPPlay followup Here's the "man page" for it: PLAY(1) USER COMMANDS PLAY(1) NAME play - play a file on a Macintosh computer SYNOPSIS play [-options] filename DESCRIPTION Play is a communication program which allows a Unix machine to play sounds on a Macintosh computer. A Macintosh appli- cation called TcpPlay accepts network connections and manages the sound hardware. Depending on the hardware available, sounds can be played at up to 16 bits/sample and a 44khz sampling rate. Play uses a TCP stream to connect a Unix host and the Macin- tosh computer. After reading the file into memory and con- verting it into the proper form the play program opens a connection to port 800 on the selected sound server machine. A sound server can be selected by naming it in the SOUNDHOST environment variable or on the command line. It is hoped that someday this program will evolve into a service for sound similar to what the X window system has done for graphics. The following command line options are supported. They can be listed in any order. -host name Connect to TcpPlay on the named host. This com- mand line option overrides the host specified in the SOUNDHOST environment variable. -sync The play program will not terminate until the sound has finished playing and the sound server is ready to accept another connection. This option is used to synchronize the timing of the host and the sound server. -query Query the sound server and report on its capabili- ties. The information returned currently consists of the protocol version number, the number of out- put channels, the sound hardware types supported and the maximum sample size in bits. -rate sample_rate The sample rate specified by the file can be over- ridden using this command line option. The sample_rate is a floating point number. -rX:[+]Y This option specifies that only a portion of the sound file should be played. The integers X and Y specify the beginning and end samples. The beginning sample, X, is optional and defaults to 0. The ending sample is specified by Y. An optional '+' after the ':' specifies that the Y number should be added to X to get the end value. This argument is compatible with the ESPS Waves software. If this option is not specified then the entire file is played. FILE FORMATS The play program can read a large number of sound file for- mats. Since Unix does not't support any notion of an intrin- sic file type we use the suffix of the file name (everything after the final period in the file name) to specify the file type. Here are the currently supported file types and the appropriate file suffix: .adc TI/MIT ADC format. This is a 16 bit format that was first defined for use with the Digital SoundStream Corporation digitizer. It has since been used for the TIMIT Speech database. The full specification of the format is given below. Note, the ADC format stores 16 and 32 bit words with the low bytes first. Some people reverse the order of the bytes and we call this the DAC format. .dac TI/MIT DAC format (byte reversed ADC file). The ADC format stores 16 and 32 bit words with the low bytes first. Some people reverse the order of the bytes and we call this the DAC format. .wav Waveform format. This is a raw 16 bit per sample format. There is no header and the sound data is stored with the low byte first. The sample rate is assumed to be 16khz. .m22 MacRecorder format. Farallon's MacRecorder digi- tizes sound with 8 bits of information per sample. The data fork of the output from Farallon's Sound- Edit program contains the sound data and the resource fork contains the sample rate and other items unique to the SoundEdit program. Using FTP it is possible to move the data fork from the Macintosh to a UNIX host. Since the data fork of a MacRecorder file only contains sound data the sample rate is specified by the file suffix. "m22" specifies the sampling rate is 22254.54 samples/second. .m11 MacRecorder format (11khz). Like the .m22 format but the sample rate is 11127 samples/second. .m7 MacRecorder format (7khz). Like the .m22 format but the sample rate is 7418 samples/second. .dy44 Dyaxis format. The Dyaxis hardware digitizes sound with 16 bits per sample. The default sam- pling rate is 44100 samples/second and the data is stored with no header. Thus the sample rate is in the file name. .dy22 Dyaxis format (22khz sample rate). Like the ".dy44" file type but 22 khz sampling rate. .snd NeXT sound file format. This is a file format with 16 bit samples as stored on the NeXT com- puter. .fl Floating format. This file format is a string of binary floating point numbers in the native machine format. This format is NOT transportable between different types of machines. .aif Apple Audio Interchange Format. All sample rates and bits/sample are supported. Many commercial Macintosh sound programs work with this format and all of the data is stored in the data fork so it is compatible with Unix. .irc IRCAM File Format. This file format is NOT tran- sportable in general. The header information specifies a sample rate, number of channels, and sample format. The stream of samples that follow are either "int"s or "float"s. Byte ordering and floating point formats are not specified. .sd Entropic Software Sound Data Format. The Entropic Sound Data format is supported on machines that have licensed the ESPS software. Contact Entropic Software for more information on this proprietary file format. The interface to the TcpPlay program is compatible with Entropic's Waves software so segments of files can be played directly from Waves. Here is the specification of the MIT ADC file format. An ADC file is a simple stream of eight bit bytes. All numbers are stored little-endian. Sixteen bit quantities are stored with the low order byte first, while 32 bit numbers are stored in order from low byte to high byte. The header of an ADC file has the following quantities: Header Size A 16-bit number representing the number of 16-bit words in the header. Version Number A 16-bit number representing the version number of the header information. This description is for ADC file format ver- sion 1. Channels A 16-bit quantity representing the number of channels in the input file. This program ignores this information and will only work properly for single channel input. Sample Time A 16 bit quantity representing the number of 250ns clocks between audio samples. The sample rate is given by dividing 4,000,000 by this number. The 4MHz rate represents the clock rate of the Digital Sound Corporation digital audio converters. Length A 32 bit quantity (low order bytes first) that indicates how many samples are in the file. Following the header there are zero or more filler words (depending on the header size). The audio data follows the header. Each sample is a 16-bit signed two's complement integer. This program assumes the data only has 12 bits of precision and that the upper four bits of each 16 bit word are zero. PROTOCOL The protocol is hidden from the user but is specified here for completeness. A client opens a TCP (stream) connection to port 800 of a Macintosh. Each transaction between the client (usually a Unix host) and the server (a Macintosh running the TcpPlay software) consists of a packet with the following structure. idString The 8 character null-terminated string "TcpPlay" begins each packet. cmd A two byte command number specifies the type of this packet. dataLength A four byte length specifies the number of bytes that follow in this packet. Note, all numbers in this protocol are sent with the high byte first (so called big endian) which is the native byte order for the 68000 family. The following commands are currently supported. The number in parenthesis indicates the command number. NullCmd(0) This command may have data but all data bytes are ignored. This will be used at some point for measuring network performance. QueryCmd(1) This command has no data but causes the server to return a single StatusCmd which is described next. StatusCmd(2) The following information is returned by a status command. Each quantity is returned in 2 bytes. 1) version of TcpPlay protocol. This manual page describes version 1 of the protocol. 2) maximum number of channels supported by the sound hardware. 3) the type of hardware available for sound output and 4) the maximum bytes per sample that are supported by the sound hardware. SoundDataCmd(3) Each chunk of sound is enclosed in a SoundDataCmd packet. The packet contains a header that speci- fies the characteristics of the sound data. The TcpPlay program will try to play consecutive SoundDataCmd packets without clicks but there are no guarantees. The SoundDataCmd contains the fol- lowing header information: 1) two 16 bit unsigned integers that specify the sampling rate. The first 16 bit quantity represents the integer part of the sampling rate (up to 65535 samples per second) and the second 16 bit quantity specifies the fractional part of the sampling rate. Thus the numbers 16000,32768 specifies the sampling rate 16000.5 Hz (32768/65536 is .5). 2) two bytes containing the sample size in bytes (only one and two byte files are currently supported.) 3) two bytes that tell the number of channels in the data stream. Currently only single channel files are supported. The data follows the SoundDataCmd header. Each sample is represented by the number of bytes specified in the header and channels are mixed in sequence (for example, left sample, right sample, left sample, etc.) VARIABLES SOUNDHOST This shell variable contains name of the the default Macintosh server. AUTHORS The play program was written by Malcolm Slaney. The Macin- tosh TcpPlay program was written by Bill Stafford, Rich Tsoi and Malcolm Slaney. Thanks to Alan Mimms (Apple), Michael Houser (Woodwind Software), Janine Roeth (Apple) and Chris Kent (DEC) for many useful ideas, hand holding, and large doses of moral support. The NeXT file support was supplied by Dave Mellinger at Stanford. BUGS Currently the entire sound file is read into host memory before any of the sound is played. This will be fixed in the next release. Only a single (monophonic) channel is currently supported. Stereo will be available in the next release. --- Joe M. ------------------------------ End of the EMUSIC-L Digest ******************************