LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Has anyone written an ASIO sound card VI?

Has anyone used ASIO sound card drivers with LabVIEW?  I've seen a few requests for it, but no one has posted anything useful.

The standard LabVIEW sound VIs use lvsound2.llb, which seems to talk to DirectSound on Windows.

Thanks.
0 Kudos
Message 1 of 18
(9,102 Views)

Hello,

LabVIEW 8.0 did introduce VIs to support up to 24-bit sound.  You need DirectX 8.0 or later to use them.

Are you trying to use these and having problems, or are you just curious if anyone has tried using the ASIO drivers with LabVIEW?  I haven't specifically heard on anyone using them, but that doesn't mean that no one is.

0 Kudos
Message 2 of 18
(9,072 Views)
Thanks Johnny,

I'm mainly after the latency benefit of ASIO, rather than the bit depth.  It seems such an obvious standard and is available on all high end USB/FireWire sound interfaces, yet few people in the LabVIEW community have even heard of it.

Roger.
0 Kudos
Message 3 of 18
(9,067 Views)

It should be possible to develop a LabVIEW application that uses ASIO, but you will have to either wrap the ASIO interface directly (through Call Library Nodes; the DLL Import Wizard may help) or create your own DLL to sit between LabVIEW and ASIO (which is what is done for the LabVIEW Sound API).

 

At the core of DirectX are its application programming interfaces, or APIs. The APIs act as a kind of bridge for the hardware and the software to "talk" to each other. The DirectX APIs give multimedia applications access to the advanced features of high-performance hardware.  DirectX is part of the Windows operating system, and basically gives programmers faster communication between the application and the hardware. This is the same attempt that ASIO makes, only its less effective but is getting better and more easily supported

 

LabVIEW supports 24-bit Sound* in Windows. It also uses DirectSound8 in Windows. 8.2 (maybe 8.0 as well) had a bug that broke 24-bit sound. It should be fixed in 8.2.1. It is not sure when it might be fixed.  

 

 

0 Kudos
Message 4 of 18
(8,988 Views)

We have an ASIO interface available for LabVIEW.

 

Please see:  http://www.lasi.arizona.edu/

 

Ben Sternberg

University of Arizona

Laboratory for Advanced Subsurface Imaging

bkslasi@email.arizona.edu

Message 5 of 18
(7,967 Views)

123.JPG    

Please Can any one tell me name of this vi? I will be thankful to the concerned one.

0 Kudos
Message 6 of 18
(6,292 Views)
asmat,

Don't hijack unrelated threads and don't spam the board with the same question multiple times.
0 Kudos
Message 7 of 18
(6,286 Views)

Here is a follow-up to my posting on 5/17/2009, where I pointed out that we have an ASIO interface available for LabVIEW at http://www.lasi.arizona.edu/.  If you are interested in this software, please contact me at:

 

Ben Sternberg

University of Arizona

Laboratory for Advanced Subsurface Imaging

bkslasi@email.arizona.edu

 

Previous users of our software have reported a wide range of applicability for this software. This applicability has changed as the ASIO software and LabView program evolved.   Our ASIO driver no longer works with the recent versions of LabView (LabVIEW 2010 and newer).

 

Some possibilities are:

 

1). Our ASIO driver will work with older versions of LabView (LabVIEW 2009 and older).  There are often a number of sellers on EBay who are selling older versions of LabView.  You can then use a program with the ASIO driver with this older version.

 

2). Produce an executable of your program (using an older version of LabView) that can then be used without even having a copy of LabView on your computer.

 

3). Modify the ASIO driver for the newest version of LabView.

 

The following is a further explanation of the history and current limitations of the code, which was prepared by Terry Leach, the consultant who wrote the ASIO interface and the GenMon data acquisition program for us.

 

Our ASIO interface was built in LabView 6.x using the CIN (code interface node) technology.  Source code to interface to the ASIO 2.0 sound driver was obtained from Steinberg.  http://www.steinberg.net/en/home.html

 

This development was performed under an NSF grant obtained and managed by Dr. Ben Sternberg of the University of Arizona.

 

During the development time, our ASIO interface consisted of expanding and generalizing the Steinberg code to allow easy creation of "channel" C++ objects as well as status bits to track ASIO sound buffer performance in real time.  In addition C++ code was added so that we could call the Steinberg interface from the LabView development environment.  This code was compiled and built into a CIN.  The CIN was then incorporated as a binary directly into ASIO.vi.  ASIO.vi then became our interface to the sound driver when in the LabView development environment.  Several LabView applications were built making use of ASIO.vi.  There are three distinct layers to the sound interface.  The lowest layer being the ASIO 2.0 compliant driver of whatever hardware you intended to access.  The intermediate layer being the Steinberg/UofA/LV CIN, and the final layer being ASIO.vi and its use in your application program.

 

Our applications, built on point acquisitions which were always a power of 2 (supporting real time FFT calculation), meshed very well with sound buffer sizes which were also powers of 2.  The ASIO driver, at that time, supported a maximum sound buffer size of 16384 points.  As the ASIO interface is built on double buffering this gave us 16384/(sample rate) = seconds of time to perform our application calculations in real time.

 

Several things happened over time.

 

1).  The ASIO 2.0 driver's (low layer, for Echo Audio equipment) maximum point buffer was reduced from 16384 points to 2048 points.  This reduced our application's processing time (prior to sound buffer lossage) to 1/8.  While it would be possible to modify the middle layer to manage a virtual sound buffer of larger size, no further development funding was available.

 

2).  The Steinberg code hard coded the name of the ASIO 2.0 compliant driver to be found and instantiated from the Windows Registry.  As the hardware vendor produced new hardware and subsequent upgrades of the ASIO 2.0 driver to support that hardware, they also changed the name of the driver in the Windows Registry.  For a quick fix, this required recompilation and rebuilding of the ASIO CIN, and subsequent update of the ASIO.vi.  It would also be possible to scan the Windows Registry and let the user pick which ASIO 2.0 compliant driver to use.

 

3).  As of LabView 2010, National Instruments no longer supports the CIN development interface.  This makes it impossible to update the CIN as required by the aforementioned item.  While it would be possible to convert the CIN to a DLL, we do not have funding available for this modification at this time.

 

To use the ASIO.vi LabView interface at this time, without further development, means running under an older version of LabView.  It may also mean a recompilation and rebuilding of the ASIO CIN contained in ASIO.vi if the name of the ASIO 2.0 compliant driver in the Windows Registry does not match that hard coded into the ASIO CIN.

 

0 Kudos
Message 8 of 18
(6,154 Views)

Hello Ben,

Is there any possibility of open sourcing the old work? 

I'd be interested in contributing to a project to bring the software up to date.

 

Regards,

Will.

0 Kudos
Message 9 of 18
(5,871 Views)

Please contact me at bkslasi@email.arizona.edu.

0 Kudos
Message 10 of 18
(5,861 Views)