.NET audio

  • Thread starter Thread starter Logan Kreyer
  • Start date Start date
L

Logan Kreyer

Where .NET is of concern, are there any good class
libraries to work on audio (streaming, etc) such as there
are the GDI+ libraries and DirectX functionality for
working with graphics?

I have been doing some searches and there are no relevant
hits on the matter.

Thank you.

Logan
 
Logan,

As you are re-posting this, does this mean you find DirectSound and
DirectMusic (parts of DirectX) unsuitable?
 
DirectX code would work, but those only run under Windows and no
other OS. I think with all the support .Net had for graphics it should have
the same support written into it for audio. That way if an application
needs audio capability they can still port it to other sytems that the
framework has been ported to. I just hope somone from the MS .Net
development team reads this and adds this to the list of enhancements.

S. Shawn Mehaffie.


Dmitriy Lapshin said:
Logan,

As you are re-posting this, does this mean you find DirectSound and
DirectMusic (parts of DirectX) unsuitable?

--
Dmitriy Lapshin [C# / .NET MVP]
X-Unity Test Studio
http://x-unity.miik.com.ua/teststudio.aspx
Bring the power of unit testing to VS .NET IDE

Logan Kreyer said:
Where .NET is of concern, are there any good class
libraries to work on audio (streaming, etc) such as there
are the GDI+ libraries and DirectX functionality for
working with graphics?

I have been doing some searches and there are no relevant
hits on the matter.

Thank you.

Logan
 
Shawn said:
DirectX code would work, but those only run under Windows and no
other OS. I think with all the support .Net had for graphics it
should have the same support written into it for audio. That way if
an application needs audio capability they can still port it to other
sytems that the framework has been ported to. I just hope somone
from the MS .Net development team reads this and adds this to the
list of enhancements.


I am not sure why you think that multi-OS support is useful. Microsoft does
not support using .NET on other platforms (unlike Java: multi-platform
support is the raison d'etre for Java). Sure there are third party projects
to place .NET on other platforms, but without the *active* support of
Microsoft do you really think that code written for .NET on one platform
will work well on another?

As to your final sentence, remember that Microsoft makes money from selling
Windows, its unlikely that they would develop a product that would help keep
people on another platform. Yes, that's a very cynical point of view, but
its realistic.

Richard
 
I am not sure why you think that multi-OS support is useful. Microsoft
does
not support using .NET on other platforms (unlike Java: multi-platform
support is the raison d'etre for Java). Sure there are third party projects
to place .NET on other platforms, but without the *active* support of
Microsoft do you really think that code written for .NET on one platform
will work well on another?

Excuse me? Microsoft has done a great job of ensuring that it's possible for
third parties to write CLR compliant execution engines and compilers by
publishing the specifications used in the framework. It's true that MS's Win
Forms are the most platform specific parts of the framework, and that it's
unlikely that those would be fully supported or even included in other
versions of the framework, but command-line tools, no matter how complex
they are, could conceivably (and do in fact) run on alternate versions of
the framework happily. NAnt, for example, runs on Mono and MS's framework,
to my knowledge.

Besides this, providing a method to access audio devices in the framework
would have more benefits than cross-platform capability. It would mean full
object-orientation, as opposed to importing native function calls. It would
mean consistency. It would mean more ease of use. It would mean strongly
typed exceptions. Let's not forget that the _main_ benefits of the .NET
runtime environment.
As to your final sentence, remember that Microsoft makes money from selling
Windows, its unlikely that they would develop a product that would help keep
people on another platform.

Well, it's already happened. Microsoft realizes that standards-based systems
garner more support from the develper community at large (as well as the
business community) than completely proprietary systems that lock users and
developers in to the same technology. While what you say is true for many or
most of MS's technology (WMA, VBS, Office), and while Microsoft dominates
..NET technology, and will do so for a good deal of time, I think MS picks
its fights carefully. It realizes that it needs the support from developers
that results from a programming environment that isn't completely
proprietary.

Chris C.
 
Chris said:
Excuse me? Microsoft has done a great job of ensuring that it's
possible for third parties to write CLR compliant execution engines
and compilers by publishing the specifications used in the framework.

Did I deny that? All I am saying is that Microsoft are *not* doing it
themselves. There has to be a reason for that.

But tell me why do you think Microsoft put information about the *exact*
version of the framework libraries in the manifest of an assembly. Then tell
me why the assembly fails to load when another version of the .NET framework
tries to load that assembly. Explain to me how this fits in with the idea of
..NET being used across platforms?
It's true that MS's Win Forms are the most platform specific parts of
the framework, and that it's unlikely that those would be fully
supported or even included in other versions of the framework, but
command-line tools, no matter how complex they are, could conceivably
(and do in fact) run on alternate versions of the framework happily.
NAnt, for example, runs on Mono and MS's framework, to my knowledge.

So what? Do this: take a process assembly build on mono and try to run in
under the Microsoft runtime (or vice versa).
Besides this, providing a method to access audio devices in the
framework would have more benefits than cross-platform capability. It

I agree with that, and another poster mentioned the facilities in DirectX to
do this (which has a managed interface).
would mean full object-orientation, as opposed to importing native
function calls. It would mean consistency. It would mean more ease of

I agree with that too, but unfortunately whole swathes of the framework
library are mere wrappers around Win32 and your comments about object
orientation have been ignored (OOP is more than just adding static methods
to a class said:
use. It would mean strongly typed exceptions. Let's not forget that
the _main_ benefits of the .NET runtime environment.

Security. Security is the *main* benefit of the framework. Anything else is
mere icing on the cake.
Well, it's already happened. Microsoft realizes that standards-based
systems garner more support from the develper community at large (as
well as the business community) than completely proprietary systems
that lock users and developers in to the same technology. While what
you say is true for many or most of MS's technology (WMA, VBS,
Office), and while Microsoft dominates .NET technology, and will do
so for a good deal of time, I think MS picks its fights carefully. It
realizes that it needs the support from developers that results from
a programming environment that isn't completely proprietary.

And again I agree, in part. Indeed, the Visual C++ team learned this many
years ago and so now Visual C++ is the most compliant compiler you're able
to buy (assuming you don't have a silly-money budget).

But let's take a closer look at standards. Web Services are a standard, but
when you look closer you'll see that SOAP was a standard driven by Microsoft
(at the time only one of the original architects, Don Box, didn't work for
Microsoft - but now Don works for Microsoft). Its great for companies to
agree on standards, but its interesting to see what becomes a 'standard'
because the biggest company says it should be <g>.

Microsoft has been bitten by being perceived as providing proprietry code. I
say 'perceived' because I don't think that it matters that Microsoft
produces proprietry code; the majority of machines are Windows machines
anyway, so whatever runs on Windows is by default a 'standard'. IMO
Microsoft also take this point of view and thus produces 'standards' out of
their proprietry code. Look at C# and the CLI, they've become standards, but
explain to me how much of the specs were changed by the standards committee?
(Were they rubber-stamping committees, existing merely to stamp their
approval?) IMO the only difference between VB6 and C# in this respect is
that Microsoft provide a reference implementation of C# in the SSCLI (which
is great), and yet VB6 was very much a 'standard' before .NET appeared, it
just didn't have the rubber stamp of a standards committee.

I prefer to take the cynics approach.

Richard
 
read my sig (Richard Grimes [MVP]) wrote in
I am not sure why you think that multi-OS support is useful.
Microsoft does not support using .NET on other platforms (unlike
Java: multi-platform support is the raison d'etre for Java).

The ECMA reference implementation of the CLR (Rotor) installs and
runs on FreeBSD U*IX as is from Microsoft.
 
Did I deny that? All I am saying is that Microsoft are *not* doing it
themselves. There has to be a reason for that.

Of course. Sorry to read too much into your statement.
But tell me why do you think Microsoft put information about the *exact*
version of the framework libraries in the manifest of an assembly. Then tell
me why the assembly fails to load when another version of the .NET framework
tries to load that assembly. Explain to me how this fits in with the idea of
.NET being used across platforms?

The issues with binary compatibility across .NET framework implementations
are no different than the issues with source-code level compatibility across
C or C++ compilers. There are complicated issues that have to be gradually
worked out as the different implementations mature. Right now MS's framework
is the only mature framework, the only one that is advertised as being able
to load any CLR compliant assembly. It will take time for others to reach
this point. There may never be any others. And I realize that the very fact
that it is the only one makes it a sort of standand unto itself, regardless
of what ECMA says. But that's not written in stone.

So basically, I pretty much agree with you, but I didn't see very far up
this thread so I didn't have much context to place your argument in. Sorry
if it caused you inconvenience.

Chris Capel
 
Back
Top