Re: [linux-audio-dev] alsa midi device name extension proposal.

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] alsa midi device name extension proposal.
From: Stefan Kost (kost_AT_imn.htwk-leipzig.de)
Date: Thu Mar 28 2002 - 13:33:26 EET


hi,

as a small suggestion, what about using xml via libxml2 (www.libxml.org) for the fileformat. This way, you don't
need to write a parser and furthermore you know that whats you read is indeed a devicespec. Example
<device name="r0x0r tranc3m4chine">
   <contection>
     <interface>name of mididev"</interface>
     <port>1</port>
   </connection>
   <banks>
     <bank name="rezocool phasers" msb="31" lsb="22">
       <patches>
         <patch nr="1" name="super acid pad"/>
         <patch nr="2" name="cool juicy 303 thing ">
           <controller>...</controller>
         </patch>
       </patches>
     </bank>
     <bank>
       ...
     </bank>
     ...
   </banks>
</device>

Stefan

> -if the driver doesnt support this, (for example, an external midi uart)
> then it should be possible to create a STANDARD instrument definition file for this device, like for example:
>
> djleet_AT_myworkstation:/etc/alsa/definitions$ vi my_trance_machine.def
>
> device {
>
> name = " r0x0r tranc3m4chine "
> port = "MIDI 0-1"
>
> }
>
> bank {
>
> name = "rezocool phasers"
>
> msb = 31
> lsb = 22
>
> patch_1 = " super acid pad "
> patch_2 = " cool juicy 303 thing "
> patch_2_control_default = 55,20
> patch_3 = " temple of doom "
>
> }
>
> bank {
>
> name "basses"
>
> msb = 32
> lsb = 22
>
> patch_1 = " super six poles filtered FM bass "
> patch 2 = " pick bass "
>
> }
>
> etc.
>
>
>
> ---
>
> This should basically avoid us users and programmers to do all this work from the sequencer program side.
>
> ----FAQ-----
>
> After some discussions on certain points with different people, i'm adding this faq with the hopes that can answer some questions or arguments about this:
>
> Question: What is the scope of this implementation?
> Answer: this is much simpler than what most think, mainly, retrieving
> names of patches, banks and controllers from a device. And retrieving only.
>
> Question: dont you think this is too complicated because of the amount of different synths/cards/programs around?
> Answer: No, since all this is standarized: banks are set using controllers 0/32.
>
> Question: wouldnt this break compatibility in alsa?
> Answer: technically, it shouldnt since this is purely extensions.
>
> Question: Why do you insist in modifying the api? cant this be done using MIDI SYSEX commands?
> Answer: This cant and shouldnt be done with sysex for a number of reasons, first because of uglyness (sysex is ugly;) and conflicts with the idea of device sharing, but the real reason is that midi is not a 2-way protocol, thus most devices, specially soundcard drivers for internal synths or sequencer clients only work 1-way and there's not an incoming midi connection from them. And creating one just for the sake of retrieving this information is just horrible. A simple api call should give you the data you want and will work in all cases.
>
> Question: Is this worth it? Is doing this useful?
> Answer: I think that definitively yes, since this has been one of the biggest problems with midi since we started using it for composing in computers. There is not any way to know the names of a device if it's not compilant with general midi. MIDI will never support this, and the only way to get around this limitation for us is from the OS api itself.
>
>
>
>
> Well, i'd like to hear what you people think.
>
> thanks for reading this!
>

-- 
       \|/
      <@ @> Stefan Kost  private                   business
+-oOO-(_)-OOo------------------------------------------------------------- - - -  -   -
|        __    Address  Zwenkauer Str. 24         HTWK Leipzig, Fb IMN, Postfach 300066
|       ///             04277 Leipzig             04277 Leipzig
|  __  ///              Germany                   Germany
|  \\\///      Phone    +49341 3910483            +49341 30766101
|   \__/       EMail    st_kost_AT_gmx.net           kost_AT_imn.htwk-leipzig.de
|              WWW      http://www.sonicpulse.de  http://www.imn.htwk-leipzig.de/~kost/about.html
===-=-=--=---=---------------------------------- - - -  -    -


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Mar 28 2002 - 13:22:06 EET