Csound Csound-dev Csound-tekno Search About

Re: sequencer

Date1999-07-27 13:28
FromPaul Winkler
SubjectRe: sequencer
Hi Michael,

Just trying to follow the discussion here:

Michael Gogins wrote:
> 
> The p3 issue is a real one but it is not insuperable. The solution is for
> realtime score events to have p3 set negative (infinite duration)

This would be done by the note-generating application, not by csound?

> until a
> note off event, at which time the topmost realtime event on the stack
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Which event is this? I could interpret this as "most recently started
realtime event". But that's not necessarily the one the noteoff message
is intended for... have I misunderstood?

> is
> popped off and its p3 set to the total elapsed time,
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I don't understand what this accomplishes. At the time this happens, we
have reached the "releasing" stage of this note; why does its duration
now need to be set to the time that has already passed?

 at which point the
> instrument can trap the note off and either turn itself off, let itself be
> turned off, or extend p3 to perform a controlled decay. This would indeed
> enable the writing of the same instrument definitions for both realtime and
> non-realtime performance, and it would remove the necessity for the MIDI
> note on and note off opcodes in Csound (although they obviously should not
> be removed).

-- 

----------------    paul winkler    ------------------
slinkP arts:  music, sound, illustration, design, etc.

zarmzarm@hotmail.com   --or-- slinkp AT ulster DOT net
http://www.ulster.net/~abigoo/
======================================================


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa02139;
          27 Jul 99 13:48 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 1196em-0003P1-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 13:48:32 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (NAA07047); Tue, 27 Jul 1999 13:44:20 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 13:44:09 +0100
Received: from root@smtp-out-006.wanadoo.fr [193.252.19.98] by hermes via ESMTP (NAA16151); Tue, 27 Jul 1999 13:44:08 +0100 (BST)
Received: from antholoma.wanadoo.fr [193.252.19.153] by wanadoo.fr
          for 
          Paris Tue, 27 Jul 1999 14:44:06 +0200 (MET DST)
Received: from exbang.com (193.250.226.153) by antholoma.wanadoo.fr; 27 Jul 1999 14:44:18 +0200
Message-ID: <379DA8AB.9088CDD@exbang.com>
Date: Tue, 27 Jul 1999 14:40:13 +0200
From: Michel Jullian 
Reply-To: mj@exbang.com
X-Mailer: Mozilla 4.04 (Macintosh; I; PPC)
MIME-Version: 1.0
To: Michael Gogins 
CC: csound list 
Subject: Re: sequencer
References: <002e01bed823$f860c8e0$79d496c0@Realizer.ngt.sungard.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Whether it is possible or not will depend on how the host handles the MIDI
coming from the plugin (dunno about Cubase, but the sequencer we are
developing will be able to record it into another track).

I am yet to find any major impossibility or drawback with VST2, which emerges
as a universal musical plugin interface IMO.

Michael Gogins wrote:
> 
> Thanks for the clarification. People, this VST 2 thing is a wakeup call. For
> the first time, a commercial composing environment has a representation of
> notes that is (just barely) adequate to music, if not as convenient as one
> would like for programmers. I hope that not everyone on this list is blind
> to the usefulness of having something like Csound sitting, ready to sound,
> inside something like Cubase.
> 
> The VST 2 standard has some other notable features:
> 
> Off-line processing of soundfiles
> Ability to send MIDI back to the host
> 
> I don't know whether the MIDI sent back to the host can be captured into a
> new sequencer track, though. Anybody know the answer to that one? If that is
> possible, then it is possible to write plugins for the purpose of
> algorithmic composition as well as for synthesis.
> 
> -----Original Message-----
> From: Michel Jullian 
> To: Michael Gogins 
> Date: Tuesday, July 27, 1999 2:32 AM
> Subject: Re: sequencer
> 
> >Michael, as it happens there is a duration field in vst 2's midi msg
> structure too.
> >
> >Michael Gogins wrote:
> >>
> >> In the first place, it is simply rhetoric to say that MIDI doesn't have
> >> semantics. You may not like its semantics, but they are there.
> >>
> >> My motivation for this suggestion is to make it easier to inter-operate
> with
> >> existing protocols such as MIDI. I would not be the first developer to
> >> extend or change MIDI; its commercial developers have been doing this
> since
> >> the beginning. Just recently, for example, Cubase supplemented MIDI by
> >> including a cent field in the MIDI channel message structure in their new
> >> VST 2 plugin protocol. Adding a duration field would be a similar move.
> >...

-- 
Greetings,
Michel
.........................................................................
  Michel Jullian   Directeur General             email mj@exbang.com
  Exbang Industries S.A.
  Mas Chauvain   route de Villeneuve             tel +33(0) 499 529 878
  Maurin     34970 Lattes     France             fax +33(0) 499 529 879
.........................................................................



Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa02247;
          27 Jul 99 14:44 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 1196ZQ-0004gr-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 13:43:00 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (OAA03873); Tue, 27 Jul 1999 14:40:08 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 14:39:57 +0100
Received: from mail3.lig.bellsouth.net [205.152.0.51] by hermes via ESMTP (OAA15929); Tue, 27 Jul 1999 14:39:56 +0100 (BST)
Received: from bellsouth.net (host-209-215-23-124.gnv.bellsouth.net [209.215.23.124])
	by mail3.lig.bellsouth.net (3.3.0/8.9.3) with ESMTP id JAA10041
	for ; Tue, 27 Jul 1999 09:39:55 -0400 (EDT)
Message-ID: <379DE153.3EBC2263@bellsouth.net>
Date: Tue, 27 Jul 1999 09:41:55 -0700
From: patrick pagano 
X-Mailer: Mozilla 4.5 [en] (Win98; I)
X-Accept-Language: en
MIME-Version: 1.0
To: "csound@maths.ex.ac.uk" 
Subject: 3.56 download
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

which is the proper .zip for 3.56 for windows 9x ??
I am unsure of which to download
Thanks Pat



Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa02340;
          27 Jul 99 15:16 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 11981o-0003S5-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 15:16:24 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (PAA09184); Tue, 27 Jul 1999 15:12:16 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 15:12:05 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (PAA11644); Tue, 27 Jul 1999 15:12:03 +0100 (BST)
Received: from someip.ppp.op.net (d-bm2-11.ppp.op.net [209.152.194.49]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id KAA18866 for ; Tue, 27 Jul 1999 10:11:52 -0400 (EDT)
Message-Id: <199907271411.KAA18866@renoir.op.net>
To: csound@maths.ex.ac.uk
Subject: Re: sequencer 
In-reply-to: Your message of "Tue, 27 Jul 1999 07:28:54 EDT."
             <001d01bed823$365752a0$79d496c0@Realizer.ngt.sungard.com> 
Date: Tue, 27 Jul 1999 10:18:23 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

In message <001d01bed823$365752a0$79d496c0@Realizer.ngt.sungard.com>you write:
>The p3 issue is a real one but it is not insuperable. The solution is for
>realtime score events to have p3 set negative (infinite duration) until a

zero is more desirable, since it allows duration to be represented by
an unsigned value, and thus have a larger range.

>note off event, at which time the topmost realtime event on the stack is
                                   ^^^^^^^^^^^^^^^^^^^^^^
repeating a post i sent a week or so ago, i believe this wrong. its
wrong by comparison with other synths. using the topmost event implies
LIFO semantics - most synths do FIFO. 

>popped off and its p3 set to the total elapsed time, at which point the
>instrument can trap the note off and either turn itself off, let itself be
>turned off, or extend p3 to perform a controlled decay. This would indeed
>enable the writing of the same instrument definitions for both realtime and
>non-realtime performance, 

how ? p3 is typically used to compute envelopes at i-time. it wouldn't
be available at i-time in the real-time case.

--p

			   


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa02417;
          27 Jul 99 15:42 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 1197TS-0004jq-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 14:40:54 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (PAA14110); Tue, 27 Jul 1999 15:37:48 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 15:37:37 +0100
Received: from grynet.passagen.se [195.163.107.36] by hermes via ESMTP (PAA08829); Tue, 27 Jul 1999 15:37:36 +0100 (BST)
Received: from dumburk (z10-80.stockholm.sbbs2.net [212.112.10.80])
	by grynet.passagen.se (8.8.6/8.8.6) with SMTP id QAA15748;
	Tue, 27 Jul 1999 16:37:23 +0200 (MDT)
Message-ID: <379DC547.DA5@hem.passagen.se>
Date: Tue, 27 Jul 1999 16:42:16 +0200
From: rasmus ekman 
X-Mailer: Mozilla 3.04 (Win95; I)
MIME-Version: 1.0
To: patrick pagano 
CC: Csound list 
Subject: Re: 3.56 download
References: <379DE153.3EBC2263@bellsouth.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

patrick pagano wrote:
> 
> which is the proper .zip for 3.56 for windows 9x ??

See http://hem.passagen.se/rasmuse/PCinstal.htm
Recently updated.

Good luck,

	re


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa02591;
          27 Jul 99 16:29 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 1199Ad-0003UF-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 16:29:35 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (QAA13333); Tue, 27 Jul 1999 16:24:34 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 16:24:23 +0100
Received: from usamail.texasonline.net [208.207.16.31] by hermes via ESMTP (QAA06295); Tue, 27 Jul 1999 16:24:22 +0100 (BST)
Received: from nmol.com (unverified [208.221.109.22]) by usamail.texasonline.net
 (Vircom SMTPRS 4.0.179) with ESMTP id ;
 Tue, 27 Jul 1999 10:28:01 -0500
Message-ID: <379DCE39.A0308EDD@nmol.com>
Date: Tue, 27 Jul 1999 09:20:25 -0600
From: Mike Berry 
X-Mailer: Mozilla 4.5 (Macintosh; U; PPC)
X-Accept-Language: en
MIME-Version: 1.0
To: Michael Gogins 
CC: csound csound 
Subject: Re: sequencer
References: <001d01bed7c7$47c4dbe0$79d496c0@Realizer.ngt.sungard.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

	My reasoning is something like this:

	GrainWave deals with a MIDI note-on as an independent trigger event. 
It is independent because there is no relation implied by GrainWave
between different MIDI note numbers.  64/Channel 1 might be 1 half-step
higher than 63/Channel 1 or it might control a completely different
instrument.  The only purpose to the note numbers is to differentially
trigger different parts of an instrument.  The instrument designer
builds a map which associates particular note-ons with the triggering of
particular notes.  This means that GrainWave has 2048 (128 * 16)
different trigger messages, which can handle an extremely complex
instrument (remember, the note number doesn't have anything to do with,
for instance, frequency, so you don't have to waste 128 triggers to
provide a complete scale).
	Once a note has been triggered, GrainWave makes available the
associated note information (number, velocity) to the instrument, if it
wants to use it.  This is where the limitations of MIDI come in.  A
GrainWave designer may want 6 floating point parameters to be passed
along with the note-on, but this can't happen inside MIDI.  Thus the new
protocol.  The MIDI event is passed to the normal MIDI handler, where it
is treated like a standard MIDI event.  The rest of the data is passed
along and made available once the event happens.  One major reason is
due to the UI.  GrainWave already has an MIDI assignment UI, which would
still need to be in place for those using standard MIDI.  It would be
far more complex to add a second mapping UI for a second complete
triggering system.  Instead, I can use the same UI, but extend the functionality.
	I think that any protocol should separate the event identifier (note
number) from any associated parameters (like frequency).  It makes sense
to have a limited number of identifiers, so an integer value works well.
 Also, the receiver can have a single value which it recognizes as a
event it responds to, instead of a range.  However, an integer parameter
is a real pain for continuous values like frequency, since you have to
make a map at the receiver, not the controller where the map should be.
Michael Gogins wrote:
> 
> This is interesting, but I don't understand the motivation for using
> additional fields for note number and velocity, instead of simply increasing
> the precision of the existing MIDI fields as in SKINI.
> 
> -----Original Message-----
> From: Mike Berry 
> To: csound csound 
> Date: Monday, July 26, 1999 11:21 AM
> Subject: Re: sequencer
> 
> > The solution that I am working on implementing in my own software uses
> >MIDI as a base identifier with further long and floating point tags in
> >the message.  So a note on might look like:
> >
> >long NumberOfMidiBytes  = 3
> > unsigned char  = 0x90  (Note On)
> > unsigned char  = 0x20  (Note number)
> > unsigned char  = 0x80  (Velocity)
> > unsigned char pad
> >long Number OfLongParameters = 2
> > long LongParam1
> > long LongParam2
> >long Number OfFloatParameters = 3
> > float FloatParam1
> > float FloatParam2
> > float FloatParam3
> >
> > So, for instance, LongParam1 might be the duration of the note.
> >FloatParam1 might be the pitch of the note in Hz.  And these could be
> >defined by the receiver however they wished, and with as many p fields
> >as necessary.  I pass these messages using UDP.  When the UDP is
> >received, the receiver determines if only MIDI is supported or if the
> >extended format is supported, and parses out the message accordingly.
> > Obviously the gap is in hardware - I don't have a slider box which
> >supports anything besides MIDI.  But when the communication is between
> >two pieces of software, this is easy to use.
> > I preserve the MIDI data also because it is a useful format for
> >defining triggering information, particularly if your app already has a
> >MIDI triggering system built in (as GrainWave does).  So these messages
> >can enter into that triggering system but still carry further data.
> >--
> >Mike Berry
> >mikeb@nmol.com
> >http://www.nmol.com/users/mikeb


-- 
Mike Berry
mikeb@nmol.com
http://www.nmol.com/users/mikeb


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03065;
          27 Jul 99 19:25 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119AxP-0004qY-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 18:24:03 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (TAA02897); Tue, 27 Jul 1999 19:22:59 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 19:22:49 +0100
Received: from amsterdam.interport.net [199.184.165.19] by hermes via ESMTP (TAA07030); Tue, 27 Jul 1999 19:22:48 +0100 (BST)
Received: from [216.164.221.27] (216-164-221-27.s27.tnt4.nyw.ny.dialup.rcn.com [216.164.221.27])
	by amsterdam.interport.net (8.8.5/8.8.5) with ESMTP id OAA19808
	for ; Tue, 27 Jul 1999 14:22:46 -0400 (EDT)
X-Sender: jose@pop.interport.net
Message-Id: 
In-Reply-To: <002201bed7cf$5a926be0$6299170c@default>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Tue, 27 Jul 1999 14:30:20 -0400
To: csound@maths.ex.ac.uk
From: jose halac 
Subject: latest mac version
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

could anyone tell me which is the latest matt ingalls version of CSound for
Macs?
and where to get it from


thanks

jh




Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03400;
          27 Jul 99 21:47 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119E7y-0003am-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 21:47:10 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (VAA03986); Tue, 27 Jul 1999 21:44:32 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 21:44:21 +0100
Received: from ella.mills.edu [144.91.3.20] by hermes via SMTP (VAA12923); Tue, 27 Jul 1999 21:44:20 +0100 (BST)
Received: (qmail 49131 invoked by uid 1964); 27 Jul 1999 13:44:03 -0700
Date: Tue, 27 Jul 1999 13:44:03 -0700 (PDT)
From: "Matt J. Ingalls" 
To: jose halac 
cc: csound@maths.ex.ac.uk
Subject: csound macppc 3.56
In-Reply-To: 
Message-ID: 
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk


new version up today - includes new sndinfo opcodes - i will hold off on
the sources until merge with ffitch sources.

please- comments on sndinfo opcodes:
	name change?
	should filelen have option returns instead of secs (frames, etc)?
	should filepeak calculate peak if not present in header?
	(note filepeak only works on AIFF_C float files until i implement
         the PEAK chunk)
=======================================
july27.99
	Csound for Power Macintosh
=======================================
This Version: 
	fFitch code base	3.56
	Perf "engine"		3.56
	Csound "front end"  1.3
	
Available From:
	www.concentric.net/~Mingalls/software/csound
	ftp://mills.edu/ccm/csound.ppc/CsoundPPC3.56.sit.hqx
=======================================
changes from 3.55.1/FrontEnd 1.3
=======================================
Perf:
- merged new sources
- added new opcodes: filelen, filesr, filenchnls, filepeak

Note: this version requires an additional file
  "csound.txt" to be inside your "perf" directory
  or one of the sound/analysis directories.

Front End:
- none

====================================
manual supplement
====================================
New Opcodes:
ilen	filelen	ifilcod		; returns length of "ifilcod" in seconds
isr	filesr	ifilcod		; returns the sample rate of "ifilcod"
inchnls	filenchnls ifilcod	; returns the number of chnls of "ifilcod"
ipeak	filepeak ifilcod, [ichnl]  ; returns peak absolute value of
				   ; "ifilcod"
			; if ichnl=0, returns peak out of all channels
			; if ichnl>0, returns the peak of ichnl
			; if ichnl is not specified, returns peak of
			;	the entire file.
			; currently only supports AIFF_C float files

=======================================
Please email bugs to csound-dev@mills.edu




On Tue, 27 Jul 1999, jose halac wrote:

> could anyone tell me which is the latest matt ingalls version of CSound for
> Macs?
> and where to get it from
> 
> 
> thanks
> 
> jh
> 
> 
> 



Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03574;
          27 Jul 99 23:07 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119EQW-0004uW-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 22:06:20 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (XAA01315); Tue, 27 Jul 1999 23:05:34 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 23:05:23 +0100
Received: from out2.ibm.net [165.87.194.229] by hermes via ESMTP (XAA03847); Tue, 27 Jul 1999 23:05:21 +0100 (BST)
Received: from ibm.net (slip-32-100-209-95.dc.us.ibm.net [32.100.209.95]) by out2.ibm.net (8.8.5/8.6.9) with ESMTP id WAA72606; Tue, 27 Jul 1999 22:05:17 GMT
Message-ID: <379E2E59.7CE42DF4@ibm.net>
Date: Tue, 27 Jul 1999 18:10:33 -0400
From: "Job M. van Zuijlen" 
Reply-To: zuijlen@ibm.net
Organization: electona
X-Mailer: Mozilla 4.5 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Paul Barton-Davis 
CC: Csound List 
Subject: Re: sequencer
References: <199907270242.WAA13590@renoir.op.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Thank you, this is helpful.  But to me it seems then no to be so much a
problem with MIDI, as with the fact that in real-time applications you
don't know in advance what the duration will be.  Any streaming protocol
would be in trouble or am I missing something?

Job van Zuijlen  

Paul Barton-Davis wrote:
> 
> 
> so, yes, a Csound score has some semantics, because its very
> definition includes a specification of voice duration that is absent
> is a MIDI data stream.
> 
> --p


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03628;
          27 Jul 99 23:36 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Fpv-0003cT-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 23:36:39 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (XAA18506); Tue, 27 Jul 1999 23:34:23 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 23:34:13 +0100
Received: from smtp6.mindspring.com [207.69.200.74] by hermes via ESMTP (XAA16710); Tue, 27 Jul 1999 23:34:12 +0100 (BST)
Received: from Realizer (user-2ive35e.dialup.mindspring.com [165.247.12.174])
	by smtp6.mindspring.com (8.8.5/8.8.5) with SMTP id SAA05754;
	Tue, 27 Jul 1999 18:34:11 -0400 (EDT)
Message-ID: <001001bed880$7539fa60$79d496c0@Realizer.ngt.sungard.com>
From: Michael Gogins 
To: Paul Winkler 
Cc: Csound List 
Subject: Re: sequencer
Date: Tue, 27 Jul 1999 18:36:23 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Csound would have a new command option, call it -+S for "Midi Score".

With this flag, upon receiving a MIDI channel message of NOTE_ON or
NOTE_OFF, Csound would create a regular score line event, an "i" opcode with
p3 set negative. Csound would then push the running instrument instance onto
one pushdown stack in a grid eventStacks[16][127] dimensioned by MIDI
channel and key number. Upon receiving a NOTE_OFF channel message, Csound
would look up the corresponding stack in the grid, pop the running
instrument instance off of it, and set p3 equal to the elapsed time for the
instance. All of the instruments in these stacks are also in the playlist.

At that time, the running instrument instance would be just about to time
out. It could trap the timeout, allow itself to be turned off, turn itself
off, or, more likely, extend p3 in order to perform a graceful decay.

This is similar to what happens in Quasimodo with the new envelopes, but it
handles only the "note off" breakpoint. But it should be adequate.
-----Original Message-----
From: Paul Winkler 
To: Michael Gogins 
Cc: Csound List 
Date: Tuesday, July 27, 1999 8:22 AM
Subject: Re: sequencer


>Hi Michael,
>
>Just trying to follow the discussion here:
>
>Michael Gogins wrote:
>>
>> The p3 issue is a real one but it is not insuperable. The solution is for
>> realtime score events to have p3 set negative (infinite duration)
>
>This would be done by the note-generating application, not by csound?
>
>> until a
>> note off event, at which time the topmost realtime event on the stack
>                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Which event is this? I could interpret this as "most recently started
>realtime event". But that's not necessarily the one the noteoff message
>is intended for... have I misunderstood?
>
>> is
>> popped off and its p3 set to the total elapsed time,
>                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>I don't understand what this accomplishes. At the time this happens, we
>have reached the "releasing" stage of this note; why does its duration
>now need to be set to the time that has already passed?
>
> at which point the
>> instrument can trap the note off and either turn itself off, let itself
be
>> turned off, or extend p3 to perform a controlled decay. This would indeed
>> enable the writing of the same instrument definitions for both realtime
and
>> non-realtime performance, and it would remove the necessity for the MIDI
>> note on and note off opcodes in Csound (although they obviously should
not
>> be removed).
>
>--
>
>----------------    paul winkler    ------------------
>slinkP arts:  music, sound, illustration, design, etc.
>
>zarmzarm@hotmail.com   --or-- slinkp AT ulster DOT net
>http://www.ulster.net/~abigoo/
>======================================================



Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03636;
          27 Jul 99 23:39 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Ev1-0004v0-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 22:37:51 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (XAA17097); Tue, 27 Jul 1999 23:37:01 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 27 Jul 1999 23:36:51 +0100
Received: from smtp6.mindspring.com [207.69.200.74] by hermes via ESMTP (XAA05318); Tue, 27 Jul 1999 23:36:50 +0100 (BST)
Received: from Realizer (user-2ive35e.dialup.mindspring.com [165.247.12.174])
	by smtp6.mindspring.com (8.8.5/8.8.5) with SMTP id SAA02387;
	Tue, 27 Jul 1999 18:36:53 -0400 (EDT)
Message-ID: <001f01bed880$d5a49860$79d496c0@Realizer.ngt.sungard.com>
From: Michael Gogins 
To: csound@maths.ex.ac.uk, Paul Barton-Davis 
MMDF-Warning:  Parse error in original version of preceding line at UK.AC.Bath.maths.omphalos
Subject: Re: sequencer 
Date: Tue, 27 Jul 1999 18:39:05 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

About FIFO versus LIFO, I believe you are correct. I did several of these
things FIFO but I never did use them much.

-----Original Message-----
From: Paul Barton-Davis 
To: csound@maths.ex.ac.uk 
Date: Tuesday, July 27, 1999 10:12 AM
Subject: Re: sequencer


>In message <001d01bed823$365752a0$79d496c0@Realizer.ngt.sungard.com>you
write:
>>The p3 issue is a real one but it is not insuperable. The solution is for
>>realtime score events to have p3 set negative (infinite duration) until a
>
>zero is more desirable, since it allows duration to be represented by
>an unsigned value, and thus have a larger range.
>
>>note off event, at which time the topmost realtime event on the stack is
>                                   ^^^^^^^^^^^^^^^^^^^^^^
>repeating a post i sent a week or so ago, i believe this wrong. its
>wrong by comparison with other synths. using the topmost event implies
>LIFO semantics - most synths do FIFO.
>
>>popped off and its p3 set to the total elapsed time, at which point the
>>instrument can trap the note off and either turn itself off, let itself be
>>turned off, or extend p3 to perform a controlled decay. This would indeed
>>enable the writing of the same instrument definitions for both realtime
and
>>non-realtime performance,
>
>how ? p3 is typically used to compute envelopes at i-time. it wouldn't
>be available at i-time in the real-time case.
>
>--p
>
>



Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03682;
          28 Jul 99 0:05 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119GHS-0003ds-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 00:05:06 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (AAA02489); Wed, 28 Jul 1999 00:03:05 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 00:02:54 +0100
Received: from jaguars-int.cableinet.net [193.38.113.9] by hermes via SMTP (AAA00741); Wed, 28 Jul 1999 00:02:53 +0100 (BST)
Received: (qmail 31514 invoked from network); 27 Jul 1999 21:45:11 -0000
Received: from unknown (HELO cableinet.co.uk) (194.117.146.177)
  by jaguars with SMTP; 27 Jul 1999 21:45:11 -0000
Message-ID: <379E3C5E.3751F522@cableinet.co.uk>
Date: Wed, 28 Jul 1999 00:10:22 +0100
From: Richard Dobson 
Organization: Composers Desktop Project
X-Mailer: Mozilla 4.51 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
To: csound@maths.ex.ac.uk
Subject: Re: sequencer
References: <199907271411.KAA18866@renoir.op.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

A negative p3 does not only make the note hold indefinitely, it makes it
monophonic - it is the primary mechanism for creating legato
instruments. A zero value also already has a special meaning (see the
manual). Pfields are floating-point, so cannot be 'unsigned' in the way
an integer can.

It is also possible to run simultaneous and independent notes on the
same instrument, something that is only possible under MIDI by using the
sustain pedal, with no control thereafter. More to the point, thanks to
the duration parameter the user has independent control of the life of
each of these notes, something, again, which MIDI does not support. The
classic example of this is additive synthesis using multiple instances
of a single sine-wave instrument. 

The negative p3 instantiates a monophonic voice able to support
portamento and amplitude ramping, essential for most legato styles. This
is probably the area in which Csound and MIDI diverge the most. A
'Cquencer' which facilitated the programming of simultaneous independent
legato streams would be formidable indeed. 

Portamento, in particular, requires knowledge of the target note. There
is a mechanism in Csound (the 'next-pfield' instruction) which supports
this; it could conceivably have been added to the MIDI spec as another
Channel message had it been deemed important enough, but as MIDI was not
developed to support ~composition~, but merely to enable keyboards to
control each other, it was left out (assuming anyone thought about it at
all!).

I see MIDI as essentially a sort of simple telemetry for keyboard
controls, using wires. It has a grammar, perhaps even syntax, but not
semantics. Choir and string sounds(etc) invariably sound very false
under MIDI, however good the sounds may be in themselves, as there is no
way to program the independent polyphonic voice-leading which is
idiomatic for them. Pitchbend needs to be associated with notes, not
just with Channels. 

This is one of the many problems with MIDI  - it's grammar is not voice
based, but controller-based. I want to be able to play four voices, each
starting at middle C, and each performing a portamento to a different
pitch. MIDI thinks they are still somehow middle C, but I think they are
four voices which have changed pitch smoothly. The grammar for Csound is
the opposite, even if most people end up writing fixed-pitch notes, most
of the time.  

It is all very well adding little tweaks to MIDI here and there,  but
this fundamental limitation of MIDI is set to remain, and nothing short
of reinvention (ZIPI?) will obviate it. You are given MONO mode, and
different Channels, and a few instruments have been made which can be
configured as sixteen monophonic voices, but without portamento
messages, and sub-idents for multiple voices on one 'note', the scope
remains very limited.

My though for a Csound sequencer then is something which (somehow) not
only supports the arbitrary pfield system, but also full polyphonic
legato per instrument. With careful design, even this could be handled
in real-time, though almost certainly not via MIDI.
 
Richard Dobson
 
Paul Barton-Davis wrote:
> 
> In message <001d01bed823$365752a0$79d496c0@Realizer.ngt.sungard.com>you write:
> >The p3 issue is a real one but it is not insuperable. The solution is for
> >realtime score events to have p3 set negative (infinite duration) until a
> 
> zero is more desirable, since it allows duration to be represented by
> an unsigned value, and thus have a larger range.
> 

-- 
Test your DAW with my Soundcard Attrition Page!
http://wkweb5.cableinet.co.uk/rwd (LU: 6th July 1999)
CDP: http://www.bath.ac.uk/~masjpf/CDP/CDP.htm (LU: 14th June 1999)


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03741;
          28 Jul 99 0:31 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Fjl-0004xc-00
	for jpff@maths.bath.ac.uk; Tue, 27 Jul 1999 23:30:17 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (AAA13327); Wed, 28 Jul 1999 00:29:24 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 00:29:17 +0100
Received: from ccrma.Stanford.EDU [36.49.0.84] by hermes via ESMTP (AAA01381); Wed, 28 Jul 1999 00:29:16 +0100 (BST)
Received: from ccrma.stanford.edu ([207.97.74.47])
	by ccrma.stanford.edu (8.8.8/8.8.8) with ESMTP id QAA16899;
	Tue, 27 Jul 1999 16:29:08 -0700 (PDT)
Message-ID: <379E40BD.5C388E0C@ccrma.stanford.edu>
Date: Tue, 27 Jul 1999 19:29:01 -0400
From: Tobias Kunze 
X-Mailer: Mozilla 4.61C-SGI [en] (X11; U; IRIX 6.5 IP22)
X-Accept-Language: en
MIME-Version: 1.0
To: Michael Gogins 
CC: Paul Winkler , Csound List 
Subject: Re: sequencer
References: <001001bed880$7539fa60$79d496c0@Realizer.ngt.sungard.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk


> About FIFO versus LIFO, I believe you are correct. I did several of these
> things FIFO but I never did use them much.

Actually, none of them is correct. Take this Josquin example,
for instance (imagine treble clef):



    ---------------------------------------------+----------
	  +==============+                       |
    ------|----|----|----|----------------+==+---+----------
	  *    |    |    |    |           +==+   |
    -----------*----|----|----|-----------|--|---+----|-----
	  o.        *    |    |           |  |   |    |
    ------|--------------*----|-----------|--|---+--o-|-----
	  |                   *.      *   |  |   |  | |
    ------|---------------------------|---*------+--|-o-----
	  |                           |      *      |
				      |             |

		   (A)               (B)


the a4 at (A) needs to be turned off in a stack-like (LIFO) manner, 
whereas the f4 at (B) requires a FIFO interpretation of incoming
note-offs.

This dilemma cannot be solved without looking at other performance
parameters, such as attack velocities, release velocities, average
overlap of note-ons and note-offs in a run to determine the degree
of legato, etc.  Very messy.

Of course, since most controllers don't allow you to play a new 
attack before the note is released (like grand pianos do), this 
is only an issue, if two keyboards are used on the same channel.

-Tobias


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03923;
          28 Jul 99 2:08 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119HFn-0004zC-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 01:07:27 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (CAA14758); Wed, 28 Jul 1999 02:06:44 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 02:06:34 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (CAA10976); Wed, 28 Jul 1999 02:06:33 +0100 (BST)
Received: from someip.ppp.op.net (d-bm3-1a.ppp.op.net [209.152.194.90]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id VAA19754; Tue, 27 Jul 1999 21:06:24 -0400 (EDT)
Message-Id: <199907280106.VAA19754@renoir.op.net>
To: Tobias Kunze 
Cc: Csound List 
Subject: Re: sequencer 
In-reply-to: Your message of "Tue, 27 Jul 1999 19:29:01 EDT."
             <379E40BD.5C388E0C@ccrma.stanford.edu> 
Date: Tue, 27 Jul 1999 21:13:02 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

In message <379E40BD.5C388E0C@ccrma.stanford.edu>you write:
>
>> About FIFO versus LIFO, I believe you are correct. I did several of these
>> things FIFO but I never did use them much.
>
>Actually, none of them is correct. Take this Josquin example,
>for instance (imagine treble clef):
     
     [ nice ascii art ]

>the a4 at (A) needs to be turned off in a stack-like (LIFO) manner, 
>whereas the f4 at (B) requires a FIFO interpretation of incoming
>note-offs.

i take it that this piece was not intended to be playable on a single
keyboard ? because ....

>Of course, since most controllers don't allow you to play a new 
>attack before the note is released (like grand pianos do), 

not strictly true. you can't play a new attack on a piano without
changing the sustain of the previous note generated by the same
key. even though you may not fully release the key, semantically
you've done something close to a noteOff before the next noteOn. 

in this specific example, its hard to imagine how you could get a
piano to generate the intended acoustic effect. or perhaps i am just
forgetting something about pianos :)

--p



Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03937;
          28 Jul 99 2:13 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119IHY-0003gB-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 02:13:20 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (CAA10477); Wed, 28 Jul 1999 02:11:19 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 02:11:08 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (CAA05332); Wed, 28 Jul 1999 02:11:07 +0100 (BST)
Received: from someip.ppp.op.net (d-bm3-1a.ppp.op.net [209.152.194.90]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id VAA20051 for ; Tue, 27 Jul 1999 21:11:05 -0400 (EDT)
Message-Id: <199907280111.VAA20051@renoir.op.net>
To: csound@maths.ex.ac.uk
Subject: Re: sequencer 
In-reply-to: Your message of "Wed, 28 Jul 1999 00:10:22 BST."
             <379E3C5E.3751F522@cableinet.co.uk> 
Date: Tue, 27 Jul 1999 21:17:43 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

>manual). Pfields are floating-point, so cannot be 'unsigned' in the way
>an integer can.

ohmigod. what was i thinking ? 

>Channel message had it been deemed important enough, but as MIDI was not
>developed to support ~composition~, but merely to enable keyboards to
>control each other, it was left out (assuming anyone thought about it at
>all!).

and here is the crux of the matter. what we have here are two control
methods that both affect the same target (a Csound instrument/voice),
but have totally different goals. MIDI as you point out enables one
instrument to control another; Csound scores allow compositional
control over things that cannot be played on any particular (or even
any possible) physical instrument.

this difference is very significant, and it makes it clear that one
should probably consider them as parallel control techniques, not
substitutes for each other. 

>My though for a Csound sequencer then is something which (somehow) not
>only supports the arbitrary pfield system, but also full polyphonic
>legato per instrument. With careful design, even this could be handled
>in real-time, though almost certainly not via MIDI.

i don't see how any real-time event stream can even supply note
duration ...

--p


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03961;
          28 Jul 99 2:18 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119HP3-0004zO-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 01:17:01 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (CAA12152); Wed, 28 Jul 1999 02:16:22 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 02:16:12 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (CAA06651); Wed, 28 Jul 1999 02:16:11 +0100 (BST)
Received: from someip.ppp.op.net (d-bm3-1a.ppp.op.net [209.152.194.90]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id VAA20414; Tue, 27 Jul 1999 21:16:08 -0400 (EDT)
Message-Id: <199907280116.VAA20414@renoir.op.net>
To: zuijlen@ibm.net
cc: Csound List 
Subject: Re: sequencer 
In-reply-to: Your message of "Tue, 27 Jul 1999 18:10:33 EDT."
             <379E2E59.7CE42DF4@ibm.net> 
Date: Tue, 27 Jul 1999 21:22:46 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

>Thank you, this is helpful.  But to me it seems then no to be so much a
>problem with MIDI, as with the fact that in real-time applications you
>don't know in advance what the duration will be.  Any streaming protocol
>would be in trouble  ....

i think so, yes.

you know, in some ways, this goes to the heart of the difference
between improvisation-as-composition and composition itself. yes, a
scorefile lets you do things that no streaming protocol could. but
realtime control of a physical device connected to (or even IS-A)
sound source (not necessarily, and perhaps even preferably not, via
MIDI) lets you do a different set of things than the scorefile. the
differences in the two approaches should be seen as complimentary
features, not conflicts. its just too bad that Csound is modelled
solely on the compositional process, not the improvisational one. on
the other hand, this creates a nice niche for quasimodo, grainwave,
supercollider etc.

--p


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04159;
          28 Jul 99 3:46 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Jk7-0003h3-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 03:46:55 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (DAA07786); Wed, 28 Jul 1999 03:44:10 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 03:43:59 +0100
Received: from root@proxy3.ba.best.com [206.184.139.14] by hermes via ESMTP (DAA01325); Wed, 28 Jul 1999 03:43:58 +0100 (BST)
Received: from charlieb.com (baker.vip.best.com [206.86.232.121])
	by proxy3.ba.best.com (8.9.3/8.9.2/best.out) with ESMTP id TAA24450
	for ; Tue, 27 Jul 1999 19:42:33 -0700 (PDT)
Message-ID: <379E6E08.7849946F@charlieb.com>
Date: Tue, 27 Jul 1999 19:42:38 -0700
From: Charles Baker 
Reply-To: baker@charlieb.com
X-Mailer: Mozilla 4.61 (Macintosh; U; PPC)
X-Accept-Language: en
MIME-Version: 1.0
To: Csound List 
Subject: Re: sequencer
References: <199907280106.VAA19754@renoir.op.net>
Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353"
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Obviously, Paul,
you are not familiar with the music of Josquin Des Pres.
Although there are some untexted works atributed to him, they are quite rare,
and
there are no intabulations for Key or Fret board that are considered to be his
work.
In other words, he was exclusively a vocal composer. One of the greatest
composers of all time, in fact. For the entire rennaisance and the first part
of the baroque, he was generally held in the same regard as the 19th century
held Beethoven: as the greastest composer of all time.

I tend to agree, but then, I live for counterpoint, and singing.

About this thread:
Please, not a flame, but....
I hope people do not stick to  the limits of keyboards in designing control
software for software synthesis? Who cares what compromises a pianist has to go
through to perform a work? Not I...
charlieb

Paul Barton-Davis wrote:

> In message <379E40BD.5C388E0C@ccrma.stanford.edu>you write:
> >
> >> About FIFO versus LIFO, I believe you are correct. I did several of these
> >> things FIFO but I never did use them much.
> >
> >Actually, none of them is correct. Take this Josquin example,
> >for instance (imagine treble clef):
>
>      [ nice ascii art ]
>
> >the a4 at (A) needs to be turned off in a stack-like (LIFO) manner,
> >whereas the f4 at (B) requires a FIFO interpretation of incoming
> >note-offs.
>
> i take it that this piece was not intended to be playable on a single
> keyboard ? because ....
>
> >Of course, since most controllers don't allow you to play a new
> >attack before the note is released (like grand pianos do),
>
> not strictly true. you can't play a new attack on a piano without
> changing the sustain of the previous note generated by the same
> key. even though you may not fully release the key, semantically
> you've done something close to a noteOff before the next noteOn.
>
> in this specific example, its hard to imagine how you could get a
> piano to generate the intended acoustic effect. or perhaps i am just
> forgetting something about pianos :)
>
> --p



Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04179;
          28 Jul 99 4:02 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119J1J-00050X-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 03:00:37 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (DAA12696); Wed, 28 Jul 1999 03:59:44 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 03:59:34 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (DAA06628); Wed, 28 Jul 1999 03:59:32 +0100 (BST)
Received: from someip.ppp.op.net (d-bm3-01.ppp.op.net [209.152.194.65]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id WAA27632; Tue, 27 Jul 1999 22:58:10 -0400 (EDT)
Message-Id: <199907280258.WAA27632@renoir.op.net>
To: baker@charlieb.com
cc: Csound List 
Subject: Re: sequencer 
In-reply-to: Your message of "Tue, 27 Jul 1999 19:42:38 PDT."
             <379E6E08.7849946F@charlieb.com> 
Date: Tue, 27 Jul 1999 23:04:49 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

>Obviously, Paul, you are not familiar with the music of Josquin Des
>Pres.

all too obviously :)

>About this thread: Please, not a flame, but....  I hope people do not
>stick to the limits of keyboards in designing control software for
>software synthesis? Who cares what compromises a pianist has to g o
>through to perform a work? Not I...

well, i hope not too, but one has to start somewhere. since control
software has tended to be fairly unpleasant to use without dedicated
hardware, one of the places to start has been the keyboard, which were
electrified/monitorable a long time ago. but we have lots of other
examples too (theremins, tap boards, and nowadays all kinds of
controllers that regretably end up using MIDI :)

the folks at STEIM in the netherlands have done some neat work on
controllers that can be MIDI or not (you stick a generic sensor->MIDI
box in between the controller and some MIDI gear).

all that said, its far from clear that you could *sing* the Josquin
segment Tobias presented either - unless you can do it with that
distinctly non-european harmonic/overtone technique used by the Gyoto
monks, David Hykes and others. it appears to be a piece for two voices
(at least), which makes the LIFO/FIFO thing still resolve in favor of
FIFO, i think.

--p


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04887;
          28 Jul 99 11:23 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Pud-0005Fy-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 10:22:11 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (LAA05740); Wed, 28 Jul 1999 11:20:35 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 11:20:23 +0100
Received: from jaguars-int.cableinet.net [193.38.113.9] by hermes via SMTP (LAA16933); Wed, 28 Jul 1999 11:20:23 +0100 (BST)
Received: (qmail 6158 invoked from network); 28 Jul 1999 09:02:41 -0000
Received: from unknown (HELO cableinet.co.uk) (194.117.146.189)
  by jaguars with SMTP; 28 Jul 1999 09:02:41 -0000
Message-ID: <379EDB2C.7F318A97@cableinet.co.uk>
Date: Wed, 28 Jul 1999 11:27:56 +0100
From: Richard Dobson 
Organization: Composers Desktop Project
X-Mailer: Mozilla 4.51 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
To: csound@maths.ex.ac.uk
Subject: Re: sequencer
References: <199907280111.VAA20051@renoir.op.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk



Paul Barton-Davis wrote:

> and here is the crux of the matter. what we have here are two control
> methods that both affect the same target (a Csound instrument/voice),
> but have totally different goals. MIDI as you point out enables one
> instrument to control another; Csound scores allow compositional
> control over things that cannot be played on any particular (or even
> any possible) physical instrument.
> 
> this difference is very significant, and it makes it clear that one
> should probably consider them as parallel control techniques, not
> substitutes for each other.

I agree completely.

> >My though for a Csound sequencer then is something which (somehow) not
> >only supports the arbitrary pfield system, but also full polyphonic
> >legato per instrument. With careful design, even this could be handled
> >in real-time, though almost certainly not via MIDI.
> 
> i don't see how any real-time event stream can even supply note
> duration ...
> 

It could be done by design - a message tells an instrument to port to a
named note (pitch, ideally), over a given time. To keep the protocol
simple, the instrument would have to decide on the ~style~ and
particular timing of the port according to the voice used. it could
probably be done as a four or five--byte MIDI message:


representing the time would be the fiddly bit. some portamento styles
(especially voices) can take over a second to execute a slide, whereas
slding-finger portamento on a violin is much faster (most people don't
even notice it). So a delta-time in msecs is probably needed, and a
14bit number (as used for pitchbend) would just about be enough. The
flaw with this, as I mentioned before, is that it is still predicated on
note-numbers, not on voices. So NOTE_OFF will still have to refer to the
original note, not the new one.

Of course, duration ~could~ be represented in a MIDI-like stream, it
just isn't, and there are probably not enough eight-byte codes left to
add such things. it would perhaps be possible using Universal
System-Exclusive.

I still think this will be a waste of time as the industry will never
adopt it (99% of MIDI users around the world are very happy with the
status quo). We might as well invent our own new protocol.

Richard Dobson
-- 
Test your DAW with my Soundcard Attrition Page!
http://wkweb5.cableinet.co.uk/rwd (LU: 6th July 1999)
CDP: http://www.bath.ac.uk/~masjpf/CDP/CDP.htm (LU: 14th June 1999)


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04930;
          28 Jul 99 11:44 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119RCY-0003uO-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 11:44:46 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (LAA14241); Wed, 28 Jul 1999 11:42:13 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 11:42:02 +0100
Received: from root@smtp-out-004.wanadoo.fr [193.252.19.87] by hermes via ESMTP (LAA01333); Wed, 28 Jul 1999 11:42:01 +0100 (BST)
Received: from bmpl1-2-108.abo.wanadoo.fr [193.250.226.108] by wanadoo.fr
          for 
          Paris Wed, 28 Jul 1999 12:41:58 +0200 (MET DST)
Message-ID: <379EDE7F.19F77B3F@exbang.com>
Date: Wed, 28 Jul 1999 12:42:20 +0200
From: Michel Jullian 
Reply-To: mj@exbang.com
X-Mailer: Mozilla 4.04 (Macintosh; I; PPC)
MIME-Version: 1.0
To: csound list 
Subject: Re: sequencer
References: <199907280111.VAA20051@renoir.op.net> <379EDB2C.7F318A97@cableinet.co.uk>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Let's not forget there are still around 16000 RPNs and the same number of
NRPNs, each with a 14-bit value, already in the MIDI spec.

Richard Dobson wrote:
> 
> Paul Barton-Davis wrote:
> 
> > and here is the crux of the matter. what we have here are two control
> > methods that both affect the same target (a Csound instrument/voice),
> > but have totally different goals. MIDI as you point out enables one
> > instrument to control another; Csound scores allow compositional
> > control over things that cannot be played on any particular (or even
> > any possible) physical instrument.
> >
> > this difference is very significant, and it makes it clear that one
> > should probably consider them as parallel control techniques, not
> > substitutes for each other.
> 
> I agree completely.
> 
> > >My though for a Csound sequencer then is something which (somehow) not
> > >only supports the arbitrary pfield system, but also full polyphonic
> > >legato per instrument. With careful design, even this could be handled
> > >in real-time, though almost certainly not via MIDI.
> >
> > i don't see how any real-time event stream can even supply note
> > duration ...
> >
> 
> It could be done by design - a message tells an instrument to port to a
> named note (pitch, ideally), over a given time. To keep the protocol
> simple, the instrument would have to decide on the ~style~ and
> particular timing of the port according to the voice used. it could
> probably be done as a four or five--byte MIDI message:
> 
> 
> representing the time would be the fiddly bit. some portamento styles
> (especially voices) can take over a second to execute a slide, whereas
> slding-finger portamento on a violin is much faster (most people don't
> even notice it). So a delta-time in msecs is probably needed, and a
> 14bit number (as used for pitchbend) would just about be enough. The
> flaw with this, as I mentioned before, is that it is still predicated on
> note-numbers, not on voices. So NOTE_OFF will still have to refer to the
> original note, not the new one.
> 
> Of course, duration ~could~ be represented in a MIDI-like stream, it
> just isn't, and there are probably not enough eight-byte codes left to
> add such things. it would perhaps be possible using Universal
> System-Exclusive.
...
-- 
Greetings,
Michel
.........................................................................
  Michel Jullian   Directeur General             email mj@exbang.com
  Exbang Industries S.A.
  Mas Chauvain   route de Villeneuve             tel +33(0) 499 529 878
  Maurin     34970 Lattes     France             fax +33(0) 499 529 879
.........................................................................


Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa05107;
          28 Jul 99 12:30 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Qxe-0005In-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 11:29:22 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (MAA05708); Wed, 28 Jul 1999 12:28:08 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 12:27:55 +0100
Received: from smtp4.mindspring.com [207.69.200.64] by hermes via ESMTP (MAA09561); Wed, 28 Jul 1999 12:27:54 +0100 (BST)
Received: from Realizer (user-2ive5j7.dialup.mindspring.com [165.247.22.103])
	by smtp4.mindspring.com (8.8.5/8.8.5) with SMTP id HAA29670;
	Wed, 28 Jul 1999 07:27:43 -0400 (EDT)
Message-ID: <000c01bed8ec$890d8a40$79d496c0@Realizer.ngt.sungard.com>
From: Michael Gogins 
To: Richard Dobson , csound@maths.ex.ac.uk
MMDF-Warning:  Parse error in original version of preceding line at UK.AC.Bath.maths.omphalos
Subject: Re: sequencer
Date: Wed, 28 Jul 1999 07:29:58 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Oh dear, I wasn't aware that negative p3 was monophonic. I hereby amend my
proposal for a 1 year duration of p3 until note off.

I still vote for an extension of MIDI. Another field, such as "note ID",
could take care of the problems and opportunities raised by Dobson.

Alternatively, however, one could turn to Java and develop new network
protocols for music control; these could become regular Csound "line events"
with all of the power that implies. MIDI controllers could be adapted to
feed this new network protocol. Actually, now that I think about it, that
sounds very attractive, and it is even easier to do than MIDI itself. The
content of the message would simply be a snatch of Csound score - one or
more lines - to be evaluated with their p3 relative to the current time, as
in the existing line in event. It would be quite simple, using Java, to
receive MIDI input and parse it out into Csound statements. The pushdown
stack thing I mentioned could be used together with the fractional p1 "tie"
feature to provide realtime note IDs.

-----Original Message-----
From: Richard Dobson 
To: csound@maths.ex.ac.uk 
Date: Tuesday, July 27, 1999 7:03 PM
Subject: Re: sequencer


>A negative p3 does not only make the note hold indefinitely, it makes it
>monophonic - it is the primary mechanism for creating legato
>instruments. A zero value also already has a special meaning (see the
>manual). Pfields are floating-point, so cannot be 'unsigned' in the way
>an integer can.
>
>It is also possible to run simultaneous and independent notes on the
>same instrument, something that is only possible under MIDI by using the
>sustain pedal, with no control thereafter. More to the point, thanks to
>the duration parameter the user has independent control of the life of
>each of these notes, something, again, which MIDI does not support. The
>classic example of this is additive synthesis using multiple instances
>of a single sine-wave instrument.
>
>The negative p3 instantiates a monophonic voice able to support
>portamento and amplitude ramping, essential for most legato styles. This
>is probably the area in which Csound and MIDI diverge the most. A
>'Cquencer' which facilitated the programming of simultaneous independent
>legato streams would be formidable indeed.
>
>Portamento, in particular, requires knowledge of the target note. There
>is a mechanism in Csound (the 'next-pfield' instruction) which supports
>this; it could conceivably have been added to the MIDI spec as another
>Channel message had it been deemed important enough, but as MIDI was not
>developed to support ~composition~, but merely to enable keyboards to
>control each other, it was left out (assuming anyone thought about it at
>all!).
>
>I see MIDI as essentially a sort of simple telemetry for keyboard
>controls, using wires. It has a grammar, perhaps even syntax, but not
>semantics. Choir and string sounds(etc) invariably sound very false
>under MIDI, however good the sounds may be in themselves, as there is no
>way to program the independent polyphonic voice-leading which is
>idiomatic for them. Pitchbend needs to be associated with notes, not
>just with Channels.
>
>This is one of the many problems with MIDI  - it's grammar is not voice
>based, but controller-based. I want to be able to play four voices, each
>starting at middle C, and each performing a portamento to a different
>pitch. MIDI thinks they are still somehow middle C, but I think they are
>four voices which have changed pitch smoothly. The grammar for Csound is
>the opposite, even if most people end up writing fixed-pitch notes, most
>of the time.
>
>It is all very well adding little tweaks to MIDI here and there,  but
>this fundamental limitation of MIDI is set to remain, and nothing short
>of reinvention (ZIPI?) will obviate it. You are given MONO mode, and
>different Channels, and a few instruments have been made which can be
>configured as sixteen monophonic voices, but without portamento
>messages, and sub-idents for multiple voices on one 'note', the scope
>remains very limited.
>
>My though for a Csound sequencer then is something which (somehow) not
>only supports the arbitrary pfield system, but also full polyphonic
>legato per instrument. With careful design, even this could be handled
>in real-time, though almost certainly not via MIDI.
>
>Richard Dobson
>
>Paul Barton-Davis wrote:
>>
>> In message <001d01bed823$365752a0$79d496c0@Realizer.ngt.sungard.com>you
write:
>> >The p3 issue is a real one but it is not insuperable. The solution is
for
>> >realtime score events to have p3 set negative (infinite duration) until
a
>>
>> zero is more desirable, since it allows duration to be represented by
>> an unsigned value, and thus have a larger range.
>>
>
>--
>Test your DAW with my Soundcard Attrition Page!
>http://wkweb5.cableinet.co.uk/rwd (LU: 6th July 1999)
>CDP: http://www.bath.ac.uk/~masjpf/CDP/CDP.htm (LU: 14th June 1999)