• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: MIDI Transpose?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MIDI Transpose?


  • Subject: Re: MIDI Transpose?
  • From: Brian Willoughby <email@hidden>
  • Date: Wed, 4 Jun 2008 22:45:24 -0700

The MIDI Specification from February 1990 defines Registered Parameter Number 2 (RPN2) as Coarse Tuning. After setting RPN MSB (MIDI Controller 101) to 0x00, and RPN LSB (MIDI Controller 100) to 0x02, you can then use the Data Entry MIDI Controller to set Coarse Tuning (see below).

MSB/LSB	cents
0x00 0x00	-6400
0x40 0x00	0
0x7F 0x7F	+6400

The DLS Level 1 spec contains the following description:

Coarse Tuning alters the MIDI note number before the articulation data, region, and sample selections are made by the Control Logic. This placement prevents unwanted timbre shifts in instruments that have been multisampled. [As I mentioned, this also avoids the CPU hit of the time/pitch AU]

Level 1 Devices do not support the use of Coarse Tuning on MIDI Channel 10 [percussion]. The default setting is 0, which does not alter the pitch.

The Level 1 Device is required to support the Data Entry MSB and Data Entry LSB Controllers (MIDI Controllers 6 and 38, respectively), but not required to support the Data Increment and Data Decrement Controllers (MIDI Controllers 96 and 97, respectively).

It should be fairly easy to use CoreMIDI to send the four MIDI messages needed to set Coarse Tuning whenever you want to change the Tranpose amount in your program. I have not tested whether the Apple DLS correctly implements the DLS Level 1 requirements in this regard, but I would assume that it does, or this would be grounds for a bug report.


Regarding Virtual Endpoint creation, this is documented in the CoreMIDI API specification. I do not have a pointer at the moment.


Brian Willoughby
Sound Consulting


On Jun 4, 2008, at 17:29, Jay Koutavas wrote:

[...]you could create a virtual MIDI input which transposes incoming MIDI data and then sends it to the DLS Synth. You would then modify your current MusicPlayer to send the SMF playback data to your virtual MIDI port instead of directly to the DLS, and thus you would have on-the-fly transposition. The sound quality in this arrangement will be superior to using the time pitch unit, and it will take less CPU.

Excellent. Have you something you can point me to that shows how to set-up the virtual endpoint to the DLS Synth? I'm usually pretty good at googling this kind of thing up, but haven't had any success in this case.



P.S. You could also consider sending a MIDI Transpose Event to the Apple DLS Synth without altering the MIDI data. I have not tested this fully for compliance, but the MIDI specification has very flexible transpose features, and most General MIDI Devices are required to implement these features.

All I found in the MIDI spec is pitch bending. I'm actually looking at doing key transposing. The math for this is brain dead simple from what I've gathered in my searches.


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: MIDI Transpose?
      • From: Jay Koutavas <email@hidden>
References: 
 >Re: MIDI Transpose? (From: William Stewart <email@hidden>)
 >Re: MIDI Transpose? (From: Jay Koutavas <email@hidden>)
 >Re: MIDI Transpose? (From: William Stewart <email@hidden>)
 >Re: MIDI Transpose? (From: Jay Koutavas <email@hidden>)
 >Re: MIDI Transpose? (From: Brian Willoughby <email@hidden>)
 >Re: MIDI Transpose? (From: Jay Koutavas <email@hidden>)
 >Re: MIDI Transpose? (From: Brian Willoughby <email@hidden>)
 >Re: MIDI Transpose? (From: Jay Koutavas <email@hidden>)

  • Prev by Date: Native Device Formats
  • Next by Date: RE: MIDI Transpose?
  • Previous by thread: Re: MIDI Transpose?
  • Next by thread: Re: MIDI Transpose?
  • Index(es):
    • Date
    • Thread