[comp.music] Music-Research Digest Vol. 5, #36

daemon@bartok.Sun.COM (04/13/90)

Music-Research Digest       Thu, 12 Apr 90       Volume 5 : Issue  36 

Today's Topics:
            Compact Disks with Musical Instruments on them
                 Handelman quoting Laske quoting Bel
                              Intonation
                             Midi Driver
                     non computerized music: help
                      Richard Dawkins and music


*** Send contributions to Music-Research@uk.ac.oxford.prg
*** Send administrative requests to Music-Research-Request

*** Overseas users should reverse UK addresses and give gateway if necessary
***     e.g.   Music-Research@prg.oxford.ac.uk
***     or     Music-Research%prg.oxford.ac.uk@nsfnet-relay.ac.uk

----------------------------------------------------------------------

Date: 9 Apr 90 19:29:05 GMT
From: Greg Sandell <sandell@edu.ohio-state.cis.tut>
Subject: Compact Disks with Musical Instruments on them
To: music-research@prg
Message-ID: <6184@accuvax.nwu.edu>

Recently I purchased four of the compact disks in the McGill University
Master Samples series.  For those of you who don't know them, they
include an individual recording of every instrument of the orchestra
playing every note in its available range.  `Non-clasical' sounds
are available as well, such as Rock drums and guitar chords.

I am also thinking of buying discs from the Pro Sonus series.  From
what I know of them, they have similar `classical' sounds, although
they have recorded only every fourth note of the available scale
for each instrument.  They are obviously targeted more exclusively
to the needs of Digital Sampler keyboard users, rather than
those with research interests.  

Has anybody else used any of the ProSonus disks?  I would be interested
in hearing your evaluation of them.

I have been doing spectral analyses of entire instruments in the 
McGill series, and, having seen tremendous note-to-note differences,
am convinced that a strategy of recording only every fourth note
is a real error.  As an example, when english horn goes from F4 to
F#4 (sounding pitches) there is dramatic change in fingering from
all keys closed to all keys open (roughly).  This corresponds to
a dramatic change in spectral envelope between these two tones.
Clearly such timbral discontinuities are critical to the
essential character of the instrument.  I am not a Sampling Keyboard
user, but it strikes me that just because the current memory
capacities of these devices only allow the sampling of every fourth
note, it is extremely shortsighted to go through the trouble of
recording such tones at great expense and releasing them on CDs when
it's only a matter of time before memory is so cheap that the current
limitations of Sampling Keyboards will be a joke.

Here are some brief evaluations of some of the instruments.  As you
can see, the playing quality is not consistent; I think that this
is a major drawback in the McGill series.  I hear that the current
issue of CMJ contains a review of the McGill tones, but I haven't
seen it yet.

1. Excellent tone quality and evenness of tone productions in the
performances of:
	violin bowed vibrato
	double bass bowed
	flute non-vibrato
	English Horn
	tenor trombone
	tuba
2. Less satisfactory tone quality or evenness:
	viola non-vibrato (very scratchy)
	Bassoon (weak in mid-high registers; very high notes omitted)
	french horn (the user's manual does not describe the mike placement
		of these tones; I suspect that the mike was place right by
		the bell, which may not effectively capture the sound we
		usually hear in this instrument, since the bells do not
		face the listener.)
	Bb clarinet (very `hooty')
3. Poor tone quality, very uneven
	All trumpets (most notes not even recognizable as a trumpet)
4. E2 missing from tuba series; A#1 missing from 9' grand piano, right 
	pedal depressed (volume 9)
5. celesta recording is very noisy (volume 9)


****************************************************************
* Greg Sandell (sandell@ils.nwu.edu)                           *
* Institute for the Learning Sciences, Northwestern University *
****************************************************************

------------------------------

Date: Mon, 09 Apr 90 19:03:25 GMT
From: Bernard Bel <BEL@EARN.FRMOP11>
Subject: Handelman quoting Laske quoting Bel
To: music-research@prg

Re: Handelman quoting Laske quoting Bel
Your translation is OK, thanks; except perhaps I don't understand the "(sic)"
you appended to "opinion courante"...
"Learning by imitation": this relates to teaching methods in India.  It was
always the teaching process for children, but in the traditional educational
system when a disciple would grow older a systematic teaching was given.
If grown-ups learn by imitation they don't imbibe explicit rules.  For instance
I learned French by imitation, therefore I am tempted to say "French spelling i
different if I am requested to formulate the rules.
"Neural nets are only good for perception and memorization": I didn't write tha
although it might prove true in the end.
I wrote that there is an attraction of researchers to the neural computation
paradigm because they pay more attention
to perceptual and memorization processes in music.  I agree with you that in
doing so there is a tendency to reduce perception to "pattern recognition" or "
I agree that we can't say anything about networks doing good music until we've
heard something that claims to be network music...  Yet it sound a bit like the
joke: "Can you play piano? -- I don't
know, I never tried...".  It is
useful to think ahead of empiricists,
taking the risk of underestimating the
value of new methods (e.g. Minsky-Papert's "Perceptrons").  Again, science
learns from its own failures.
("Perceptrons" wasn't a real mistake, but it mistakenly closed a field of
research for a while.  There is much to learn from that story...)
"The systematization of creativity through knowledge engineering".  My experien
is limited to the modelling of
improvisation schemata in North Indian drumming.  My associate Jim Kippen has
shown that this process is less simplistic than assumed by musicologists and
some musicians belonging to that tradition,
although in the end it turns to be
highly systematic and very complex.
I'll send  a bibliography of our publications along with the announcement of
the release of the Bol Processor (the
software we used for that study).
LAST COMMENT: I was in India during the discussion on KA.  The first message I
found was Laske's good-bye and my quote...
Therefore I cannot sayto what extent
my prose relates to the discussion...
Bernard Bel

------------------------------

Date: 11 Apr 90 21:39:43 GMT
From: Keith Mund <keithm%ashtate%hacgate%elroy.jpl.nasa.gov%sdd.hp.com@edu.ucsd>
Subject: Intonation
To: music-research@prg
Message-ID: <878@ashton.UUCP>

I am seeking information on analysing intonation using a
computer.

Keith Mund

------------------------------

Date: Fri, 6 Apr 90 23:05 EDT
From: FNELSON@edu.oberlin.cc.ocvaxa
Subject: Midi Driver
To: music-research@com.sun.eng.bartok
Message-ID: <9004070333.AA15526@Sun.COM>

Bernard Bel posted a request for help on midi applications.  I recently
downloaded a lovely new driver from media-lab.media.mit.edu.  It is Joe
Chung's revision of a driver written originally by Lee Boynton.  This
driver uses the TimeMgr and can resolve time to 1ms.  Here is Joe's
doc file on the subject.

preFORM 3.0 MIDI Driver Source Code
) 1988 Lee Boynton, MIT Media Lab.

The file "MIDI Driver.c" is a source file for THINK C version 3.0p2.
The file "midi.rsrc" contains the current driver resource.

To MAKE a driver:
	1. Create a project with Lightspeed C.
	2. Choose "Set Project TypeI" from the "Project" menu.
	3. Choose "Device Driver". Set the Name to be ".MIDI" and the ID to be 23.
	4. Add the Lightspeed C library file "MacTraps"
	5. Add the file "MIDI Driver.c"
	6. Select "Build Device DriverI" in the "Project" menu. 
		The resulting file (that you choose contains the driver in its resource fork.




Info about driver:

This driver is a standard Macintosh driver, and should be accessed 
through the _Open, _Read, _Write, _Status and _Control traps (these
are the "low level" driver interface calls. They are also known
as PBOpen, PBRead, etc). See Inside Mac for details.

The driver must must be loaded using the resource manager before use.
You first call OpenResFile with the filename "midi.rsrc" (or in Lightspeed,
you name the driver's file the same as your current project + ".rsrc"). Then
you have to call the PBOpen trap with the name of the driver: ".MIDI".
Once you've successfully opened the driver, you must open one or both
of the serial ports (A=Modem or B=Printer). Nothing will happen until you do.
You open these through the a DriverControl call with the control code
OPEN_CODEA or OPEN_CODEB. Now you can read and write to your heart's content.

To read or write to the driver, you pass a pointer to a MIDI_Event (defined
in midi.h) which is a longword time, followed by an event type byte and then
the three MIDI bytes. For reading, the time is the clock time (in 1/100th's of
a second since the driver was opened) that the last byte of the event was
received. For writing, the time is the time that the event should be written.
If the time is in the past or 0, the event is written immediately, otherwise
it is scheduled.

The three types of events are normal, raw, and null. The remaining three bytes
have different meaning depending on whether the event is normal or raw (null
events are only used for reading, and indicate that there is no pending
data). Raw events are for reading or writing raw, unparsed, MIDI bytes. There
is only one byte per raw event, and it is contained in the third byte following

the type byte (i.e. you can think of a whole MIDI_Event as two longwords, the t
ime
is the first, and the event is the second. In this case, the raw byte will be
the lowest order byte of the second longword). More info on raw events below.
If the event is a normal event, then the next byte is always the status byte,
and any data bytes follow in the next two bytes. For example, if the event
has only one data byte (like a monophonic pressure event), then the third byte
following the type byte is just garbage.

The type byte has one additional bit, bit 5 which indicates which port, A or B,

the event originated from or is destined for. In the case of writing, if the
appropriate port is not opened, the event is directed to the open port.

The most common use for raw events are for Sysex. To write a raw event,
specify the RAW_EVENT as the type (the RAW_EVENT type is 0, so that if you 
simply blast a single byte at the driver it will blast it out the modem port).
To read a raw event, you must set the read mode of the driver (with the
control call with code READMODE_CODEA or READMODE_CODEB) to be RAW_EVENT.
If the read mode is NORMAL_EVENT, the driver will eat & bury any sysex
received. Thus to receive sysex in the general case, you must change the
read mode of the driver to RAW_EVENT as soon as you see the start of sysex
event. As soon as you see the end of sysex, you should change back to
NORMAL_EVENT. NOTE THAT YOU WILL NEVER SEE THE START OF SYSEX EVENTS AT
ALL UNLESS YOU SET THE INPUT FILTER TO ALLOW THEM!!! (read on).
[There's definitely a bug here. If the sysex stream is interrupted by
a new status byte that is not the end of sysex byte, which can happen in 
a merge situation, then the driver is hosed. The right solution is to
pass sysex bytes as raw data if the input filter allows sysex at all. -joe]


The driver has the ability to filter which events are read in NORMAL_EVENT
read mode. This filter defaults to MIDI channel messages only, but you
can set the filter easily enough. The filter is a longword with the bits
defined as follows:

  	Midi Event		Bit No.
 	Note Off		0
 	Note ON			1
 	PolyTouch		2
 	ControlType		3
 	ProgramType		4
 	Aftertouch		5	(MONO of course)
 	PitchBend		6
 	SysEx			7
    TimeCode		8
 	Songpos			9
 	SongSel			10
 	TuneType		13
 	EnsSysEx		14
 	ClockType		15
 	StartType		17
 	ContType		18
 	StopType		19
 	ActiveSense		21
 	Reset			22
 	
A high bit means pass that event, a 0 means filter it. Thus the default longwor
d
is: 0x7fL which means filter all messages from Sysex through Reset. You set
the filter through a control call with FILTER_CODEA or FILTER_CODEB.For the 
complete list of control and status codes see midi.h and the DriverControl 
and DriverStatus functions in Midi Driver.c.

The driver is also capable of running at different clock speeds, down to a
single millisecond. This can be set via TICKSIZE_CODE with the length of a
tick in milliseconds as a longword.

The driver has a few unsupported features such as 25fps MIDI time 
code sync, and pitch bend sampling. If you don't use them they won't
bother you.

There is also an example file called Driver Example.c which shows how to
perform the basic driver functions from Lightspeed C. Good luck.

Questions, bugs, etc to :

Joe Chung
MIT Media Lab
20 Ames St
Cambridge, 02139

joe@media-lab.media.mit.edu


The file is mac-midi.sit.hqx on media-lab.media.mit.edu.

==============================

I have incorporated this driver into an application and a desk accessory
with no problems.  Joe is using it in a lisp environment and has set the
clock resolution to 10ms.  I have used 2ms without problems.  Boynton's
earlier driver didn't work well at 1ms because of irregularities in the
TimeMgr.  I haven't tried 1ms yet.

Bernard Bel...I tried to reach you directly but couldn't find a path.
Send me mail as fnelson@oberlin.edu or fnelson@ocvaxa and I will tell
you more about what I am doing and, if you like send you some examples.

Gary Nelson
Oberlin College

------------------------------

Date: 9 Apr 90 11:42:14 GMT
From: APPEL Ron <appel%cui%ugun2b%chx400%cernvax%mcsun@net.uu.uunet>
Subject: non computerized music: help
To: music-research@prg
Message-ID: <1770@cui.unige.ch>

What are the news groups dealing with (non computerized) music and opera.

####################################################################
Ron D. Appel                                appel@medsun.unige.ch
Unite d'Imagerie Numerique                  appel@cgehcu61.bitnet
Centre d'Informatique Hospitaliere
Hopital Cantonal Universitaire de Geneve                    
24, rue Micheli-du-Crest                                 ###
CH-1211 Geneve 4                                     ########
Switzerland                                      ###############
tel.: 41-22-229254 or 229257                  ###################
fax : 41-22-476486                      ##########################
####################################################################

------------------------------

Date: Mon, 09 Apr 90 07:34:32 PDT
From: Stephen Smoliar <smoliar@edu.isi.vaxa>
Subject: Richard Dawkins and music
To: Music-Research@prg
Cc: alife-request@edu.indiana.cs.iuvax
Message-ID: <9004091434.AA22380@vaxa.isi.edu>

The applicability of systems such as those described by Richard Dawkins in THE
BLIND WATCHMAKER to music have been discussed to a modest extent my members of
the artificial life community.  This community has its own electronic
newsletter and some of this material is probably in the newsletter archives.
Further information may be obtained by sending mail to the maintainers of the
newsletter at Internet address alife-request@iuvax.cs.indiana.edu.  (Dawkins
is a subscriber, by the way.)  Since there are only a few articles on the
subject and since the newsletter is not even half a year old yet, I am
cross-posting this to the list maintainers in the hope that they might
put these articles in a package and submit it to
Music-Research@prg.Oxford.AC.UK.

------------------------------

End of Music-Research Digest

lseltzer@phoenix.Princeton.EDU (Linda Ann Seltzer) (04/15/90)

>I am seeking information on analysing intonation using a
>computer.
>
>Keith Mund

You need a pitch detector that has enough of a percentage accuracy to
be meaningful.  That means, you have to test the accuracy of the pitch
detector or your results will be meaningless.  If you want to measure
pitch variations of less than a semitone, then you need to demonstrate
that your pitch detector is that accurate.  Be prepared for outliers
and subharmonics.