comp.lang.ada
 help / color / mirror / Atom feed
From: "Hibou57 (Yannick Duchêne)" <yannick_duchene@yahoo.fr>
Subject: Re: Thinking of using Ada for a job at home. Couple of questions first.
Date: Wed, 03 Mar 2010 19:58:38 +0100
Date: 2010-03-03T19:58:38+01:00	[thread overview]
Message-ID: <op.u8z9n0mavwnd5a@garhos> (raw)
In-Reply-To: au1to5966sjtka244r3ce5dujj2j4ijfjt@4ax.com

Le Wed, 03 Mar 2010 17:19:31 +0100, John McCabe  
<john@nospam.assen.demon.co.uk> a écrit:
Hello,
> So the first question is do any of you know of any bindings to MS
> Windows MIDI (presumably the multimedia system) functions that already
> exist and are open source or something like that? I searched on Google
> for "ada midi" but it looks like there's a product called that so it
> came up with loads of stuff. I'm aware there are some binding to Win32
> from Ada but, as I've not been doing Ada in anger for a long time, I'm
> not sure if there's something for Ada 2005.
If there are possible funding, I would enjoy to re-organize my time to  
honor this target under whatever license you may request.

If you ever you are interested in another stuff in the same area, I've  
also started some times ago, but not terminated, an Ada binding to the VST  
architecture. I've temporarily dropped the project for an undetermined  
amount of time, because I need a project which could give me some earn. I  
can't give a date, however, I'm pretty sure I will come back to it in the  
future (at least, I hope I could)

> The second question is related to the implementation of the System
> Exclusive messages. Basically this is part of the reason I thought Ada
> would be good for this task. The SysEx messages basically consist of a
> smallish header and a variety of different structures that are
> differentiated by the "Function" type in the header. Now I seem to
> remember from when I did use Ada that it's possible to define the
> record representation of a variant record such that the discriminant
> is held within the body of the record. This would mean (I think) that
> I could read a block of data from the synthesizer straight in to a
> buffer that overlaid the variant record and essentially automatically
> created a record that could be read as the particular variant related
> to the incoming data. However I also seem to remember that's not quite
> a 'recommended' way of doing that sort of thing.
Excuse me, I'm not sure I've understood your words. Could you give a  
concrete example of a process ?

Just to tell about what immediately comes into my mind : I'm not sure  
variant record would be Ok for whole MIDI data sequences, as it comes into  
sequence and not as a single block. The content of some MIDI messages are  
splitted into multiple units which comes as a sequence. A variant record,  
to be coherent, must be a whole, you cannot have something related to a  
discriminant which remains dangling until some more data later arrives.

All this comment provided I've understood a bit of what you were to mean  
(I apologize if I'm wrong).

> The other thing that
> guided me in Ada's direction is that the structure of the SysEx
> messages requires a lot of bit-fields and I'm well aware that Ada's
> representation clauses are fantastic for that sort of thing.
Another reason to use Ada : Ada is also a good choice in this area, due to  
its tasking capabilities. This kind of application typically heavily  
relies on multiple tasks (and even more heavily if you have to deal with  
multiple synthesizers, what is a common case)

> So, in principle, would that be the way to do this, or would you be
> able to suggest a better mechanism?
>
> Finally, is there a straightforward way to do that sort of thing using
> tagged records? E.g. could I define a record which is the header
> format, then extend that in a number of different tagged extensions to
> create each individual message as a separate tagged record and use the
> OO and dispatching facilities to work with them?
I gonna go back to my docs to remind me about what's the layout of these  
messages exactly.

> Any advice you've got the time to give on this would be very much
> appreciated.
You're welcome


-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky



  parent reply	other threads:[~2010-03-03 18:58 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-03 16:19 Thinking of using Ada for a job at home. Couple of questions first John McCabe
2010-03-03 18:22 ` Jeffrey R. Carter
2010-03-03 20:09   ` John McCabe
2010-03-03 21:00     ` Simon Wright
2010-03-03 18:58 ` Hibou57 (Yannick Duchêne) [this message]
2010-03-03 20:17   ` John McCabe
2010-03-04  6:22     ` Hibou57 (Yannick Duchêne)
2010-03-04 11:39       ` John McCabe
2010-03-09 14:49         ` Warren Gay
2010-03-09 15:33           ` Jacob Sparre Andersen
2010-03-09 20:22           ` jonathan
2010-03-09 21:57             ` Charmed Snark
2010-03-09 22:54               ` jonathan
2010-03-10 17:46                 ` Charmed Snark
2010-03-10 19:12                   ` jonathan
2010-03-10 20:41                     ` Simon Wright
2010-03-10 21:00                       ` Pascal Obry
2010-03-09 20:32           ` Simon Wright
2010-03-10  6:42           ` J-P. Rosen
2010-03-03 19:17 ` Dmitry A. Kazakov
2010-03-03 20:38   ` John McCabe
2010-03-03 20:56     ` Simon Wright
2010-03-03 21:00       ` John McCabe
2010-03-03 21:10         ` John McCabe
2010-03-04  6:39         ` Hibou57 (Yannick Duchêne)
2010-03-03 21:35       ` tmoran
2010-03-04  6:43         ` Hibou57 (Yannick Duchêne)
2010-03-03 22:20     ` Dmitry A. Kazakov
2010-03-03 19:52 ` Gautier write-only
2010-03-03 20:57   ` John McCabe
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox