On Friday 15 February 2013 15:19:03 M Donalies wrote:
If I want to support
both audio and midi, then I have to learn 2 completely different and
conflicting api's.
Audio and MIDI are two totally different concepts from the beginning. You can
mix both of them in your application, but to do so you are going to choose
between one or the other point of view, and the chosen alternative is going to
be determinant on your application's functionalities and which users are going
to be happy with(out) them.
I like to explain this issue with an analogy: it is similar to the image
world, where you have vector graphics (MIDI) and bit-mapped or raster graphics
(digital audio). There are Linux programs working from both points of view,
for instance: Inkscape (vector graphics) and Gimp (bitmaps). You can use
bitmaps with Inkscape and vector graphics in Gimp, they can interoperate quite
well, but when you mix both worlds, each program tries to convert the alien
object to its own point of view. There are graphic artists that start a design
with Inkscape producing SVG files, and for the final product they import a SVG
into Gimp. There is also people working directly with Gimp from scratch.
Saving the distances, it is comparable to the work-flow of some musicians
starting with a MIDI draft composition and arrangement, and finishing it with
a digital audio workstation. There are also musicians that work in a DAW from
scratch. In this analogy, the issues with zoom in images are comparable to
audio stretch/shrink, and the ability to change tempo or scale on the fly is a
direct consequence of this. Like the work based on arbitrary/symbolic units
for measuring time and distances, compared with measuring it in pixels and
frames/seconds.
Regards,
Pedro