Showing results for 
Search instead for 
Did you mean: 


Hello there,
I am quite new to LabVIEW andNI devices.
I am working on Active Noise Cancellation Project, where I will be using two microphones input and one loud speaker as output. I have NI myRIO 1900 and CDAQ 9178 devices in our university lab. I need to do real time audio processing, I will collect data from microphone and process it using filtered XLMS algorithm to produce anti noise from loud speaker and other microphone is error microphone. I want to process data so quickly( within 1.7 msec ) so I will have real time response at 44100 sample rate !! My question is , 'is it possible to do with labview ?? and is stream processing possible in labview and with myrio?? and can I achieve so small audio latencies as mentioned above ??'

I have searched for audio processing objects in labview help. I can only find 'Acquire Sound', 'Play Waveform', surprisingly 'Acquire Sound configuration ' will work only for duration of minimum of 1 second not less than that !!! I can't input the time milli seconds !!!( I am still facing problem installing myRIO, so I have used host computed VI to do this.)


Please Help ! 

Thank You.

0 Kudos
Message 1 of 9

I haven't worked a lot with myRIO, but (based on my experience with LabVIEW RT on PXI systems and some familiarity with the RIO architecture) I can give you some hope (until someone more knowledgable says I'm wrong):

  • The myRIO runs a version of a Real-Time OS, meaning you get to set the processing priorities.
  • The Audio In is an Analog Input channel, so (in principle) you should be able to handle it with DAQmx functions to simply take analog samples.
  • If you were to take 44 samples at 44.1 KHz, you would have a set of samples every millisecond.
  • Setting up a Producer/Consumer Design Pattern would allow you to process, in parallel, the acquisition of one sample set and the processing of the previous sample set, what you call "Stream Processing".
  • The myRIO is built on a FPGA architecture.  In principle, you could achieve even greater speed by programming directly on the FPGA.  I've done almost no FPGA programming, but know that this allows you to truly process multiple streams at the same time by effectively creating multiple "mini-CPUs" inside the FPGA chip.  [FPGA afficianados -- please forgive my simple-minded analogy].

I was going to suggest that you consider posting on the myRIO Forum, but I couldn't find such a Discussion Group here.  However, searching here for myRIO and on the Web should yield other sources of useful information.


Good luck with your project.  You should learn a lot!


Bob Schor

Message 2 of 9

@Bob_Schor wrote:

I was going to suggest that you consider posting on the myRIO Forum, but I couldn't find such a Discussion Group here.  However, searching here for myRIO and on the Web should yield other sources of useful information.


myRIO is grouped with other Academic Hardware Products forum

0 Kudos
Message 3 of 9

Thanks for the reply Bob_Schor, I will consider consider working with FPGA as I am very new to labVIEW and NI, I might have to read more .

The reason I posted here is the LabVIEW audio commands "Acquire SOund" and 'Play Waveform', If these are only two commands available for audio processing and Acquire sound can only process sounds lasting more that 1 second !! (it will acquire the sound for 1 second and then process it) , I cant go below 1 second.Then how the Stream Processing will work theoretically?? 

     Now I can now only work on Host VI not myRIO FPGA VI. I dont think this will change the command configuration much !!! 

0 Kudos
Message 4 of 9
Do you have the Sound and Vibration Toolkit?
Message 5 of 9

NO , I don't have it !! Can you explain how it is useful for my Project. 

0 Kudos
Message 6 of 9

All add ons seems very costly 😞

0 Kudos
Message 7 of 9

@charansai wrote:

All add ons seems very costly 😞

No add-ons are needed for a noise cancellation.  All you do is read two channels (one being your sound source and another being your noise input) and subtracting the two and playing the output through another channel.  If it were up to me, I would do all of this in the FPGA.  But there are plenty of libraries for the myRIO for getting the two channels' data and writing the result to an output.

There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 8 of 9

Add Ons (or Toolkits as they are also called) have a price, that's true. Most toolkits do contain code which is written in LV itself, so essentially you can implement the functionality on your own as well.

But consider the time and expertise you need to do so: That cost you (your employeer) a lot of money!

In most cases, purchasing a toolkit is overall the cheaper solution...



CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 9 of 9