Fgen : Synchronisation + Delay insertion

Hello everybody !
I have a PXI system in which I have a 5422 FGen allowing me to generate a "10 periods sinusoidal burst".
The 5422 FGen also has the following connections : ch0 ; Clk in ; PFI 0 ; PFI 1
I would like to insert a "timing reference" signal (in PFI0 e.g.) and generate my burst "x" ms later. Is there a function directly related to the fgen allowing to perform such a thing (synchro + delay) ? Do I have to use DAQmx possibilities (I must admit I am a little bit lost with the DAQmx functions ...).
Here is the part of my code  where I assume I could insert the function I am looking for.
Can anyone help me ? Thank you in advance !
 

Hi Collin !
Please find my answers in this post in green.
Is there any way to connect the output to that oscilloscope? To verify with the same system if it gives the same output?
Since the "NI TClk Initiate.vi" provides from using the "scope read.vi", this is quite tricky. I am forced to use the "scope fetch.vi" in order to collect data and this provides me only one frozen graph while the vi is running. However, it is already possible to see that the burst is not generated with a constant time delay from the original pulse, anyway.
Also, if you only send the burst, so with no trigger and no original pulse, what is being displayed in labview?
The expected burst, without any problem. May I add 2 things :
1) The graph contained in the "actual" video is not in LabVIEW (but in Tomoview, the software used to control the DUT and to display the data).
2) The burst observed in the video is rectified.
To me it seems that the burst is not equal to the frequency of the original pulse, and thus generating time difference for display. But on the expected video it is. What do you think of this?
Indeed, that's the problem. On the "expected" video, we used a tektronix generator synchronized via its "trigger channel" and that was it ! With NI material, triggering just seems to start the signal generation but it doesn't necessarily implies that the signal generated will be synchronized with the triggering signal, just like if a kind of "repetition frequency" should be tuned as well. If yes, how can we do this ?
I think we should start to verify exactly what is being output on both systems and compare that. Also try to output only one and when those are correct lets try to synchronize them. But first verify without triggers and sync. if they output correctly.
According to the answers above, I think the outputs are understood correctly and I would rather say there is a poor management of "triggering and synchronization" from my side ...
What do you think ?
Kind regards,
Geoffrey

Similar Messages

  • Event structure freezing when short delay inserted

    Well, the simple stuff in LabVIEW I can do, but I'm still struggling to get my head around the concept of "Events" and how LabVIEW handles them. If I only have one type of event (i.e., pushing a button out of several on the UI, or reading a serial input and handling it programatically), I think I'm good. But my application requires me to be able to handle either of these at the front panel.
    Going through the LV Knowledgebase got me this link (it's a little old - LV8.6, but seemed to handle the basics), from which I downloaded "events.vi" (attached). My situation is a little different, so I modified it a bit to "EventExperiment.vi" (also attached) to have a bare-bones template I could use for my application. If I run it as shown, it seems to run fine (with a serial input, the "1" and "2" lights turn off, but the Bytes at Serial Input indicator always shows "0" and the "Serial Indicator" light never lights - I am assuming that these change and revert too quickly to see in the UI). My concerns with my VI are:
    If you add a short delay in the processing of the serial input event (say 1 second delay in that event case, or even a 1 second delay subVI after the serial flush connected through the error line), the VI accepts no further UI input after the first serial event.
    If you add an error wire through all the events subVIs (whether you merge this wire with the one going through the serial subVIs, the program just hangs up.
    And, one little bothering thing is that the original "events.vi" takes three presses on the "stop" button to close. I'm figuring here that it's because of those local variables being passed between loops, but it hasn't been enough of a bother to worry about.
    Your help is greatly appreciated,
    Cameron
    To err is human, but to really foul it up requires a computer.
    The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
    Profanity is the one language all programmers know best.
    An expert is someone who has made all the possible mistakes.
    To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):
    LabVIEW Unit 1 - Getting Started
    Learn to Use LabVIEW with MyDAQ
    Attachments:
    events.vi ‏24 KB
    EventExperiment.vi ‏25 KB

    Well, I thought I'd add a final post for some closure to this one.
    To summarize what I was trying to accomplish: I wanted to have some kind of an event structure where you could use both regular User Events (button pushes, numerical control changes, etc.) and an outside (non-keyboard/mouse/touchscreen) event, like a serial character coming into a COM port, to initiate an action. This was to eliminate a loop where the computer would be polling the COM port continually at a pretty fast rate. (I must have read a hundred times in the past month that you don't want to run a While loop for polling if you can help it.)
    It turns out (after a couple of confusing days, I talked with the NI service engineers) that you can't do this. In order to detect a character at a COM port, you have to be polling the port periodically with a Read and look for a change in the bytes available or another parameter. You can do this through a timed loop separate from your Event loop or through a Timeout event case inside the loop, like Don_Phillips suggested.
    However, I believe I'll go the separate loop route, since my head's actually more comfortable with it than the Timeout route.
    Thanks, folks, for your help,
    Cameron
    To err is human, but to really foul it up requires a computer.
    The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
    Profanity is the one language all programmers know best.
    An expert is someone who has made all the possible mistakes.
    To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):
    LabVIEW Unit 1 - Getting Started
    Learn to Use LabVIEW with MyDAQ

  • Insert Delayed?

    I had a thought this afternoon while I was considering performance issues with ADDT as to whether or not MySQL delayed inserts are supported. does anybody know yay or nay before I investigate further?
    I don't think it would be that hard to add as a feature if not. A new method could be added to the tNG_insert transaction object and accessed like....
    $ins_dbTable->setInsertMethod("delayed");
    this would default to "standard"
    The reason i'm after a delayed insert is for things like a stats counter when users view products. inserting a stats row isn't mission critical so it doesn't have to be transactionally safe and anything to speed up views has to be a good thing.
    Feature suggestion for the team?

    Hi Gunter,
    That is not the functionality I am looking for. Using the sleep() function in a before trigger will slow down the execution.
    The purpose of INSERT DELAYED is to fire off an INSERT statement to MySQL blindly without acknowledgement that it has actually taken place. It is immediately queued up to be inserted when the db table becomes free, thus not delaying the scripts execution.

  • Grrrrr Logic Pro won't update & What is up with my Tape Delay!!!!!

    Right, i'm finding posting on this Forum intensely annoying already!!!
    Anyway, can anyone tell me why when i try and update from Logic Pro 7.1 to 7.1.1 it won't let me do it? .....i download it....unstuff it .....and when i click to launch it's says it doesn't recognizea valid version of Logic Pro....yet updating to 7.1 was no problem.
    Also, my Tape Delay will not delay consistently ....as the song position indicator passes a region with a tape delay insert ....there's no delay ...then suddenly it kicks in ...out of time/sync with the rest of the song .....it's driving me up the ******* wall!
    no seems to have the same problem .....surely its not processing power although have realised that Apple did not make Logic to run on a normal or dual G4 which i'm currently running

    the other thing re your upgrade problem is: what exactly is the error message? is it totally telling you that it cannot find a logic to upgrade, period? or is it saying that it has found a more recent version already installed? if the latter, you can ignore the error message and just go ahead and install.. the error message is bogus.
    if not.. then I'm not sure what to suggest. all I know is that the app has to be left as is, and where it is, not even so much as put inside a little folder within the apps folder, which some people do when organising their apps.
    I had this with a friend who was freaking out at the updater not working.. turns out he'd renamed the app 'Logic Pro 7.1', as he was accustomed to adding the version number to app icons since back on OS9. changed it back to Logic Pro and it went fine.
    another thing to do is tr repairing your permissions.. which I presume you have been doing religiously after every software install like a good UNIX boy?

  • Effect on one part of drums only?

    This is a newbee question. I put a tape delay on Ultrabeat track but it applies itself on all parts of the drums. Can I add a delay effect to only the Snare in Ultra beat? Is the only method to put ultrabeat on a new track and load the kick on that one?

    Hi Bob
    Yes you can. When you load Ultrabeat on the Channel strip choose 'Multi-Output' NOT stereo.
    In Ultrabeat's Voice Assignment area there is a routing section. Click there to route the parts you want to go to a different channel strip (for it's own effects). At the moment it will say 'Main'. Send the Snare to 3-4.
    Open the Mixer in Logic. At the bottom right of the Ultrabeat Channel Strip is a little '+' button. Click on that button to create an output for 3-4. (Repeat this step to create more Aux channels for as many outputs as you have setup in UB).
    Notice that the Aux channel you created has the input says: 'UB 3-4'. Now place the Tape Delay insert effect on that Aux channel and it will process only the snare, or any voices from UB assigned to UB 3-4.
    JG

  • Animated gif moving to fast

    I am trying to display an animated gif in a JLabel. My problem is that for some reason the animated gif speeds through the frames, instead of moving at the speed it was created at. Any idea what might be causing it.
    Below is the code I'm using to display the animated gif.
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.JDialog;
    import java.io.*;
    public class loadingScreen extends JDialog
         private JLabel loadingLabel;
         ImageIcon loadIcon = new ImageIcon("images/animated_loading.gif");
        This function makes the loadingScreen a dialog box which, when
        opened, limits the user to be only able to use this window until
        they close it.
         public boolean startLoadingScreen()
              Window owner = (Window) getParent();
              Dimension d = getSize();
              Rectangle r = owner.getBounds();
              int x = r.x + r.width/2;
              int y = r.y + r.height/2;
              setBounds(x, y, d.width, d.height);
              getCenter();
              setVisible(true);
              return true;
        This function is called by an outside program. It takes in the owner
        frame information. It takes in a string that will be the title of
        the dialog box.
         public loadingScreen(Frame owner,String title,boolean modality)     
              super(owner, title, modality);          
              displayWindow();
        This function makes the gui for the window
         public void displayWindow()
              setResizable(false);
              Box groupBox = Box.createVerticalBox();
              loadingLabel = new JLabel(loadIcon);
              groupBox.add(loadingLabel);
              Container dialogPane = getContentPane();
              dialogPane.setLayout( new FlowLayout() );
              dialogPane.add(groupBox);
              pack();
         private void getCenter()
              Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
              Rectangle frame = getBounds();
              setLocation((screen.width - frame.width)/2,(screen.height - frame.height)/2);
    }

    Thanks for the help. Once I editied the gif file everything worked fine. As a side note, I used Gimp to edit the file and when I tried saving it had a funny message. "Delay inserted to prevent evil CPU-sucking anim."
    Thanks for the help.
    Ricky

  • Buffered event counting. Why can't I explicitly sequence generating the Sample Clock Pulse and reading the counters?

    At irregular occasions I need to grab counts from several counters, and buffering the counts must be done simultaneously for all counters. I'm modeling my approach after zone.ni.com/devzone/cda/tut/p/id/5404 which someone kindly pointed out in an earlier thread. However, that example only uses one counter, and you can't test the synchronization with only one counter, so I am using two counters configured the same way, and they're wired to a single benchtop signal generator (for example at 300 kHz).
    What I want to do, I can test in a loop with a somewhat random wait in it. I want to drive a hardware digital output line high for a few ms and then low again. The hardware line is physically connected to terminals for my timing vi's Sample Clock Source and so will cause them to buffer their counts for later reading. After I pulse this line, when I know new good buffered counts await me, I want to read both my counters. If their bufferings are simultaneous, then each counter will have counted the same number of additional counts since the last loop iteration, which I can check by subtracting the last value sitting in a shift register and then subtracting the two "additional counts" values and displaying this difference as "Diff". It should always be 0, or occasionally +1 followed immediately by -1, or else the reverse, because buffering and a count could happen practically at the same moment.
    When I do this using a flat sequence to control the relative timing of these steps, so the read happens after the pulse, the counters often time out and everything dies. The lengths of time before, during, and after the pulse, and the timeout value for the read vi, and the size of the buffer and various other things, don't seem to change this, even if I make things so long I could do the counting myself holding a clipboard as my buffer. I've attached AfterPulse.vi to illustrate this. If I get 3 or 10 or so iterations before it dies, I observe Diff = 0; at least that much is good.
    When I use two flat sequences running in parallel inside my test loop, one to control the pulse timing, and the other to read the counters and do things with their results, it seems to work. In fact, Diff is always 0 or very occasionally the +/- 1 sequence. But in this case there is nothing controlling the relative timing such that the counters only get read after the pulse fires, though the results seem to show that this is true. I think the reads should be indeterminate with respect to the pulses, which would be unreliable. I don't know why it's working and can't expect it to work in other environments, can I? Moreover, if I set some of the pulse timing numbers to 1 or 2 or 5 ms, timeouts start happening again, too. So I think I have a workaround that I don't understand, shouldn't work, and shouldn't be trusted. See SeparateSequence.vi for this one.
    I also tried other versions of the well-defined, single sequence vi, moving the counter reads to different sequence frames so that they occur with the Sample Clock Source's rising edge, or while it is high, or with the falling edge, and they also often time out. I'll post these if anyone likes but can't post now due to the attachment limit.
    Here's an odd, unexpected observation: I have to sequence the reads of the counters to occur before I use the results I read, or else many of the cycles of this combine a new count from one counter with the one-back count from the other counter, and Diff takes on values like the number of counts in a loop. I though the dataflow principle would dictate that current values would get used, but apparently not so. Sequencing the calculations to happen after the reads fixes this. Any idea why?
    So, why am I not succeeding in taking proper control of the sequence of these events?
    Thanks!!!
    Attachments:
    AfterPulse.vi ‏51 KB
    InSeparateSequence.vi ‏49 KB

    Kevin, thanks for all the work.
    >Have you run with the little execution highlighting lightbulb on? -Yes. In versions of this where there is no enforced timing between the counter and the digital line, and there's a delay inserted before the digital line, it works. There are nearly simultaneous starts on two tracks. Execution proceeds directly along the task wire to the counter. Meanwhile, the execution along the task wire to the digital high gets delayed. Then, when the digital high fires, the counter completes its task, and execution proceeds downstream from the counter. Note, I do have to set the timeout on the counter longer, because the vi runs so slowly when it's painting its progress along the wires. If there is any timing relationship enforced between the counter and the digital transition, it doesn't work. It appears to me that to read a counter, you have to ask it for a result, then drive the line high, and then receive the result, and execution inside the counter has to be ongoing during the rising line edge.
    >from what I remember, there isn't much to it.  There really aren't many candidate places for trouble.  A pulse is generated with DIO, then a single sample is read from each counter.  -Yup, you got it. This should be trivial.
    >A timeout means either that the pulse isn't generated or that the counter tasks don't receive it. - Or it could mean that the counter task must be in the middle of executing when the rising edge of the pulse arrives. Certainly the highlighted execution indicates that. Making a broken vi run by cutting the error wires that sequence the counter read relative to the pulse also seems to support that.
    >Have you verified that the digital pulse happens using a scope? -Verified in some versions by running another loop watching a digital input, and lighting an indicator, or recording how many times the line goes high, etc. Also, in your vi, with highlighting, if I delete the error wire from the last digital output to the first counter to allow parallel execution, I see the counter execution start before the rising edge, and complete when the line high vi executes. Also, if I use separate loops to drive the line high and to read the counter, it works (see TwoLoops.vi or see the screenshot of the block diagram attached below so you don't need a LV box). I could go sign out a scope, but think it's obvious the line is pulsing given that all these things work.
    >Wait!  I think that's it!  If I recall correctly, you're generating the digital pulse on port0/line0...  On a 6259, the lines of port 0 are only for correlated DIO and do not map to PFI. -But I'm not using internal connections, I actually physically wired P0L1 (pin 66) to PFI0 (pin 73). It was port0/line1, by the way. And when running some of these vi's, I also physically jumper this connection to port0/line2 as an analog input to watch it. And, again, the pulse does cause the counter to operate, so it clearly connects - it just doesn't operate the way I think it is described operating.
    For what it's worth, there's another mystery. Some of the docs seem to say that the pulse has to be applied to the counter gate terminal, rather than to the line associated with the sample clock source on the timing vi. I have tried combinations of counter gate and or sample clock source and concluded it seems like the sample clock source is the terminal that matters, and it's what I'm using lately, but for example the document I cited, "Buffered Event Counting", from last September, says "It uses both the source and gate of a counter for its operation. The active edges on the gate of a counter is used to latch the current count register value in a hardware register which is then transferred via Direct Memory Access...". I may go a round of trying those combinations with the latest vi's we've discussed.
    Attachments:
    NestedSequences.png ‏26 KB

  • Idocs processing time between 2 idocs with same material

    Hi Gurus
    we are getting 2 idocs from other system with same material, first idoc is process successfully, second one is not processing and error throughing - material is currently processing by user WF BATCH. can we set time gap between 2 idocs for processing, where we need to do this?
    Thanks in Advance
    Ramki

    Hi Ramki,
    There is another option which you can consider with the help of an ABAPPER. Check if you can use the concept of enqueing.
    Ex: When the idoc comes in the SAP system and updates the material quantity in the sales order, it has to get in to the VA02 in order to do this. Now when another idoc is sent along with this simulataneously to update something in the same order, it fails as the order is open by the first idoc.
    In this case we write a check in the posting program and check if the order (Order number we get from the idoc) is open or enqued.
    If it is enqued then there is a delay by calling an event. This event triggers a job which has a certain delay inserted in it before running.
    Hope this helps..
    FK

  • X-Fi Mode Chan

    Hi all,
    I've been developing, testing and using this application for a while now. Basically it allows you change between modes using either a command line arguments or using a systray base menu. It also supports simple application profile. Go here for more info:
    http://www.spectra9.com/xfmc/xfmc.html
    or mirror:
    http://www.freewebs.com/spectra9/xfmc.html
    I've only tested this on Windows XP SP2 with Creative Audio Console version .0.5.0. Right now it won't work under Windows NT, but should work fine on Windows 2000 and XP
    I was originally going to release this on March, but at the time I thought I'd wait until end of March to see if the promised driver update would already include this functionality. Seeing now is already at mid April, I thought I'd just share it with the community. I hope it can be useful to you
    IMPORTANT LIMITATIONS
    . XFMC requires Creative Audio Console, since basically what it does is run Audio Console
    and "click" on the appropriate button to change mode. Until Creative release some
    information on how the mode changing mechanism works, I'm afraid this is the only viable
    albeit non elegant solution
    2. Due to number , Creative Audio Console MUST NOT BE RUNNING when this app tries to
    change mode, which can happen either manually by you or automatically via application
    profile. Failing to do so may cause unpredictable result
    DISCLAIMER:
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
    OF ANY KIND, EXPRESS OR IMPLIED yadda yadda yadda. In other
    words, use at your own risk, I'm not responsible if it crash
    or burn your expensi've X-Fi card :-)
    ++UPDATE++:
    In case my main page is inaccessible here's the direct link to the program itself. If anyone can help host it somewhere, I appreciate it
    Direct link to download (version .4 build 40 for English and non English User):
    http://www.freewebs.com/spectra9/XFi...4_Build_40.zip
    http://www.spectra9.com/xfmc/downloa...4_Build_40.zip
    Direct link to download (version .3 build 32 for English and non English User):
    http://www.freewebs.com/spectra9/XFi...3_Build_32.zip
    http://www.spectra9.com/xfmc/downloa...3_Build_32.zip
    Version .4 build 40 is the latest version. It has the most feature but since it's newer, it hasn't been as fully tested as it's older brother. If you find some serious bugs in it, please give detail in this forum and give the older version a try
    VERSION HISTORY
    .0 build 73
    Initial release to public
    .0 build 74
    + Add new configuration option to start with Windows
    . build 0
    * Restructure some of the menus
    * Revise Audio Console automation code, hopefully this will solve the problem some non English users are facing (please give feedback
    + Add 2 menus for running Mixer and THX Setup Console
    + Add option to set what XFMC should do when the tray icon is double clicked
    . build 6
    - Fix bug which cause mode change to fail when Bit-Matched Playback is enabled in Audio Creation mode
    .2 build 0
    - No new feature but major revision to support non-English user
    .3 build 0
    * Rename the Mixer menu to Console Launcher. Now it will not automatically switch to the mixer 'tab' in the Console
    * Revise the About menu to make it a little bit cooler (I hope) ;-)
    + Added menu for launching Audio Console. Also add it to the list of possible action when user double click the tray icon
    + Improved memory usage. XFMC should use noticeably less memory than previous versions
    + Added the option to set to specific mode when XFMC is started with Windows
    + Added the option to disable the balloon tooltip which appear when a mode change occured
    + Added the option to show the "mode indicator" icon in the tray
    + Added the option to set to user specified "default mode" when application in the profile list terminates
    + Added ability to sense a mode change that is done by Creative apps (Audio Console and Mode Switcher). XFMC should now update its status accordingly after these applications change mode and exit
    + Added information tooltip for some of the options in the Configuration dialog
    .3 build 5
    * Fix a bug where Smart Mode Change setting is incorrectly saved
    + Hide XFMC from the task list like a good tray app should
    + Bundled the 4 icons into the zip file for use as template for creating your own icons
    .3 build 20
    * Fix a bug Audio Console get stuck when a mode change attempt fail, for example when trying to change mode when an ASIO using application is using the audio device
    + Revise (again) the automation code, hopefully it will be even more reliable now
    .3 build 30
    + Added hotkey support
    + Added advanced option StartupDelay= in XFMC. INI under [SETTINGS] to set the delay time during Windows startup before detecting/changing mode. For example, to add a 0 seconds delay, insert the line StartupDelay=0 under [SETTINGS] section in XFMC. INI. The default is 5 seconds, which seems fine for a lot of users. Try increasing this value if you're having problem at startup (Audio Console popup, mode not detected, etc.)
    .3 build 32
    + Fix display glitch when using certain XP visual style
    .4 build 0
    + Added Mixer control on tray icon left click. You can control the level of volume, bass and treble as well as the speaker mute / unmute state.
    + Added new tray icon indicator for speaker mute / unmute state.
    + Added speaker settings selection menu. You can toggle between speakers and headphones. Remember to set your default speaker settings first in the Options window
    + Added two new command line parameters, /SPEAKERS and /HEADPHONES to set the speaker settings to speakers and headphones respecti'vely.
    + Added option to enable/disable application profiles.
    + Added drag and drop feature to add new application profiles. Just drag shortcut and application files and drop them in the appropriate profile list
    + Added new hotkey actions for mixer control and speaker settings toggle
    + Added new (optional) low level hotkey management method. This one even works in Oblivion :-). Use it only when you have "stubborn" applications as it incure a slight CPU and memory overhead.
    * Reorganized the Options window
    * Revise Audio Console automation code (again :-). Hopefully it will be even more robust now
    * Removed the hires window icons which was causing VB6 runtime to create temp files
    .4 build 20
    * Fix the hotkeys not working for some of the actions, particularly the mixer related ones.
    * Fix the speaker settings not being synched when changing modes.
    + Improved Audio Console automation code when changing speaker settings, should now work correctly for all international users.
    .4 build 30
    * Fix issues with decreased keyboard repeat rate after repeatedly changing modes / speaker settings.
    + Added option to keep speaker settings between modes. With this option enabled, speaker settings is "global" and will not change across mode switch. Note however, to avoid confusion, speaker settings won't be preserved if the mode is changed via any Creative's utility
    .4 build 40
    * Really fix the issues with decreased keyboard repeat rate after repeatedly changing modes / speaker settings (I hope .
    + Added SVM checkbox to turn SVM on or off in the mini mixer window
    + Added new hotkey action to toggle SVM settingMessage Edited by spectra9 on 0-20-200704:0 PM

    thx... have tried it now... works great so far.. good work!! Maybe CL could learn something from us. Everything doesnt have to cost money!!? Once again, great job.Message Edited by HaZe303 on 04-2-2006 09:43 PM

  • Stop adding concert level aux tracks every time I choose a track send

    Howdy all,
    Is anyone else having this annoying problem?
    I am working in a patch, and I want to add an effect, let's say a delay. So I create a new patch level aux input channel strip with a delay insert and set the input to bus 1.
    On my audio channel (that I want delay on) I use send slot 1 to send to bus 1. As soon as I do this, Mainstage creates another aux channel strip with input of bus 1 at the Concert level!
    Then I have to switch to the concert level and delete it. I would like a way to turn off this behavior, but I haven't been able to find it.
    Any suggestions out there?
    thanks!
    Brian

    Well, I've tried both of those and that's where the problems arise.
    If I do "Track -> Create Multiple..." I get the error message "No more tracks available".
    If I create an Audio Object in the Environment, double-click on its icon to transform it into a channel strip, and then try to assign the desired channel, only the channels that are already taken appear in the pull-down menu. If I go back to the Arrange Window and choose "Track -> Create" a new track is created given the same name and linked to the same Audio object and channel as the previously last Audio track. Going back to The Environment I still only have the same channels as before to choose from.
    In GB2, in Cubase and in Sonar all you have to do is create a new track and choose whether you want it to be an Audio track or a Midi track. I just don't get why it has to be so complicated in Logic?
    What am I doing wrong?
    ...tt

  • How to check the speed of agilent 34907a

    Hope i am not duplicating my previous post.But i am not able to locate my previous post so i assume that it has not been posted yet.
    The clarification i want to make is as follws:
    I am reading data from a keithley sourcemeter through a GPIB cable and then process it and then write a digital output value to agilent 34907a multifunction module card and write the time ,GPIB data and the digital value into an excel sheet.
    i want the whole cycle to run as fast as possible.
    So I created a sequence of two frames(ref attached picture ) first frame reads GPIB data and second frame processes the data and writes output to agilent digital output module.
    i have put this sequence inside a continous while loop.
    There is no delay inserted anywhere.
    The excel sheet shows a time difference about 60 msec +/2 sec between consecutive time readings.which means the output module has recieved a data every 60 msec .but i am not sure if it is able to execute the  commands it recieves or some commands ignored.
    a.I can see alternate values being written in the display with no error. so does this mean all the write commands are executed?
    b.does the nest while loop start only after the end of the write process?
    c.Currenly i am using a rs232 cable as interface at 9600 baud rate can increasing this bring down the time from 60 msec?
    your help would be highly appreciated 
    regards
    Siva 
    Attachments:
    sequence.GIF ‏45 KB

    Your previous posting of this question was in the LabWINDOWS forum. You can find any of your previous postings by clicking on your forum "name", it will show you every posting you have made.
    I am unable to view your image attachment, it is too low resolution. You can attach source code, if it isn't too large, to your postings, just make sure to identify which version of LabVIEW was used.
     You say that your excel spreadsheet shows a time difference of 60 msec +/2 sec  what does +/2 mean? Plus or minus 2 seconds would be big if the expected/desired loop rate is 60 mS.  I don't know whether any commands are being ignored, you would probably get an error if it wasn't able to execute a command in time. If you are looping at 60 mS you won't be able to visually if a command is dropped, but depending on what it is (like output a level) it probably can handle it, that is only 17 S/sec roughly. The 34907a doesn't have a BW rating for the analog output that I could find, looks like it is expected to be used in more or less a static voltage source mode, but it does spec a 1 mS settling time, which should fall within your limits, assuming you are doing the next in measurement too soon.
    Look at your previous post for other comments by another author.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • How can I add effects to voice while recording

    Hey
                  Ok logic pros and users   heres and important question ....     I have my vocalist comming over and he likes a bit of effect on his voice that gives him the sound like it would be recorded  I recorded him last time on a tascam mk-2  with effects like reverb and some guitar effects which really enhanced his voice.  He s using a compression mic  so i do have to watch passing gas while hes recording because it will pick it up lol
                  What can I do on the audo track while setting up his voice to enhance his singing to the point that it will sound extremely good and not bland ..    What I am trying to say he sounds like jeff tate  and I want a tate voice like the album while hes recording i gives him an uplift and higher range
                                                                      Thanks

    well, it should go without saying... there's no magic bullet here. Either someone can sing or they can't. The first step to them sounding good is their own ability.
    Beyond that, a good quality microphone into a decent mic pre-amp is important.
    Ok, so, after stating the obvious... (which I'm amazed at how many people STILL think software will make them a good musician....)
    For monitoring, you could start with any channel strip setting in the vocal category. Most will be over the top, in terms of what you need, but it'll get you started. You'll have to watch latency though. Depending on your audio interface, and how well the drivers were written, will determine if there's noticeable delay in the singers headphones. But a little reverb or delay inserted right on the channel strip will let him hear the FX as he sings.
    If you want to actually print these FX to tape, you will need to record through an input object.

  • Lost itune credit after upgrae to IOS 6.0

    Has anyone experienced this issue?  I just upgraded my iPhone with the lastest operating system (IOS 6.0) and somehow my itune credits just disappeared.

    Same experience but credit reappeared a few hours later. Synchronisation delay ?

  • Strange new problem with external effects and latency compensation

    i'm currently facing a new , very strange problem with latency compensation for external effect devices. it alway worked fine for me but suddenly there are strange things going on. i'm suddenly running into problems when using sends which feed auxes going to external effect devices.
    latency compensation is set to ALL !!!
    easy setup :
    - open an empty project and create 2 audioinstrument tracks. on the first one load the exs with a drumkit and record f.e. a bassdrum pattern. leave the 2. instrument empty.
    - now on the first audio instrument create a send to bus 1 -> aux 1 and insert the i/o plug-in in the aux and route it to your external effect device. chose a temposynced delay.
    - press play = everything is fine when audioinstrument 1 is highlighted in the arrange.
    - press stop, click on the track with the 2. audioinstrument and press play = totaly weird timing problems. delay is only in sync when track 1 is highlighted.
    - create a send in the 2. audioinstrument and route it to bus 1 -> aux 1 too = still the same problem
    now insert ANY softwareinstrument in audioobject 2 and suddenly the timing for the delay is right.
    go ahead and create a 3. audioinstrument track but leave it empty first. chose it in the arrange = again weird timing problems with the external delay.
    insert any software instrument on audioinstrument 3 = still the same problem
    now create the send to bus 1 -> aux 1 in audioinstrument 3 and guess what, timing is right.
    *** is going on here ? can anyone reproduce that ?
    it works fine when using sends which feed auxes with software effects inserted.
    funny thing is, when i go to the environment and change aux object one to bus object 1 and insert the same i/o in it it works !!!
    very very strange, please tell me i'm not crasy and this is a bug !!!
    as said, latency compensation is set to all.
    i'm using the mac pro 3.2 8-core running os 10.5.4, logic 8.0.2 and a motu pci-e audio system.
    Message was edited by: Olaf Dieckmann

    Welcome to the Discussions.
    If you need it formatted FAT32, reformat it on your Mac. Use MS-DOS (FAT32) as the file system. If you don't need it for both PC and Mac, format it HFS+ and you'll be able to use the Retrospect Express software that came with it on your Mac.
    John

  • Trigger Media events in Applescript?

    Hello,
    I've been searching a lot on this and i cant for the life of me find how to trigger media events in Applescript.
    I have found that i can tell specific applications to playpause like itunes for example, this is not what i want.
    What im trying to do is make an applescript that behaves like the play/pause button that you can find on any Apple Keyboard when executed.
    I imagined that this would be as simple as to tell System Events to trigger a media event, regretfully this does not work.
    If anyone could shed some light on this i would greatly appreciate it!
    Regards,
    Jonathan

    Hello
    Some time ago I've written a rubycocoa code to post media key events. Here's an AppleScript wrapper for it.
    Code is tested under 10.6.8. This won't work under 10.5.8. Don't know about later versions.
    Regards,
    H
    PS. If you're just trying to keep iTunes from launching when PLAY_PAUSE key is pressed, this script is not what you need. The rcd daemon is the culprit to launch iTunes by that specific key and so you'd need to "fix" it by modifying its executable. There's a tried and true method to do it, which I myself has employed.
    --post_media_key_events("MUTE", 1, 0, {})
    --post_media_key_events("VOLUME_UP", 12, 0.01, {option down, shift down})
    --post_media_key_events("VOLUME_DOWN", 12, 0.01, {option down, shift down})
    post_media_key_events("PLAY_PAUSE", 1, 0, {})
    on post_media_key_events(subtype, k, d, mods)
            string subytpe : event subtype name, one of the following -
                    VOLUME_UP
                    VOLUME_DOWN
                    BRIGHTNESS_UP
                    BRIGHTNESS_DOWN
                    MUTE
                    PLAY_PAUSE
                    FORWARD
                    REWIND
                    ILLUMINATION_UP
                    ILLUMINATION_DOWN
            integer k : number of key repeat
            number d : delay inserted after each key release [sec]
            list mods : any combination of the following enumerations
                    shift down
                    option down
                    command down
                    control down
                    caps lock down
                    * constants other than listed above are ignored
        set args to ""
        repeat with m in mods
            set m to m's contents
            if m = shift down then set args to args & space & "shift"
            if m = option down then set args to args & space & "option"
            if m = command down then set args to args & space & "command"
            if m = caps lock down then set args to args & space & "capslock"
        end repeat
        set args to subtype & space & k & space & d & space & args
        considering numeric strings
            if (system info)'s system version < "10.9" then
                set ruby to "/usr/bin/ruby"
            else
                set ruby to "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby"
            end if
        end considering
        do shell script ruby & " <<'EOF' - " & args & "
    require 'osx/cocoa'
    include OSX
    class AppDelegate < NSObject
        # event subtypes
        # cf. /System/Library/Frameworks/IOKit.framework/Versions/A/Headers/hidsystem/ev_keymap.h
        VOLUME_UP             = 0
        VOLUME_DOWN             = 1
        BRIGHTNESS_UP         = 2
        BRIGHTNESS_DOWN         = 3
        MUTE                 = 7
        PLAY_PAUSE             = 16
        FORWARD                = 19
        REWIND                 = 20
        ILLUMINATION_UP         = 21
        ILLUMINATION_DOWN    = 22
        # keyboard event
        # cf. /System/Library/Frameworks/IOKit.framework/Versions/A/Headers/hidsystem/IOLLEvent.h
        KEYDOWN                = 10
        KEYUP                = 11
        def initWithArguments(args)
            @subtype, @count, @delay, *@mods = args
            @count = @count.to_i
            @delay = @delay.to_f
            @mods = @mods.join(' ')
            self
        end
        def applicationDidFinishLaunching(notif)
            begin
                @win = NSWindow.alloc.objc_send(
                    :initWithContentRect, NSMakeRect(0, 0, 600, 600),
                    :styleMask, NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask,
                    :backing, NSBackingStoreBuffered,
                    :defer, false)
                @win.setLevel(NSStatusWindowLevel)
                @win.center
                if NSApp.respondsToSelector?('setActivationPolicy')                    # 10.6 or later only
                    NSApp.setActivationPolicy(NSApplicationActivationPolicyRegular)
                end
                NSApp.activateIgnoringOtherApps(true)
                ev1 = createMediaKeyEvent(@win, @subtype, 'keydown', @mods)
                ev2 = createMediaKeyEvent(@win, @subtype, 'keyup', @mods)
                @count.times do
                    postMediaKeyEvent(ev1)
                    postMediaKeyEvent(ev2, @delay)
                end
            ensure
                NSApp.terminate(self)
            end
        end
        def applicationShouldTerminateAfterLastWindowClosed(app)
            true
        end
        def applicationShouldTerminate(sender)
            NSTerminateNow
        end
        def createMediaKeyEvent(win, subtype, keystate, modifiers = '')
            #    NSWindow win : target window device which receives the event
            #    uint16 subtype : event subtype for event type = NSSystemDefined
            #    string keystate : one of ['keydown', 'repeat', 'keyup']
            #    string modifiers : modifier key names (shift control option command capslock) separated by white space
            mtable = {
                'capslock'    => KCGEventFlagMaskAlphaShift,
                'shift'        => KCGEventFlagMaskShift,
                'control'    => KCGEventFlagMaskControl,
                'option'    => KCGEventFlagMaskAlternate,
                'command'    => KCGEventFlagMaskCommand,
            mflag = modifiers.split.inject(0) { |mflag, x| (m = mtable[x]) ? mflag | m : mflag }
            mflag |= KCGEventFlagMaskNonCoalesced
            kstate =
                case keystate
                    when 'keydown'    then KEYDOWN << 8
                    when 'keyup'    then KEYUP << 8
                    when 'repeat'    then KEYDOWN << 8 | 1
                    else 0
                end
            raise ArgumentError, %[invalid keystate : #{keystate}] if kstate == 0
            raise ArgumentError, %[unsupported media key event subtype : #{subtype}] unless
                    VOLUME_UP,
                    VOLUME_DOWN,
                    BRIGHTNESS_UP,
                    BRIGHTNESS_DOWN,
                    MUTE,
                    PLAY_PAUSE,
                    FORWARD,
                    REWIND,
                    ILLUMINATION_UP,
                    ILLUMINATION_DOWN,
                ].include?(subtype)
            data1 = subtype << 16 | kstate
            data2 = 0xffffffff
            event = NSEvent.objc_send(
                :otherEventWithType, NSSystemDefined,
                :location, NSMakePoint(0.0, 0.0),
                :modifierFlags, mflag,
                :timestamp, 0,
                :windowNumber, win.windowNumber,
                :context, win.graphicsContext,
                :subtype, 8,
                :data1, data1,
                :data2, data2)
            raise RuntimeError, %[failed to create event] unless event
            return event
        end
        def postMediaKeyEvent(event, delay = 0.0)
            CGEventPost(KCGHIDEventTap, event.CGEvent)
            sleep delay
        end
    end
    def main
        raise ArgumentError, %[Usage: #{File.basename($0)} subtype [count [delay [modifiers]]]] unless ARGV.length > 0
        begin
            s, k, d, *mods = ARGV
            subtype = AppDelegate.const_get(s.to_sym)
            k = k ? k.to_i : 1
            d = d ? d.to_f : 0.0
        rescue => ex
            $stderr.puts %[#{ex.class} : #{ex.message}]
            exit 1
        end
        args = [subtype, k, d] + mods
        app = NSApplication.sharedApplication
        delegate = AppDelegate.alloc.initWithArguments(args)
        app.setDelegate(delegate)
        app.run
    end
    if __FILE__ == $0
        main
    end
    EOF"
    end post_media_key_events

Maybe you are looking for