Key press elapsed time

I'm building a shooting game. I want to record how long the player has the F key pressed in order to use that value to remove ammunition sprites from the stage.
My application loops in frame 1.
I have a script that subtracts the key press time from the system time on key release. I think the repeat rate of the keyboard is interfering with this as the output figures are quite random and holding the key down for longer returns a lower number.
global gFire, gTotal, gStartTime
on startMovie
  the keyDownScript = "handleKeydown"
  the keyUpScript = "handleKeyUp"
end startMovie
--Handler to fire
on handleKeydown
  if the key = "f" then
    gStartTime = the milliseconds
  end if 
end handleKeydown
--Handler to stop firing
on handleKeyUp
  if the key = "f" then
    gfire = (the milliseconds - gStartTime)/10
    gLeft = gTotal - gFire
    gTotal = gLeft -- gTotal is used to incrementally turn off sprite visibility
    put gfire -- Trace elapsed time to Message window
  end if
end handleKeyUp
--This sequence removes bullets from the stage\
according to he time spent firing
on enterFrame
  if tTotal < 900 then
    sprite(10).visible = False --this repeated for a sequence of 10 sprites
  end if
end
The other problem with this is that it doesn't update the stage till the key is released, so a player can defeat the logic by just holding the key down continuously (especially because the value of gFire doesn't increase as expected)
Ideally I'd like to record the elapsed time the key is down, add it to a global and have it update the stage at the frame rate, so I guess it would have to be within a frame event handler.
Any help would be gratefully received.

MStewart,
Thanks for doing that. I decided to do a little something like that and just reworked it a bit. Dropped the pause on a case structure and put the timer inside. seemed easier to do it that way for what I wanted to accomplish. The pause is going to be a good thing to have in the event that the heater needs to be turnd off and worked on for any reason, and it won't accrue time or cycles. Used a "in range and coerce" to compare minutes and seconds and then wired a 4 to 15 mA simulated signal to to the timer. All I got to do now is duplicate it 14 more times and then to work on the cDaq part of it to control relays through dig out signals, and sequence the whole thing to write a file for the analog in. Thanks alot for your help and BowenM too. like I said: you guys are awesome. Got me to thinking in other directions.
Attachments:
Mexico sentinal loop.vi ‏11 KB
milliamp timer w pause function.vi ‏24 KB

Similar Messages

  • Amount of key presses a user makes over time - BPM

    Hi,
    Im working on a small program that needs to get the amount of keypresses a user makes over time.
    Basically its for calcuating the BPM a user is inputting. So a uers taps a beat for 5 seconds and the amount of tap is saved and multiplied by 12 to get the Users BPM.
    So far i have this:
    package Version1;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.util.Timer;
    import java.util.TimerTask;
    import javax.swing.*;
    public class muTap extends JFrame implements KeyListener, ActionListener {
        JTextArea display;
         * main - the main method
        public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    theGUI();
         * muTap constructor
        public muTap(String name) {
            super(name);
         * theGUI - creates the gui for muTap
        public static void theGUI() {
            muTap frame = new muTap("muTap");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Set up the content pane.
            frame.addComponents();
            //Display the window.
            frame.pack();
            frame.setVisible(true);
         * adComponents - adds gui components to muTap
        public void addComponents() {
            JButton button = new JButton("Start");
            button.addActionListener(this);
            display = new JTextArea();
            display.setEditable(false);
            display.addKeyListener(this);
            JScrollPane scrollPane = new JScrollPane(display);
            scrollPane.setPreferredSize(new Dimension(375, 125));
            getContentPane().add(scrollPane, BorderLayout.PAGE_START);
            getContentPane().add(button, BorderLayout.PAGE_END);
        public void keyTyped(KeyEvent e) {
            //Do Nothing
        /** Handle the key pressed event from the text field. */
        public void keyPressed(KeyEvent e) {
            //TODO call the getBPMfromKboard() method
            taps++;
            System.out.println("Tap: " + taps);
        /** Handle the key released event from the text field. */
        public void keyReleased(KeyEvent e) {
            //Do Nothing
        /** Handle the button click. */
        public void actionPerformed(ActionEvent e) {
            //Do Nothing
            //initialCountdown(3, "Start Tapping Fool");
            countDown(3);
         * countDown - a simple countdown timer for use when getting users input.
         * @param time amount of time to count down from
         * @return      true when timer ends.
        public static int taps;
        public void countDown(final int time) {
            taps = 0;
            final Timer timer = new Timer();
            timer.scheduleAtFixedRate(new TimerTask()
                int i = time;
                public void run()  {
                    i--;
                    String s = Integer.parseInt(i); // error because of this i.
                    display.setText(s);
                    if (i < 0) {
                        timer.cancel();
                        if(time == 3)
                            display.setText("Start Tapping");
                            countDown(5);
                        else if(time == 5)
                            display.setText("Number of taps: " + taps);
                            //System.out.print("Number of taps" +taps);
            }, 0, 1000);
    }But i get errors when i try running it:
    "Exception in thread "Timer-1" java.lang.RuntimeException: Uncompilable source code"
    It doesnt seem to like me parsing int to string here:
    String s = Integer.parseInt(i); Any ideas? or if youve got suggestions on another way to do it it'd be much appreiated.
    Thanks!

    Korvanica wrote:
    It doesnt seem to like me parsing int to string here:
    String s = Integer.parseInt(i);
    Yikes, you've got that bit of code backward, there partner.
    You use Integer.parseInt to parse a String into an int, not the other way around.
    If you want to change an int to a String, do
    String s = String.valueOf(i)or you can use the various formatters out there.

  • 2 key pressing at a time?

    i am currently making a java application that require 2 key pressing a the same time with KeyPressed(KeyEvent e)but it doesnt seem to work.does any body know how to do it? thanks

    This is only supported with the "meta" keys (Control, Shift and Alt). Look at the KeyEvent for the methods to determine which meta key was pressed in combination with the other key.

  • CFMCPopupMenu is shown multiple times if the menu key (VK_APPS) is pressed multiple times

    Hello,
    I have a problem with the CFMCPopupMenu in a Visual Studio Professional 2013 Update 4 created MFC DLL (Regular DLL using shared MFC DLL) and in a dialog based MFC application (others I didn't test - maybe in an SDI application too).
    If the menu key (VK_APPS) is pressed multiple times, the context menu is created and shown multiple times. 
    When pressing the Alt (VK_MENU) key or clicking with the mouse buttons the menu is not shown multiple times. 
    It seems to be bug in CDialogImpl::PreTranslateMessage case WM_CONTEXTMENU where it is tested if a popup menu is already shown 
    and if there is an active popup menu this popup menu is closed, but only if the pMsg->wParam == VK_MENU.
    The problem occurs in a dialog based MFC application and in dialog's in regular DLL's. 
    In case of MFC MDI applications the problem does not occur, 
    because in the CFrameImpl::ProcessKeyboard the key is passed to the popup menu for processing pActivePopupMenu->SendMessage(WM_KEYDOWN, nKey); and eaten up.
    You can reproduce the problem in the following way:
    1. Create a dialog based MFC application with the Visual Studio 2013 wizard.
    2. Add a menu IDR_MENU1 to the resource.
    3. Add a ON_WM_CONTEXTMENU / OnContextMenu message handler to the dialog.
    4. Insert the following code into the OnContextMenu handler of the dialog:
      _ASSERT(!CMFCPopupMenu::GetSafeActivePopupMenu());
      CMenu m;
      m.LoadMenu(IDR_MENU1);
      CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
      pPopupMenu->SetAutoDestroy(FALSE);
      VERIFY(pPopupMenu->Create(this, 100, 100, m.GetSafeHmenu(), TRUE, TRUE));
    5. Compile and start the application and press the Menu Key (VK_APPS) multiple times.
    -> You run into the ASSERT.
    If you press the Alt-Key or left click with the mouse multiple times all is fine.
    You can also add a tracepoint in the constructor and destructor to see that the CMFCPopup menu is created multiple times if the Menu-Key is pressed.
    Kind regards,
    Andreas.
    Andreas

    Hi Andreas,
    Thanks for posting in MSDN forum.
    Yes, I can reproduce this issue on my side. After look into the afxdialogimpl.cpp and afxframeimpl.cpp file, It really is a issue in the dialog message translate. I have no workaround to avoid this. But maybe we can try to use
    CMenu class and handle WM_RBUTTONDOWN message instead of WM_CONTEXTMENU.
    void CMFCPopupMenuTestDlg::OnRButtonDown(UINT nFlags, CPoint point)
    // TODO: Add your message handler code here and/or call default
    CMenu menu;
    VERIFY(menu.LoadMenu(IDR_MENU1)); //IDR_MENU_POPUP是新建菜单ID
    CMenu* popup=menu.GetSubMenu(0);
    ClientToScreen(&point);
    popup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this );
    CDialogEx::OnRButtonDown(nFlags, point);
    By using this, we can avoid the VK_APP message caused multi pop up menu.
    Also have you tried submit this issue to Microsoft connect?
    https://connect.microsoft.com/VisualStudio
    Best regards,
    Shu Hu
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Command Key has to be released and pressed each time, holding down command key for multiple commands ignoring all after first keystroke.  Have tried this in safe mode - still broken.

    This problem has just cropped up - pretty sure it's after the 10.7.3 upgrade.
    Scenario: I'm in pages and I'm doing a search. I need to find multiple instances of my search word.
    I hold down the command key and press the 'g' key - for find again. It works.
    While still holding down the command key - I hit the 'g' key again to do another find again. But instead of executing teh find again, hitting teh 'g' key the sdecond time types "g' over last search item found, acting as if teh command key was not still pessed.
    This is happening in DreamWeaver CS5.5, the latest Pages, and the latest BBEdit. Haven't checked all apps.
    This IS NOT a problem in the finder though - where command-tabbing brings up the app list properly, and tabs through while holding down teh command key and repeatedly hitting the tab key.
    I restarted in safe mode. Still a problem.
    First I cleaned the command key, then re-seating the key. I swapped keyboards, Still a problem.
    Did a PRAM reset, which didn't fix anything.
    I can't find any other post regarding this issue. Been using the mac for over 25 years and I've never seen this one.

    This turns out to be a problem with my KVM switcher. The USB port on the switcher for the keyboard is failing - hence the intermittent reaction to the command-key presses.
    I connected the keyboard directly to my mac and the problem was resolved - sorry I didn't check that before I posted this.

  • My MacBook Pro keyboard is giving trouble. 0,p,;,/ and the enter key needs to be pressed several times before registering. Help me please??

    My MacBook Pro keyboard is giving trouble. The 0,p,;,/ and the enter key, needs to be pressed several times before registering. Help me please??

    If you are still under warranty and/or have AppleCare, call them.  Let them deal w/it.  Out of warranty, your keyboard may need cleaning.  Use a vacuum hose or a can of compressed air to get the dirt out from under the keys.  For instructions to remove the keys if it comes to that check out the following websites:
    iFixit
    TakeItApart
    Search YouTube for Macbook Pro “How To” tutorials.
    If you do not want to DIY, take your MBP to your local AS or an AASP.

  • Hi, Like in our laptop when we press a key for a time then that alphabet's frequency continue to increase.

    Hi,
    Like in our laptop when we press a key for a time then that alphabet's frequency continue to increase.
    for eg. if we press "j" in text then it will be like "jjjjjjjjjjjjj" on screen.
    that function in my macbook pro disabled.
    Please help me with this cause its very irritating.
    Thank You
    <Edited by Host>

    I think it's a keyboard malfunction. Take it to Genius Bar or authorised service centre to fix it up.

  • Detecting two keys press at one time

    i need to do a event handler, say when user press shift + enter, it will do something, else enter would do another thing
    i tried but i can't get the event handler to detect two key press, how do I go about it?

    VK_ENTER vs (VK_ENTER + SHIFT_DOWN_MASK)

  • How to use elapsed time function with state machine in Lab VIEW

    Hello
    I've been trying to use state machine with elapsed time function in order to sequentially start and stop my code. The arrangement is to start the code for 1 minute then stop for 5 minutes. I've attached the code, the problem is when I place the elapsed time function out of the while loop it doesn't work, on the other hand when I place it inside the loop it does work but it doesn't give the true  signal to move to the next state. 
    Could you please have a look to my code and help me to solve this issue.
    Regards 
    Rajab
    Solved!
    Go to Solution.
    Attachments:
    daq assistance thermocouple(sate machine raj).vi ‏436 KB

    Rajab84 wrote:
    Thanks apok for your help
    even with pressing start it keeps running on wait case 
    could you please explain the code for me, the use of Boolean crossing, increment , and equal functions 
    Best Regards 
    Rajab 
    OK..I modded the example to stop after 2 cycles. Also recommend taking the free online LabVIEW tutorials.
    run vi. case statement goes to "initialize", shift registers are initialized to their constants. goto "wait"
    "start"= false, stay in current state. If true, transition to "1 min" case
    reset elapsed timer with True from shift register(counter starts at zero)."time has elapsed"=false, stay in current state(1 min). If true, goto "5min" case
    reset elapsed timer with True from shift register of previous case(counter starts at zero)."time has elapsed"=false, stay in current state(5 min). If true, goto "1min" case. Also, bool crossing is looking for "true-false" from "5 min" compare function to add cycle count.
    Once cycle count reaches 2, stop while loop.... 
    Attachments:
    Untitled%202[1].vi ‏42 KB

  • J2ME: can you clear the key pressed buffer on a cell?

    I am having trouble with keypressed.
    I am writing a cell phone game in MIDP 2.0. Basically its the standard GameCanvas setup, where you have a main game loop and it calls your input function. The input function then does:
    int keyStates = getKeyStates();
    keyprocessing
    to get the states.
    When I demo it on the color phone in WTK2.0, and tap the right arrow, and my input loop processes the right multiple times. My initial thought was that the loop ran too fast perhaps and it read the press several times, so I put in a delay before keyprocessing:
    int keyStates = getKeyStates();
    long time = System.currentTimeMillis();
    if ((time - timeOfLastInput) < MIN_TIME_INPUT)
    return;
    keyprocessing
    timeOfLastInput = System.currentTimeMillis();
    Now, I have cut it down to only going in a direction once. However, if I press up, down, left, right, (in honor of Konami) My input goes as follow Up (delays MIN_TIME_INPUT) then Down, delays again, left, delays, right.
    And so I am out of ideas.

    haha, this is interesting... a month ago, i had the same problem, until i flash of intellect put me out of my misery...
    rule 1: dont use the time delay. with the processor speed of the cell phones, with your delay, it will take a decade before the app runs...
    heres how to do the coding to keep it to only 1 step at a time: ( i do it in the run method of the thread)
    int originalKey = 0; // keeps the keystates once the execution completes once
    int key = 0; // keeps the keystates for comparision
    while(isRunning) {
        key = getKeyStates();
        if(key == originalKey) {
            originalKey = 0;
            continue;
        if( (key & LEFT_PRESSED) != 0) {
            // do what you want to do, or who you want to do
            originalKey = key;
    // do the same for right pressed and etc etc... this will keep your code from executing too many timesheheh... i think i deserve a few dukes...

  • How do you clear the buffer of excess key presses, in Java?

    Right now, in the game I am working on, if the user presses a key multiple times the actions will be performed as many times as it registers, even though I disallow key presses during the time that the action is taking place.
    For example, a move of 1 space can be carried out with a key press. While the character is moving, key presses are not allowed. However, if you just press the key 5 or 25 times, the character will just keep moving, once he's done with the first one.
    What I need to do is clear the buffer of key presses after an action has taken place, so that the excess keys are not registered. I know the commands to do so in C++, but not in Java.

    Well, I think you've got what I was saying backwards, or I'm not understanding what you are asking correctly.
    it is suppposed to return if isMoving is true, not false. If isMoving is true, it means that the moving animation, and actions are taking place, Which is a process that take about a second, for the player to move one space.
    Here's the code where I process the keypresses
    private void processKey(KeyEvent e) {
        if (isMoving) {return;}
        int keyCode = e.getKeyCode();
        if (!isPaused && !gameOver) {
            isMoving = true;
          if (keyCode == KeyEvent.VK_UP) {
            player.move(player.NE);
          else if (keyCode == KeyEvent.VK_DOWN) {
            player.move(player.SW);
          else if (keyCode == KeyEvent.VK_LEFT) {
            player.move(player.NW);
          else if (keyCode == KeyEvent.VK_RIGHT) {
            player.move(player.SE);
            isMoving = false;
    }And in case I need to clear up what I want to happen, and the results I'm seeing. The player, in this case, moves one space in a direction, with a single press of an arrow key. That functionality is working fine, as intended. However, I don't want you to press the key twice quickly and move two spaces. I don't want you to hold down an arrow key and move continually.
    That part of the functionality is what is not working.
    As I understand my code, pressing the key once should set isMoving to true and, therefore further presses shouldn't register until isMoving is false again, which shouldn't happen until the player moves have finished.
    But, the way that it is working now is that if I press the key 2, 3 or 20 times, as soon as one move is finished another begins. Are the key presses just sitting in the buffer somewhere waiting for isMoving to become false again? And if so, is there a function I can call to clear that buffer after a move is finished?

  • Multiple Key Pressing

    When I hold Tab + w space doesn't work click (I have my controls set as this for a game).
    Is there anyway to make it so i can hold those two keys and have spacebar work?
    Im on a MacBook Pro Retina 13 inch with latest version of yosemite
    Thanks for the help

    Here is an example of both multiple key press and repeat delay ignore. It is a terrible example of animation. Do not us this animation loop in a game. It will flicker far too much.import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test extends JFrame implements Runnable {
      boolean upPressed=false, downPressed=false, leftPressed=false, rightPressed=false;
      public Test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        addKeyListener(new KeyAdapter() {
          public void keyPressed(KeyEvent ke) {
         switch (ke.getKeyCode()) {
           case KeyEvent.VK_UP: upPressed = true; break;
           case KeyEvent.VK_DOWN: downPressed = true; break;
           case KeyEvent.VK_LEFT: leftPressed = true; break;
           case KeyEvent.VK_RIGHT: rightPressed = true; break;
          public void keyReleased(KeyEvent ke) {
         switch (ke.getKeyCode()) {
           case KeyEvent.VK_UP: upPressed = false; break;
           case KeyEvent.VK_DOWN: downPressed = false; break;
           case KeyEvent.VK_LEFT: leftPressed = false; break;
           case KeyEvent.VK_RIGHT: rightPressed = false; break;
        setSize(250,250);
        setVisible(true);
        Thread timer = new Thread(this);
        timer.start();
      public static void main(String[] args) {
        new Test();
      public void run() {
        while (true) {
          repaint();
          try { Thread.sleep(30);} catch (Exception e) {}
      public void paint(Graphics g) {
        g.setColor(Color.white);
        g.fillRect(0,0,getWidth(), getHeight());
        g.setColor(Color.black);
        g.drawString("Up",40,40);
        if (upPressed) g.drawString("Pressed",100,40);
        g.drawString("Down",40,60);
        if (downPressed) g.drawString("Pressed",100,60);
        g.drawString("Left",40,80);
        if (leftPressed) g.drawString("Pressed",100,80);
        g.drawString("Right",40,100);
        if (rightPressed) g.drawString("Pressed",100,100);
    }

  • How to stop a elapse time

    Hi,
    I have an elapsed time inside a while loop and I want stop it (the elapsed time) when the user press a button.
    How can I do it?
    Thanks,
    ToNi.

    Here is a vi that I created for demonstration of how to keep track of running time with the ability to pause and continue by pressing a switch. Perhaps you will find it useful and can modify it, or use some of the code in your vi. If you want to control the pause and continue from another vi, you will have to pass the reference of the pause switch to this vi, and change this vi to use the reference instead of an actual pause switch. Hope this helps.
    - tbob
    Inventor of the WORM Global
    Attachments:
    PauseTimer.vi ‏41 KB

  • Starting and stopping Elapsed Time

    I have some code in LabVIEW 8.2.1 I am writing for Qual test with a customer. The basics of the test are the following: monitor and record pressure (thru transducers), temperatures (fluid and ambient), and monitor the opening and closing a valve. The valve has two light switches orientated in such a way, that mechanical counters will count a cycle when it is fully closed to open to closed.
    The problem I am having, is that I need the elapsed time vi to start counting, once it has moved off of the full open switch. It needs to count to 240 seconds, at which time it will pass on to an on bit, which will energize the valve again. I can get it to start running at the right part, but it will stop once
    it gets in between the two light switches. It almost seems like the elapsed time vi doesn't have enough flexibility for what I need. That or I need to write a bunch of code that would enable it to do what I want.
    I am not sure on how I can post code so it can be viewed in LabVIEW, so here is a word doc.
    Attachments:
    elapsed timing vi.doc ‏45 KB

    Hello Chadius, 
    Thanks for posting,
    I took a look at your code this morning. We at NI recommend using varibales as one of the last resources when trying to pass data out in cases where this is rseally necesary, when looking at your code I realized that the variables to pass data are not needed and that actually there are some misconceptions about the functionality of the vi funtions, do not be ashamed that is totally understandable when you are new to a concept and more understandable if you are new to labVIEW.
    Before proceeding with the code I would like to encourage you to check the Getting started with LV It gives you the basis to start programming in labVIEW and helps us understand better how LV executes.
    There is also a lot of good help loaded in Labview that can help us determine what to use and what is expected of each function, you can access this by pressing ""CTRL+H" and accesing the detailed help when hovering over a specific VI and clicking detailed help.
    Then if you are a new user to labview and would likely use labview for long term development I will suggest the training.
    Now, getting to your code I can see that you are doing a bit more code than what you actually need, so for instance:
    -we can eliminate the constants and the selector and just pass the boolean.
    -we can also use less while loops so the part where you write to the variables can be done in the same while loop on the right.
    -Instead writing to the variable and reading from that same variable you can just wire a cable so you have the same data
    -You can use the error wire out/in of the functions to control code execution.
    Last but not least, I am asumming here that this application you are coding is most likely to be a state machine where you are making a choice depending of the inputs you have, If "A" then "B"
    This is an example of a simple state machine based on user input, you can change that input to be an event, a trigger etc.
    Hope this helps, 
    Luis
    Application Engineer
    National Instruments. 
    Attachments:
    LV_Getting_Started.pdf ‏918 KB
    This way looks better.JPG ‏20 KB
    Delete constants pass only bbolean.JPG ‏15 KB

  • Key pressed in Jlist and selecting the item of key list accordingly

    Hi,
    I have a JList with the items in sorted order.Now I want that if a person presses any key (say K) then the first item starting with K should be selected.Hmmm I can do it by addding a key listener to the list and cheking all the items in the list ,by traversing through the whole lenght of JList and selecting the item if it starts with the character of the key pressed.
    But i was thinking if there is any better way to do that?
    Regards Amin

    see bugid: 4654916 - it does say that the the
    scrolling for the JList should now work with keyboard
    selection.I have the same problem. Thanx for the hint with the bugid. Saw a good workaround there with a simple subclass of JList. Works for me although it is annoying to subclass JList all the time. The bug seems not to be fixed in the 1.4.1 JDK.
    Andreas

Maybe you are looking for

  • SAP R/3 Problem

    I need some detail solutions and suggests about below these problems [SAP R/3] : Problem 4: Problems in the installation of SAP R/3 Server • Problem 4.1: Computer Name of the SAP R/3 server has been changed after the full installation of Oracle 9i an

  • Ipod 80 gb classis no longer plays music, although everything appears to be working on my screen

    HI, my classic Ipod 80gb charges correctly and uploads files etc. However, it no longer outputs any sound, either by headphones or by the port via any type speaker. Presume something has 'broken' inside. Loath to throw it away, but would welcome any

  • Problem with REUSE LIST DISPLAY , need to add std button in list.

    HI All, I make a ALV report with the use of ALV_GRID_DISPLAY after that if we click on perticular column then secondry list should be display for that i use :             CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'               EXPORTING                

  • Choosing the correct clustering method

    Hi, I currently have a small 3 server environment (win 2012), 1 PDC, and 2 Servers running hyper-v. I have 8 or so hyper v machines on one of the servers and using hyper-v replica to replicate all of them to the other server. I woud like to upgrade t

  • How to determine Chord and BPM

    Hi everyone, I'm a garage band beginner. I've successfully recorded 2 songs with loops, harmonies, and vocal tracks - even the occasional editing of a loop but I have difficulty when I start up a new project trying to determine chord and bpm - well,