Csound Csound-dev Csound-tekno Search About

Re: sequencer

Date1999-07-28 11:27
FromRichard Dobson
SubjectRe: sequencer

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)

Date1999-07-28 15:04
FromPaul Barton-Davis
SubjectRe: sequencer
>> 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. 

the keywords were "real time event". i suppose it all depends on what
you mean by "an event". if you had some kind of a control interface that
allowed you to say "port this note over a given time", then this could
constitute an event, and yes, the event stream would contain duration
information.

but that implies a control interface different from any musical
instrument i have ever seen. all instruments that i am aware of allow
you to do something to start a note, and something else to stop it
(and the good ones let you do something else to change the timbre and
maybe even the pitch in between). with such instruments (and please
understand that i am talking about *all* instruments, not just
electronic ones), the event set doesn't include any that contain
duration as a parameter.

>Of course, duration ~could~ be represented in a MIDI-like stream, it
>just isn't, 

*representing* duration is a totally different (and much easier)
problem than having duration information available.

--p


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa05838;
          28 Jul 99 15:43 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119UvJ-00042F-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 15:43:13 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (PAA04788); Wed, 28 Jul 1999 15:39:42 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 15:39:31 +0100
Received: from root@smtp-out-007.wanadoo.fr [193.252.19.126] by hermes via ESMTP (PAA17918); Wed, 28 Jul 1999 15:39:30 +0100 (BST)
Received: from villosa.wanadoo.fr [193.252.19.122] by wanadoo.fr
          for 
          Paris Wed, 28 Jul 1999 16:39:22 +0200 (MET DST)
Received: from exbang.com (193.250.226.122) by villosa.wanadoo.fr; 28 Jul 1999 16:39:23 +0200
Message-ID: <379F1123.4AFB0A6F@exbang.com>
Date: Wed, 28 Jul 1999 16:18:15 +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: <199907281358.JAA29937@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:
> 
> >> i don't see how any real-time event stream can even supply note
> >> duration ...

well, one could use polyphonic aftertouch for example, with keyboards which
transmit this event.

-- 
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 aa08611;
          28 Jul 99 17:34 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Vh9-0005aF-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 16:32:39 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (RAA11118); Wed, 28 Jul 1999 17:30:51 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 17:30:40 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (RAA02942); Wed, 28 Jul 1999 17:30:39 +0100 (BST)
Received: from someip.ppp.op.net (d-bm3-0d.ppp.op.net [209.152.194.77]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id MAA16620; Wed, 28 Jul 1999 12:30:35 -0400 (EDT)
Message-Id: <199907281630.MAA16620@renoir.op.net>
To: mj@exbang.com
cc: csound list 
Subject: Re: sequencer 
In-reply-to: Your message of "Wed, 28 Jul 1999 16:18:15 +0200."
             <379F1123.4AFB0A6F@exbang.com> 
Date: Wed, 28 Jul 1999 12:36:50 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

>> >> i don't see how any real-time event stream can even supply note
>> >> duration ...
>
>well, one could use polyphonic aftertouch for example, with keyboards which
>transmit this event.

i don't get it. i press a noteOn button of some sort. the noteOn is
delivered to Csound. where's the duration information ?


Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa08866;
          28 Jul 99 18:54 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Xus-00048A-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 18:54:58 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (SAA07367); Wed, 28 Jul 1999 18:52:35 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 18:52:25 +0100
Received: from jaguars-int.cableinet.net [193.38.113.9] by hermes via SMTP (SAA11029); Wed, 28 Jul 1999 18:52:24 +0100 (BST)
Received: (qmail 10385 invoked from network); 28 Jul 1999 16:34:43 -0000
Received: from unknown (HELO cableinet.co.uk) (194.117.146.62)
  by jaguars with SMTP; 28 Jul 1999 16:34:43 -0000
Message-ID: <379F451D.20F8CE2D@cableinet.co.uk>
Date: Wed, 28 Jul 1999 18:59:57 +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: <199907281358.JAA29937@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 lot of MIDI drum controllers work this way, as you only generate a
NOTE-ON when you hit a pad. The NOTE_OFF is transmitted behind the
scenes. You can either 'play' a note, or you can 'trigger' it.

I expect thy have got more sophisticated since the time I looked at them
(such as ability to damp the sound by touching the rim), but I think the
basic system still happens.

And, of course, there is the circumstance that often NOTE-OFF just
triggers the release stage, which then runs without intervention.

The point being that 'NOTE-OFF' does ~not~ mean 'stop sounding this
note'. It just means 'the player has released the key. Do what you
normally do in this situation'. Semantically, it is very misleading!



Richard Dobson
Paul Barton-Davis wrote:
> 
> >> 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.
> 
> the keywords were "real time event". i suppose it all depends on what
> you mean by "an event". if you had some kind of a control interface that
> allowed you to say "port this note over a given time", then this could
> constitute an event, and yes, the event stream would contain duration
> information.
> 
> but that implies a control interface different from any musical
> instrument i have ever seen. all instruments that i am aware of allow
> you to do something to start a note, and something else to stop it
> (and the good ones let you do something else to change the timbre and
> maybe even the pitch in between). with such instruments (and please
> understand that i am talking about *all* instruments, not just
> electronic ones), the event set doesn't include any that contain
> duration as a parameter.
> 
> >Of course, duration ~could~ be represented in a MIDI-like stream, it
> >just isn't,
> 
> *representing* duration is a totally different (and much easier)
> problem than having duration information available.
> 
> --p

-- 
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 aa09004;
          28 Jul 99 19:40 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Xep-0005eC-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 18:38:23 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (TAA11073); Wed, 28 Jul 1999 19:37:30 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 19:37:20 +0100
Received: from root@smtp-out-001.wanadoo.fr [193.252.19.68] by hermes via ESMTP (TAA09783); Wed, 28 Jul 1999 19:37:19 +0100 (BST)
Received: from bmpl1-2-249.abo.wanadoo.fr [193.250.226.249] by wanadoo.fr
          for 
          Paris Wed, 28 Jul 1999 20:37:17 +0200 (MET DST)
Message-ID: <379F4DE6.15AAB58D@exbang.com>
Date: Wed, 28 Jul 1999 20:37:32 +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: <199907281630.MAA16620@renoir.op.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

The pressure you apply on the key is translated by the keyboard (not all
keyboards, mind you) into polyphonic aftertouch events, each encoding both key
number and key pressure.

Use of poly AT events may be one way to achieve what you want : transmit
duration information (or any other info for that matter) when the key is pressed.

One way to implement a MIDI sound generator capable to understand "instant"
note duration might be to store the velocity from the noteon event (for
amplitude control) and start generating the note only at the first poly AT
event referencing the same note number, using pressure as a duration control.
And ignore subsequent poly AT events as well as the noteoff event for said
note number until next noteon.

Or use velocity for duration and poly AT for amplitude : with some imagination
I am sure there are lots of things you can do with MIDI keyboards, and with
MIDI in general.

I have no idea whether such a contraption would be practical from a player's
point of view though (anybody ? I don't play keyboards myself :-).


Paul Barton-Davis wrote:
> 
> >> >> i don't see how any real-time event stream can even supply note
> >> >> duration ...
> >
> >well, one could use polyphonic aftertouch for example, with keyboards which
> >transmit this event.
> 
> i don't get it. i press a noteOn button of some sort. the noteOn is
> delivered to Csound. where's the duration information ?

-- 
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 shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa09154;
          28 Jul 99 20: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 119Zg0-0004A2-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 20:47:44 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (UAA15994); Wed, 28 Jul 1999 20:44:50 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 20:44:39 +0100
Received: from mtv@hydra.U.Arizona.EDU [128.196.137.174] by hermes via ESMTP (UAA03661); Wed, 28 Jul 1999 20:44:38 +0100 (BST)
Received: from localhost (mtv@localhost)
	by orion.U.Arizona.EDU (8.8.6 (PHNE_17135)/8.8.6) with ESMTP id MAA01730;
	Wed, 28 Jul 1999 12:44:31 -0700 (MST)
Date: Wed, 28 Jul 1999 12:44:31 -0700 (MST)
From: Mark T Vigorito 
To: Michel Jullian 
cc: csound list 
Subject: Re: sequencer
In-Reply-To: <379F4DE6.15AAB58D@exbang.com>
Message-ID: 
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk


Cquential Csounders:
	the problem is that would have to know the duration of the note
right at the beginning of the note. From the standpiont of real-time
(read that: human) performance, this seems pretty impractical, except
maybe for certain percussion voices.

Cheers,
Mark Vigorito
mtv@u.arizona.edu

On Wed, 28 Jul 1999, Michel Jullian wrote:

> [...]
> One way to implement a MIDI sound generator capable to understand "instant"
> note duration might be to store the velocity from the noteon event (for
> amplitude control) and start generating the note only at the first poly AT
> event referencing the same note number, using pressure as a duration control.
> And ignore subsequent poly AT events as well as the noteoff event for said
> note number until next noteon.
> [...]



Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa09179;
          28 Jul 99 20:58 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
	by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
	id 119Ysg-0005fv-00
	for jpff@maths.bath.ac.uk; Wed, 28 Jul 1999 19:56:46 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (UAA09270); Wed, 28 Jul 1999 20:55:04 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 28 Jul 1999 20:54:53 +0100
Received: from root@renoir.op.net [209.152.193.4] by hermes via ESMTP (UAA01763); Wed, 28 Jul 1999 20:54:52 +0100 (BST)
Received: from someip.ppp.op.net (d-bm3-15.ppp.op.net [209.152.194.85]) by renoir.op.net (o1/$Revision: 1.18 $) with ESMTP id PAA07594 for ; Wed, 28 Jul 1999 15:54:51 -0400 (EDT)
Message-Id: <199907281954.PAA07594@renoir.op.net>
To: csound@maths.ex.ac.uk
Subject: Re: sequencer 
In-reply-to: Your message of "Wed, 28 Jul 1999 18:59:57 BST."
             <379F451D.20F8CE2D@cableinet.co.uk> 
Date: Wed, 28 Jul 1999 16:01:09 -0400
From: Paul Barton-Davis 
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

>The point being that 'NOTE-OFF' does ~not~ mean 'stop sounding this
>note'. It just means 'the player has released the key. Do what you
>normally do in this situation'. Semantically, it is very misleading!

nothing misleading about that. its misleading if you interpret
"noteOn" or "noteOff" as a directive, but its not. MIDI channel data
constitutes is an information stream, not a command stream. an
instrument is quite free to ignore or process the messages in any way
it wants. most MIDI instruments start a release phase when they are
sent noteOff, but this is just convention (as Mike Berry's GrainWave
makes clear).

--p