Writing waveforms from Ch. 0 of niSCOPE to binary file in a multi-record setup?

Hello,
I am not very experienced with niSCOPE and writing waveform records, so I need some expert help here.
Here is my application:
I am generating a pulse train using a 6602 counter/timer. Each rising edge of this pulse train triggers an niFGEN to generate a single sawtooth waveform output to another device and, at the same time, acquiring data from Ch. 0 of an niSCOPE. I am fetching one record per rising edge of the pulse train for the niSCOPE (multi-record setup).
The attached VI is where I am at thus far. All triggering and reading/fetching of the waveforms seems to be working just fine when testing with an oscilloscope. I now need to save each waveform record along with the timestamp of its rising edge trigger to a binary file. The bottom of the VI is where my attempt is at saving the waveforms to a binary file, so the attention should be there when looking at it.
I am running LabVIEW from a computer connected to the NI PXI-Chassis using a cross-over cable.
Questions:
1.) Do I need to convert the data coming in on Ch. 0 of the niSCOPE to digital? Does it come in as analog from an oscilloscope? If I need to do this, how can I accomplish this?
2.) When I try to run an example VI to write a waveform to a binary file by choosing "My Computer" in the bottom left of the VI window, it works it saves the file just fine. When I change this to run on "PXI2", a file is not even created and I get an error on File Dialog (code# 7, I think) each time the file is attempted to be closed. This may be a stupid question, but why can I not save data to a file on my computer if running the VI on "PXI2"?
3.) Assuming the saving of each waveform to a binary file is working (read: (2) is successfully addressed), how can I also write the timestamp of the starting trigger for the waveform along with the waveform in the binary file? An example VI of how I can accomplish this would be fantastic, but I haven't been able to find one thus far.
4.) When I was messing around and trying to accomplish this, it seemed that doing this writing may slow down the entire process too much. I need to record data to the extent of the sawtooth waveform generated by the niFGEN AWG for each trigger. Is there any changes I should make to my acquisition process in the niSCOPE section so that I can read each waveform, along with keeping the timestamp for each, and write this information to a binary file?
I need to get this working quickly, so any help on this is greatly appreciated. Thanks in advance.
Attachments:
5124_update.vi ‏157 KB

Thank you so much for your reply, David. Let me try and explain my
situation and setup a little better, as well as discuss the points you
made in your reply. Beware, you may want to refill your coffee as this
post is long .
I am using an embedded controller in a PXI-1044 chassis. I now have the
chassis hooked up to our local network, and I am deploying my project
to the chassis over the network as I am also connected to the local
network. I have an oscilloscope next to me that takes as input the
pulse train for a trigger and the generated sawtooth from the niFGEN
for each trigger (rising edge of the pulse train from the 6602
counter). Just to make sure synchronization is taking place, the
sawtooth is also fed as input to the niSCOPE for acquisition.
"PXI2" is what shows up when I choose to run a VI on the PXI chassis
rather than "My Computer"; not sure why the 2 is there either, but that
is what it says. I may have tracked down the issue I was having with
writing, but more about that a little later...
The attached VI is an update, although not much has changed. My
application design is like this (keep in mind that some values for VI's
are still constants in the block diagram while others are controls on
the front panel): I am using the 6602 to generate a 1 KHz pulse train
and routing this pulse train to PXI_Trigger0/RTSI0. I am also using the
PXI_Clock (10) as a sample clock for this, and also using this same
clock as the reference clock for both the 5422 and the 5124 (as per the
synchronization help file mentioned for synchronizing multiple
devices). Both the 5422 and the 5124 are triggered by a digital rising
edge (from the pulse train) on PXI_Trigger0/RTSI0 (as it was routed
there). For each trigger, the niFGEN generates a sawtooth waveform
using a stepped trigger mode and outputs it. For each trigger, the
niSCOPE acquires data. They are both synchronous, which is tough to see
since one has its trigger source on the front panel and the other has
its trigger source on the block diagram. All devices use PXI_Clock so
they are synchronized.
The expected behavior is to only generate a single sawtooth waveform
per trigger with a certain number of sample points. I want to acquire
the same number of samples using the niSCOPE, which is what I meant by
"the extent of the waveform" in my previous post. So, should I change
the 8192 to 1000 for the number of samples for the niSCOPE? What would
you recommend for the sampling rate? I have been using 5 MHz for the
niFGEN and 5 MHz for the niSCOPE...this is how it should be done,
correct? If it is different in the VI, please let me know. For some
reason, I have to adjust all of the values each time I open it since
the default values are not the ones I want.
I want to generate and acquire one waveform per trigger (one waveform
per record). However, I want to be able to record a large number of
records so I have enabled the circular buffer-like treatment of the
acquired waveforms. The 100 or 1000 records is actually just a number I
am giving it for now to make sure it is working before recording many
more records.
As for saving the niSCOPE data, I would like to save all data in a
single file that is NOT ascii (to save space). I have been looking at
the HWS file format, and would like to use it. I think the attached VI
includes this at the bottom of the while loop. For each trigger, I
would like to save the time (as accurate as possible) that the trigger
occurred for the record/waveform, which appears to be (absoluteInitialX
- relativeInitialX) as you said in your post (thanks!). I just need to
store as much information about the waveform and time information for
it as possible with the waveform in the file. So it looks like I will
need to use the wfm info for that information, providing portions of it
as waveform attributes in the HWS VI's?
What format of data do you recommend I fetch, and will I be fetching a
"Single waveform" or "Multiple waveforms"? Should I use I32, DBL, WDT,
or other for the format? A balance between good precision in values and
time it takes to fetch/record would be best.
Given all of the above, I am having one troube with saving data to a
file. As a reminder, I am deploying the project to the chassis over the
network. When I choose a location and/or file to save the HWS data to,
I only get choices that are on the PC's hard disk (such as C:\Documents
and Settings\cgifford\...) NOT the chassis's hard disk. When I choose
something other than "C:\" I get an error that the file could not be
opened. However, when I choose "C:\" everything goes fine. The saved
data is nowhere to be found on my PC though, so I am assuming that it
is being stored on the internal 60G hard disk in the chassis that must
be named "C" by default or something!?
I have been told by phone support that I should be able to make a
direct connection with the chassis just like another PC, and should be
able to access the information on its internal hard disk in a drag and
drop fashion. I however cannot directly connect to the PXI chassis to
get the data that has been saved on the hard disk. We are running
Windows XP on the PC. We did some poking around and noticed that the
chassis is not running Windows file sharing, and only has ftp and http
running. We tried to access it using ftp, but we didn't have a username
and password to supply it. So, how can we enable Windows file sharing
on the chassis? How can I connect to it to do drag and drop to get
saved waveform data off of it? This is the main problem I am now
facing. Eventually we would like to store data to an external hard disk
connected to the chassis, which assumes that I can have access to the
internal storage to tell it to save files to the external hard disk.
For now saving it to the internal hard disk is just fine until
everything is proven to work, but I would like to get the data off of
the internal hard drive to put on another computer.
Any answers/suggestions on my above questions are greatly appreciated.
I also want to thank you for reading this long post . I eagerly await
a reply. Thanks again in advance.
Chris
Attachments:
5124_update.vi ‏143 KB

Similar Messages

  • Writing data from two different acquisition rates into one file

    Hi,
    I'm using a compactRIO, and I have an anemometer outputting data at 4Hz to the serial port on the controller, and I am using a 9237 module to read strain from two channels at 40Hz. I would like to record all this data in one file, but I'm unsure how to have the data points match up with respect to time since they are read at different rates. Basically I have 10 strain data points for every one anemometer data point, but that one data point needs to somehow be associated with the other 10 read in the same amount of time. It would be okay to "extend" the slower data to the 10 strain points, and likewise to the next ten when the anemometer refreshes its values.
    Thanks for any input!
    Andrew

    Check out the Queue multi-plexer vi from the examples.  C:\Program Files\National Instruments\LabVIEW 2009\examples\general\queue.llb\Queue Multiplexer.vi
    If each data acquisition loop enqueues data to one file writing loop the data is writen in order.  Queues are really a good way to multiplex data sources 
    Message Edited by Jeff Bohrer on 01-29-2010 09:44 AM
    Jeff

  • Writing waveforms to file

    I'm having problems writing waveforms to a file.
    I have a very simple VI in which I've used the DAQ assistant to acquire two voltage signals. I would like to read that data to a file, but it seems to only write the amount of data that I specify in the "samples to read" field when I use "continuous samples" acquisition mode. Is there a way to just read a continuous amount of data without specifying the amount of samples to read? When I put in a very large number for "samples to read" i get an error. It seems strange that one has to specify the number of samples to read in a continuous reading mode, so there is something that I am missing here.
    Thanks.

    Mw1,
    The way a DAQ application works is that if you select continuous samples, the DAQ card will acquire data continuously and the samples to read determines how many samples are pulled into LabVIEW from memory. What I suspect is happening with your program is that you do not have the DAQ assistant in a Loop and therefore it is only being called once, in which case it makes sense that your are only writing to files the amount specified in samples to read. For you to continuously write samples to a file, you would have to place your DAQ assistant VI in while loop.
    To give you a more specific example, say you have set-up the DAQ assistant you acquire at 1KHz and the samples to read to 100. In this case the DAQ card will acquire continuously 1000 points every second and storing them on a buffer. Every time the DAQ assistant is called, 100 samples are read from the buffer into LabVIEW. Putting the DAQ assistant in a Loop means that you would continuously be reading "chunks" of data out of the buffer and into LabVIEW.
    Eli S.
    National Instruments
    Applications Engineer

  • Trouble capturing waveform from PXI-4472

    I'm really a very green newbie at this stuff, so bear with me...
    I've got a PXI-4472 data acquisition board and a PXI-5411 waveform generator. I've connected the arbitrary out of the 5411 to the channel 0 in on the 4472. An external oscilloscope shows a 1v-amplitude sine wave being generated.
    I created a very simple VI to show what the 4472 is capturing. It connects a NI-DAQ channel I generated to the standard "AI Acquire Waveform.vi", then out to a Waveform Chart, all within a while loop with a Stop button. Problem is, all the waveform chart seems to be showing is the running average of the waveform instead of the form itself (solid line, a tad above zero).
    I can hook the 4472 input channel up to a DC-out power supply, a
    nd when I vary the voltage, the waveform chart changes as well.
    So my question (whew!): What's wrong here that's not allowing me to capture a waveform from the 4472 (in turn from the 5411) and display it on my waveform chart?
    Thanks in advance for the help.

    Never mind.... it was a sample rate problem. I upped the sample rate and it came out ok.

  • When I record an audio track, there is a waveform. When I stop recording, the waveform disappears and becomes a straight line. It also disappears from the track edit window. But the sound is there. How can I stop the waveform from disappearing?

    When I record an audio track using Logic Pro X, there is a visible waveform which appears as I record. When I stop recording, the waveform disappears and becomes a straight line. It also disappears from the track edit window. But the sound is still there. How can I stop the waveform from disappearing? And can I do something to view it after it has disappeared? Anyone know the anser?

    In Logic:
    Preferences/Audio Set Recording Delay to 0 <zero>
    This should always be set to zero unless a specific set of circumstances exist and you're audio drivers do not report position correctly.
    On occasion, usually when importing a Logic 9 project, Logic-X randomly changes this to a negative/positive number.  It's actually a bug in Logic, as it should always display the waveform.

  • Writing data from Java to Excel

    Hi,
    I am trying to writhe data from Java to an Excel Sheet by using JACOB.
    This is my code :
    import java.util.*;
    import java.io.*;
    //import cost.util.*;
    import com.jacob.com.*;
    import com.jacob.activeX.*;
    class XLStock
         public static void main(String argv[])
              XLStock xls = new XLStock();
              xls.main2(argv);
         public void main2(String argv[])
              System.setSecurityManager(null);
              System.runFinalizersOnExit(true);
              Vector v = new Vector();
              XLSPutItem pi;
              String sheetfile = null;
              ActiveXComponent xl;
              Object xlo=null;
              Object workbooks;
              Object workbook;
              Object sheets;
              Variant vOptn = new Variant();
              vOptn.noParam();
              try
                   xl = new ActiveXComponent("Excel.Application");
                   xlo = xl.getObject();
                   Dispatch.put(xlo, "Visible", new Variant(true));
                   xl.setProperty("Visible", new Variant(true));
                   workbooks = xl.getProperty("Workbooks").toDispatch();
                   Variant vTemp = new Variant(argv[0]);
                   workbook = Dispatch.invoke(workbooks, "Open", Dispatch.Method,
                        new Variant[] {vTemp, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn, vOptn},
                        new int[1]).toDispatch();
                   sheets = Dispatch.get(workbook,"Sheets").toDispatch();
                   pi = new XLSPutItem();
                   if (pi.Parse("1:A1;ciao;6"))
                        v.addElement(pi);
                   for (int i=0; i<v.size(); i++)
                        pi = (XLSPutItem)v.elementAt(i);
                        pi.sheet = Dispatch.invoke(sheets, "Item", Dispatch.Get, new Object[] {new Variant(pi.sheetNumber)}, new int[1]).toDispatch();
                        pi.cell = Dispatch.invoke(pi.sheet, "Range", Dispatch.Get, new Object[] {pi.cellName}, new int[1]).toDispatch();
              catch (Exception e)
                   e.printStackTrace();
              pi = (XLSPutItem)v.firstElement();
              Dispatch.put(pi.cell, "Value", "ciao");
    What happen is that my code always fail at this line :
    xl = new ActiveXComponent("Excel.Application");
    whit this error :
    C:\VJWorks\JNI\jxls>java jxls.XLStock
    com.jacob.com.ComFailException: Can't co-create object
    at com.jacob.com.Dispatch.createInstance(Native Method)
    at com.jacob.com.Dispatch.<init>(Dispatch.java)
    at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java)
    at jxls.XLStock.main2(XLStock.java:53)
    at jxls.XLStock.main(XLStock.java:28)
    Exception in thread "main" java.util.NoSuchElementException
    at java.util.Vector.firstElement(Vector.java:450)
    at jxls.XLStock.main2(XLStock.java:79)
    at jxls.XLStock.main(XLStock.java:28)
    I task that something is wrong in my system configuration.
    I work on a Win2000 platform and Office 97.
    Someone knows the reason of this error and can suggest what to make.
    Thanks in advance.
    Antonio M.

    Antonio, maybe you can post this back to the Jacob list. As an alternative to Jacob, what about Apache POI or writing the data as comma-delimited and opening the file using Runtime?
    Hope that may help.
    Good luck.

  • Create waveform from a set of points with differtent time intervals

    Hello,
    I would like to create a waveform from a set of points like this
    Time           Data
    0                 0
    0,5              1
    0,6              2
    1                 1
    2                 0
    5                 1
    The problem is that the time interval between each points are not the same.
    The only idea I found was to create a waveform for each doublet of points with the same rate (100ms) and than to append them together.
    Does anybody have a better idea?
    Regards,
    Risotto.

    If you use a Wave From data type, re-sampling is not required.
    When using a WF datatype the chart (graph) will pick-up the X value from the t0 of the waveform.
    The trick is to just build an array of the single update value and make sure the t0 value is correct.
    Re-create this example
    and try it for yourself.
    Ben
    Note: make sure the data you pass is consistant with the data already displayed. If you post a t0 value that is older than what is already displayed, the chart will clear the display and start over.
    Message Edited by Ben on 09-15-2006 11:49 AM
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction
    Attachments:
    WF_Datatype.JPG ‏59 KB

  • Get waveform from TDS2012

    Hello,
          the attachment is an example whose function is to acquire the waveform from an oscilloscope  from a reference book. Now I'm wondering whether the waveform displayed in the waveform graph is just the waveform the oscilloscope acquires. My oscilloscope is TDS2012. I connect the oscilloscoe probe to the channel 1 input connctor.Attach the probe tip and ground lead to the PROBE COMP connectors.The  PROBE COMP signal is a square wave with a frequency of 1KHz and a peak voltage of 5V. If I choose channel 1 as the trig source, and let the programme run for 1000 times,it will take more than 1minute to complete this task. I just want to know whether the  waveforms  refreshed in the waveform graph are generated by the source during the  1 second since the programme starts.
    Attachments:
    get waveform from an oscilloscope with VISA function.vi ‏17 KB

    Hi yaoyao,
    Your question all depends on the behavior of the CURVE? command.  If it generates a new acquisition each time it is called, then you should be seeing 1000 different waveforms.  If CURVE? simply transfers the existing waveform without initiating a new one, you will be transferring the same waveform 1000 times.  The programming manual should have more details about the behavior.  You may need to call
    You should look at the LabVIEW instrument driver that we have for this instrument:
    http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=047216EC20B66FABE0440003BA7CCD...
    The instrument driver should simplify programming and you can look at the block diagrams to see which instrument commands are being sent.

  • Derivate a waveform from a Function generator

    I want to use the derivate of a waveform from a Function generator in a Formula node,  but unfortunatelly I dont no how can i do this. I need the exact value of the derivate ("qpg" input variable) to use in the equation in the Formula Node.
    I found a Derivate sub VI, but it gives me the derivate as a vector so i cant wire it as an input to the Formula node.
    I attached pictures about my VI.

    As I understand it, you are using a Waveform Generator VI, and want (in addition to the Waveform) an additional output that is (an estimate of) the derivative of the Waveform.
    If you consider the Waveform Generator as a "black box", something whose internals you don't know, but something that produces a new output every delta-t time increment (I'm going to call this "dt"), then you really do need to estimate the derivative.  Note that since you cannot "predict the future", to estimate the derivative, you need the current data and previous data.  One very common estimate for the derivative x'(t) at time t is (x(t) - x(t-dt))/dt, that is, the difference between the current point and the previous point, divided by the time increment.  For a waveform generator, this will probably be a pretty good estimate, as the data should be relatively "smooth" and noise-free.  Do note, however, that this estimate is really over the time interval t-dt and t, so you could consider it shifted backward in time by dt/2.
    If you want a more accurate estimate of the derivative, one "centered" on the current time, t, then your formula needs to take into account not only the current value and past values but also future values.  This is the reason many "derivative functions" use vectors, as this contains past and present values (with some worry about what to do at the beginning and end of the data).
    On the other hand, if you are generating the data yourself (that is, if you have a VI that you input t and it outputs f(t)) and you have a "nice" function f (say a sinusoid or other non-random function), you can get the "exact" derivative just by programming it.  For example, if f(t) = sin (omega * t), then f'(t) = omega * cos (omega * t).
    Bob Schor

  • How to save a waveform from TDS3000 series oscillosco​pe to PC via GPIB?

    Hi, I'm a summer intern and I've been recently assigned the task to transfer a telecom pulse mask waveform from a TDS3054 to the PC via GPIB. My question is, is there anyway that I can save the waveform on the scope and transfer the file onto my PC? Or even better yet, save the waveform directly onto my PC in a spreadsheet format?

    First, download the instrument driver for the TDS3054 scope from National Instruments' Instrument Driver Network. Depending on what software you have installed on your system, you may need to download additional software (look at the "Required Software" section). If you have Measurement Studio 6.0 and the NI-GPIB driver, you should have everything you need.
    Once you've installed the instrument driver, look at the instructions that came with the instrument driver for how to save and read from your oscilloscope, and look at the instructions here for how to use that instrument driver with Visual Basic 6.0.
    TonyH
    Measureme
    nt Studio

  • Read waveform from file error: end of file

    Hi,
    I want to to save waveforms from DAQ and then, after the acquisition is stopped, I want to see again that waveforms to analyse my data.
    I tried to do a simple VI in which simulated signals can be saved to a file and can be read drom that file too. This is possible by using a Save Button and a Read Button. The problem is that when the Save Button is OFF and the Read Button is ON the error "End of file" occours, even if I know that there are more data that can be read from the file.
    I read from
    http://forums.ni.com/t5/LabVIEW/End-Of-File-Error/m-p/387817#M193812
    that this could be solved by choosing the option "Reload for each call" for the Read block, but it doesn't seem to work.
    Does anyone have an idea to solve that?
    Thanks
    Attachments:
    waveform write and read.vi ‏71 KB

    First, a suggestion -- since your file name is the same every time, put a single instance of it outside your While loop and bring it into the loop as a "tunnel", using the same wire for all your Case statements.
    I don't understand the logic of your construction.  You have a While loop that never stops.  As long as "Write" is true, it writes to a (new originally?) file, presumably appending at the end, closing the file after the write.  If Read is true, it tries to read the i-th Waveform.  What if there are less than i writes?
    Why not simplify things.  Remove the While loop, remove the Case Statements and Read/Write buttons, and simply do one Simulate Signal, one Write, and one Read (not wiring anything into the Read's Record selector).  Does that work?  If so, then think about how you might extend this to handle multiple reads and writes.  Is there ever a situation when you envision doing Reads while you are also doing Writes?  Isn't it more likely that, at any instance, you are going to be doing only Writes (for example, while generating data) or only Reads (while analyzing the saved data)?  [I'm not saying that you might want to do both simultaneously, but if you don't have to, don't complicate things for yourself].
    Bob Schor

  • Error in acquiring waveform from the agilent 54621A oscillosco​pe .

    error  1074003951 occurs when  acquiring waveform from  the agilent 54621A oscilloscope.
    I have installed
    agilent 546xx series instrument driver
    NI VISA 14.0

    The *IDN command is sent and i have chequed the VISA read it returns the correct string .The error still exists i have attached the block program
    Attachments:
    AGILENT 54621A Acquire Waveform.vi ‏16 KB

  • Missing Audio waveforms from Project window

    I'm hoping anyone can help me.  I'm trying to customize volume within a range of a song.  I've dragged the audio into my project timeline, however no matter what I try  I cannot get the waveform to appear.  I've tried absolutely everything I can think of including reverting layout of the project window. 
    I've worked with audio in projects before and feel I have a fair bit of experience with it but this one has really baffled me.
    As you can see from the image attached, waveforms from other audio clips are showing up just fine but the song running along the bottom, no workie. 
    Any help would be greatly appreciated.
    FCP X 10.0.5
    ML 10.8.2
    MBA 13inch June 2012

    Karsten Schlüter wrote:
    •you should re-name it (before importing to FCPX) - that "." could cause issues.
    (avoid any characters that have a 'function' in Unix, such as . : / )
    A period only has a UNIX function if it is the FIRST character in the name! (hide file from Finder view), so that is not the issue here. ;-)
    And Tom, why should the audio be AIFF?? I drag mp3/m4a files from iTunes ALL the time, without any issues - FCPX even has a native, build-in iTunes browser, so requiering AIFF seems strange, unless FCPX transcode it when it's dragged in!

  • Acquiring a waveform from the input channel

    Hi, while I am trying to acquire teh waveform from the input channel,
    it is not showing up in Labview "waveform graph", but the same
    waveform is seen on the oscilloscope. I am using NI PCI 6052-E DAQ
    board.

    Greetings Amu,
    How have you configured the PCI-6025E? Is it configured for
    differential readings or single-ended readings?
    By default, the configuration of the device will be differential,
    which means that two input channels are used for every input signal.
    When configured in differential mode, you need to connect the positive
    terminal of the signal to channel X and the negative terminal of the
    signal to channel X+8. For reading a differential signal from channel
    0, you will connect the positive terminal of the signal to channel 0
    (pin 68) and the negative terminal of the signal to channel 8 (pin
    34).
    I would suggest to use the Measurement and Automation Explorer (MAX)
    software to test the signal before going to LabVIEW. Open MAX and go
    to the devices and i
    nterfaces folder. The PCI-6052E should be located
    in this folder. Right-click on the PCI-6052E and select test panels
    and you will be able to test the input signal here. You can change
    the mode to continuous and set an sampling rate in the test panels as
    well.
    Once you can view the signal in the test panel of MAX then I would
    suggest to move to LabVIEW. Search for the shipping example entitled
    'Cont Acq&Chart (buffered) VI' which is a continuous analog input
    example. Select the device number, channel number, and scan rate and
    run the VI.
    For more information on connecting your signals to the PCI-6052E I
    would suggest to refer to chapter 4 of the user manual. I've linked
    it below for your reference.
    NI 6052E User Manual
    http://digital.ni.com/manuals.nsf/webAdvsearch/552436964E347DAF86256BDE00670E9B?OpenDocument&vid=niwc&node=132100_US
    I hope this helps.
    Let me know if you have any additional questions regarding this issue.
    Regards,
    Todd D.
    NI Applications Engineer

  • Draw an audio waveform from recorded sound

    I have problem with draw static waveform from recorded sound. Here is an example of which I wanted to use: http://cookbooks.adobe.com/post_Draw_an_audio_waveform_from_an_MP3_file-16767.html
    Here is an excerpt of my code, where the recorded sound, and I play it:
        public function startRecording():void
                    stop.enabled=true;
                    soundClip = new ByteArray();
                    microphone = Microphone.getMicrophone();
                    microphone.rate = 44;
                    microphone.gain = 100;
                    microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, microphone_sampleDataHandler);              
                public function stopRecording():void
                    play.enabled=true;
                    microphone.removeEventListener(SampleDataEvent.SAMPLE_DATA, microphone_sampleDataHandler);
                    level.width = microphone.activityLevel * 0;
                    level.height = microphone.activityLevel * 0;
                protected function microphone_sampleDataHandler(event:SampleDataEvent):void
                    level.width = microphone.activityLevel * 1;
                    level.height = microphone.activityLevel * 1;
                    while (event.data.bytesAvailable)
                        var sample:Number = event.data.readFloat();
                        soundClip.writeFloat(sample);
                public function startPlaying(soundClip:ByteArray):void
                    this.soundClip = soundClip;
                    soundClip.position = 0;
                                    sound = new Sound();
                    sound.addEventListener(SampleDataEvent.SAMPLE_DATA, sound_sampleDataHandler);
                    channel = sound.play();
                protected function sound_sampleDataHandler(event:SampleDataEvent):void
                    if (!soundClip.bytesAvailable > 0)
                        return;
                    for (var i:int = 0; i < 8192; i++)
                        var sample:Number = 0;
                        if (soundClip.bytesAvailable > 0)
                            sample = soundClip.readFloat();
                        event.data.writeFloat(sample);
                        event.data.writeFloat(sample); 
    Is there any other way than to save the recorded sound as mp3 (which will also be complicated), or can I use this example given and work on ByteArray? I tried to redo it a little, I'm sitting on this already a lot of time and unfortunately to no avail. Any ideas? Tips?
    I would like to compare the recorded sound with the original. Draw waveform will be the first step. Maybe you also have some tips of how to compare the two sounds?
    I would be very grateful for every answer,
    Lilly

    Maybe not related to your problem, but your plugins list shows outdated plugin(s) with known security and stability risks.
    # Shockwave Flash 10.0 r32
    # Next Generation Java Plug-in 1.6.0_17 for Mozilla browsers
    Update the [[Java]] and [[Falsh]] plugin to the latest version.
    See
    http://java.sun.com/javase/downloads/index.jsp#jdk (you need JRE)
    http://www.adobe.com/software/flash/about/
    See [[No sound in Firefox]] and [[Video or audio does not play]]

Maybe you are looking for

  • Mapping condition in multi mapping

    Hi Experts, I have a 1:n multimapping where I have a mapping condition such that If the field is empty ith should throw an error. At the same time the n-1 records should be processed... The UDF i have used is if (a == "") throw new RuntimeException()

  • GR Document number & posting date in drill down option? (Reporting)

    Dear Experts,                       As im new to reporting,i had a requirement from my client..the question is This is with regards to report Order Values on Posting Date (0PUR_C01_Q00021)  Can you add GR Document number & posting date in drill down

  • Mail invisible

    Hello I have 4 addresses in my inbox that I receive mail in. They show mail that there is mail in them with the number of messages. But the field with 'from', subject, date received have no emails shown. So mail is in there but I can't get to it, unl

  • RMI stuck while transfering a file

    Hi! On RMI server side I have an object that reads a file and sends it to RMI client a an byte[]. For example on Windows if I look under Networking tab in Task Manager I see that the network in transferring something. Sometimes (I'm not sure when, bu

  • Java IDE survey

    Hi I am trying to learn Java SWING and wonder which IDE is better when comes to SWING programming. I am looking at JBuilder and JDeveloper. Which is better?