From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,c98f618755b0ddcc X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!news4.google.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!194.134.4.91.MISMATCH!news2.euro.net!newsfeed.freenet.ag!newsfeed.kamp.net!newsfeed.kamp.net!gegeweb.org!aioe.org!not-for-mail From: =?iso-8859-15?Q?Hibou57_=28Yannick_Duch=EAne=29?= Newsgroups: comp.lang.ada Subject: Re: Thinking of using Ada for a job at home. Couple of questions first. Date: Wed, 03 Mar 2010 19:58:38 +0100 Organization: Ada At Home Message-ID: References: NNTP-Posting-Host: oMkfAgQgktwMaFhvPjW4iA.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes Content-Transfer-Encoding: Quoted-Printable X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 User-Agent: Opera Mail/10.10 (Win32) Xref: g2news1.google.com comp.lang.ada:9378 Date: 2010-03-03T19:58:38+01:00 List-Id: Le Wed, 03 Mar 2010 17:19:31 +0100, John McCabe = a =E9crit: 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 V= ST = 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 th= e = 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 in= to = sequence and not as a single block. The content of some MIDI messages ar= e = 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