Rotation animation using an array
Hi, I'm fairly new to using java and I've been trying to figure out a couple of things but I just can't find what im looking for by searching. The IDE i'm using is BlueJ and any help would be appreciated.
1. Take an array of N images (no X or Y movement) and get it to track the mouse so that as the mouse moves in a circle around the image the imageIndex changes so that the current image is facing the mouse
2. Setting up keybindings so that an array of images will "rotate" the same way as in number 1
Add a MouseMotionListener.
Determine the position of the cursor relative to your image.
Determine the image that's to be shown.
Draw it.
Similar Messages
-
Photoshop CS6 Extended Timeline Video Animation - How to make rotation animation
Hi All
In the timeline panel in CS6 EXTENDED, you have a video feature, where you can animate three things:
Position
Style
Opacity
What I would like to know, is: How can I animate rotation of a layer? I want to rotate my layer at an angle and animate it. But when I rotate, the first animation frame is also rotated, resulting in NO animation between the frames.
Thank youYou can also create a COUNTERCLOCKWISE rotation animation using the Adobe Photoshop CS6 Timeline:
1. Make your first rotation keyframe by rotating your smart object layer -1 degrees.
2. Make your second rotation keyframe by clicking near the middle of the timeline and rotating your Smart Object layer -179.9 degrees.
3. Click near the end of your timeline, and make your third rotation keyframe by rotating your Smart Object Layer 1 degree.
Create CLOCKWISE rotation, as described in JJMack's post:
1. Make your first rotation keyframe--no need to rotate because we want the rotation Value to be Zero.
2. Make your second rotation keyframe by clicking near the middle of the timeline and rotating your Smart Object layer 180 degrees
3. Click near the end of your timeline, and make your third rotation keyframe by rotating your Smart Object Layer 180 degrees.
Thanks JJMack, your input and animation helped me immensely. -
Some of my rotation animation is stepping at about one degree increments instead of tweening smoothly. I'm using classic tweening. I see that if I select the whole interval and use F6 to convert every tween frame to a key and then select the object at the different frames, that I see under transform that the skew values are changes from frame to frame aroung that same one degree range. Is there a solution to this?
Some of my rotation animation is stepping at about one degree increments instead of tweening smoothly. I'm using classic tweening. I see that if I select the whole interval and use F6 to convert every tween frame to a key and then select the object at the different frames, that I see under transform that the skew values are changes from frame to frame aroung that same one degree range. Is there a solution to this?
-
Trying to understand and use an Array
I would like to have a game where the player has three tries before the game stops or moves on to another level.
In this game an object jumps up with a mouseClick and if it doesn't hit it's target it falls where it crashes into a floor that uses hitTestObject.
This leads to a restartBtn. but I want that movieClip to remain on the stage, which has an animation that splatters. A new MovieClip is put on to the stage and the cycle starts over.
Before this stage of the game s over I want the various movieClip splatters to be visible on the stage.
I thought an Array would help me achieve this result but I'm not familiar with using them dynamically.
I'm hoping someone can give me some tips as to what might work.
I have temporarily separated this problem from the rest of the code as I'm hoping it will be clearer.
This is where I left off and when I click the button it seems to eliminate the previous movieClip and introduce the next one.
But it seems like I'm missing someting so I thought I would post it as it is probably a problem that comes up a lot in games. Thanks
import flash.display.MovieClip;
import flash.events.MouseEvent;
var movieArray:Array = new Array();
movieArray = ["Egg_A","Egg_B","Egg_C"];
movieArray[0] = new Egg;
movieArray[1] = new Egg_B;
movieArray[2] = new Egg_C;
var myMovieClip:MovieClip;
init();
function init()
for (var i:int = 0; i < movieArray.length; i++)
emptyMC.addChild(movieArray[i]);
mainBtn.addEventListener(MouseEvent.CLICK,changeEgg);
function changeEgg(evt:MouseEvent):void
for (var i:int = 0; i < movieArray.length; i++)
movieArray.splice(i,1);
init();I don't see where an array is going to make anything remain. Just having an instance created without removing it until you want it to go away is all you need.
I don't see much reason with what you are doing with that array either. First you assign a set of strings to it, then you replace those strings with instances of some Egg objects. Then you add all the eggs to the display at once in your init() function (not one at a time), or you remove them all from the array with your change Egg function... calling the init() function after emptying the array isn't going to yield much since the init() function uses the array. -
Problems with animations using key frames and other bugs
To me, the current version of Acrobat 3D Toolkit (7.0.7) seems like a beta version -- unfortunately I payed the full price. Or maybe there are a few settings only set wrong on my system and someone can tell me how to correct this ...
++ Animations using key frames
According to the manual page 86:
<-----
6. Ensure the time/frame line is positioned at frame 0, right-click over the time/frame line in the timeline, and then click Insert Key.
---->
I cannot get this context menu option (see http://www.vornweg.de/acrobat3d/no-insert-key-option.gif )
++ Empty and hence almost useless Animations Options dialog
The Animation Options dialog does not list any Sequence entries -- although there are sequences available, see http://www.vornweg.de/acrobat3d/empty-animation-options-dialog.gif.
++ Mixed up icon bars
Moving icon bars around can result in a complete mix-up of unusable icons, see http://www.vornweg.de/acrobat3d/mixed-up-menus.gif
++ Functionless Object Position toolbar
The object position cannot be set using the Object Position toolbar, the OK icon is deactivated all the time although the tick icon is darker green, i.e. supposedly active (see http://www.vornweg.de/acrobat3d/position-panel.gif
++ Missing things
Why is there no properties panel visible all the time, displaying the properties of the selected object and allowing to change properties (e.g. positions, angles etc.)?
Why is it impossible to view different trees at the same time (e.g. scene tree and animation tree)?
Why is it impossible to have different models open simultaneously? (E.g. to compare settings or even to copy properties/objects from one model to the other.)
Why is it impossible to create new folders in the scene tree? Imported folders are available, but for the scene management within Acrobat 3D I may have different requirements than the CAD designer had. (Also, I would like to put new objects in folders of my own.)
Why is tabbing not supported more extensively? E.g. All the different trees (Folders, Scene Tree, ...) could all be put into a single tabbed panel saving valuable space on my screen but still giving easy access to all items.
Why is there no Undo for camera position changes?
Why is there no Undo for material edits (e.g. applying a new material to an object)?
Why is it only possible to animate object movements, not the making visible/invisible of objects and changes of the camera position?
Why is it impossible to save object selections? Within a larger model it always is a lot of clicking to get the view required for certain actions.
Why are there a lot of different Display options available on-screen but when a scene is rendered into a file, Acrobat 3D uses the same display option all the time (i.e. Solid)?
Probably this list could be extended quite heavily. And some of these missing things may be time intensive to realize (and saved for future versions), others are comparably basics now-a-days.I agree with the "beta" feel of the 3D Toolkit. I have been very frustrated getting animation to work well. Specifically, I made an animation that plays in Toolkit, imports and plays into Acrobat 3D, but does not play in Reader. It displays 3D and rotates, etc., but I cannot get the animaiton to play.
The contextural menu issue you see I see also. The menu appears, but without the "add Key Frame" item. I find that if I select an object, move it a bit, move it back, then the menu will appear. (at least sometimes I think) Pretty frustrating. -
Make a grid menu using an array
Hi,
I was wondering if there is a way to make a menu of buttons from an array arrange themselves in a 3x3 grid.
I have used code i have gotten from this forum to place them next to each other onto the stage (which was quit awesome) and i have found code to place them in a rotating cell from an array but is it possible to do it as a grid?
Any help would be greatuse Math.floor and the modulo operator to construct grids:
var xSpace:int = 100;
var ySpace:int=100;
var rowNum:int=3;
var colNum:int=3;
for(var i:int=0;i<yourarray.length;i++){
yourarray[i].x=xSpace*i%rowNum;
yourarray[i].y=ySpace*Math.floor(i/colNum); -
Hello to everyone,
This is my first time here in the forum.
I have recentyl started using after effects and I am very surprised at how easy it is to create animation & effects with it.
My question is about a rotation animation I have come across.
Particularly, although I thought it was easy, I am not able to recreate the rotation of the icons at approximately 40sec of
this bluefx video. When the main icon explodes they all start to make a rotation animation around their vertical axis.
However, I cannot recreate it with simple rotations.
I have seen this animation in other videos as well, so I believe that there must be some kind of a technique (like a design
pattern) for it.
I have tried using the combination of a null object controlling a camera and setting the object to be rotated to "orient towards
camera". I see the animation in the RAM preview through another camera of the composition. However, when I render it the
animation does not show because the active camera is the one moving. And it is moving in order for the object to follow it. So,
the animation cannot be rendered.
I would be very grateful if anyone could help me out with this. Ideas, known techinques, anything.
Thanks a lot!I'm not sure I follow you. Rotation values are always based on the x, y, and z planes of the layer. You can change the way the rotation tool (w) effects these numbers by selecting Local, World, or View axis modes or by picking Rotation or Orientation in the tool bar.
I usually do all of my rotation manipulation in the timeline.
Taking a closer look at the animation on my computer it looks like you can duplicate it with z and x rotation only. It just takes 3 keyframes for x and 2 for z with a little graph editor tweaking. -
How do I use an array variable in the assignment target?
Hi,
I am creating a BPEL process in which I have to use an array variable. The array variable needs to be initialized based on some condition.
The issue is I cannot find a way to set the value of the array variable. There are ways to GET the value of an array variable indexing into it.
But how do I set the value by using the Array variable in the <to> tag?
Any help is appreciated. I am using BPEL 10.1.2.0.2.
Thanks.You can declare a variable of type integer which will server as your index. Figure out based on some condition in your process which index of array to update. Assign to your integer variable you created.
And have Assign copy operation like this -
<copy>
<from variable="Var_Output_FetchDueDate"
part="OutputParameters"
query="/ns18:OutputParameters/ns18:DUEDATE"/>
<to variable="outputVariable" part="payload"
query="/client:GetCustomerAccountInformationProcessResponse/client:customer/client:accounts/client:account[$Var_Counter]/client:dueDate"/>
</copy>
I have been using this in my processes. -
I guess I'll show you what I am trying to do rather and then explain it
public class arraycalc
int[] dog;
public void arraycalc()
dog = new int[2];
public void setSize(int size)
dog[1] = size;
public int getSize()
return dog[1];
This gives me a null pointer exception...
How can I use my array from other methods?You have to make the array static. :)
Although I must admit, this is rather bad usage. What you want to do is use an object constructor to make this class an object type, and then create the array in your main class using this type, and then call the methods from this class to modify your array. Creating the array inside the other method leads to a whole bunch of other stuff that's ... well, bad. :)
Another thing: Because you're creating your array inside this class and you want to call your array from another class, you need to make the array static; to make it static, you must make your methods static. And according to my most ingenious computer science teacher, STATIC METHODS SUCK. :D
So, if you want to stick with your layout, it would look like:
public class arraycalc
static int[] dog;
public static void arraycalc()
dog = new int[2];
public static void setSize(int size)
dog[1] = size;
public static int getSize()
return dog[1];
}But I must warn you, that is absolutely horrible code, and you shouldn't use it. In fact, I don't even know why I posted it.
You should definitely read up on OOP, as this problem would be better solved by creating a new object type. -
How to change the frequency of pulse train on the fly using an array of values?
Hi all!
First I want to thank U for the great job you are doing for this forum.
Iam still busy trying to control a stepper motor, by sending pulses from my E-series 6024 to a compumotor s6- stepper Driver. I've managed to get it working. I desperately need to control the motor using the values from an array. I believe we can use two approaches for that:
1st - I can get an array of the "numbers of pulses". Each element must run for 10 milliseconds. Using that we can calculate the array of frequencies to send the number of pulses within 10 milliseconds for each specific element. Could we use the arrays of "number of pulses" and frequencies in a "finite pulse train " and up
date with each element every 10 millisecond?
2nd - Or Could we use of the frequency array in a "continuous pulse train vi" and update it every 10 milliseconds?
Please note that I must use the values as they are.
Can someone please built a good example for me? Your help will be appreciated.
Regards
Chris
Attachments:
number_of_steps.txt 17 KB
frequency.txt 15 KBTiano,
I will try to better explain the paragraph on LabVIEW. The original paragraph reads ...
"While in a loop for continuous pulse train generation, make two calls to Counter Set Attribute.vi to set the values for "pulse spec 1" (constant 14) and "pulse spec 2" (constant 15). Following these calls you would make a call to Counter Control.vi with the control code set to "switch cycle" (constant 7). The attached LabVIEW programs demonstrate this flow."
You can make two calls to Counter Set Attribute or you can make a call to Set Pulse Specs which, if you open this VI, you will see that it is just making two calls to Counter Set Attribute. What you are doing with the Counter Set Attribute VIs is setting two registers called "pulse s
pec 1" and "pulse spec 2". These two registers are used to configure the frequency and duty cycle of your output frequency.
The example program which is attached to this Knowledge Base demonstrates how to change the frequency of a continuous generation on the fly. Why continuous? Because changing the frequency of a finite train would be easy. When the train completes it's finite generation you would just change the frequency and run a finite train again. You would not care about the time delay due to reconfiguration of the counter.
If you would like to change the frequency of the pulse train using a knob, this functionality will have to be added in the while loop. The while loop will be continuously checking for the new value of the knob and using the knob value to set the pulse specs.
LabVIEW is a language, and as with learning all new languages (spoken or programatic) there is a lot of learning to be accomplished. The great thing is that LabVIEW is much easier than mo
st languages and the learning curve should be much smaller. Don't fret, you'll be an expert before you know it. Especially since you're tackling a challenging first project.
Regards,
Justin Britten -
Using Variables/Arrays from one class in another
Hello all,
First, to explain what I am attempting to create, is a program that will accept input of employee names and hours worked into an array. The first class will accept a command line argument when invoked. If the argument is correct, it will call another class that will gather information from the user via an input box. After all names and hours have been input for employees, this class will calculate the salary based upon the first letter of each employee name and print the total hours, salary, etc. for each employee.
What I need to do now is to split the second class into two: one that will gather the data and another that will calculate and print the data. Yes, this is an assignment. However, I am trying to learn and I have gotten this far, but I am stuck on how to get a class to be able to use an array/variables from another class.
I realize the below code isn't exactly cleaned up...yet.
Code for AverageSalaryGather class:
import javax.swing.JOptionPane; // uses class JOptionPane
import java.lang.reflect.Array;
import java.math.*;
public class AverageSalaryGather {
public static void gatherData() {
char[] alphaArray = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','z'};
String[][] empInfoArray = new String[100][4];
String[] empNameArray = new String[100];
String finalOutput = "Name - Rate - Hours - Total Pay\n";
String averageHoursOutput = "Average Hours Worked:\n";
String averageSalaryOutput = "Average Hourly Salary:\n";
String averageGroupSalaryOutput = "Average Group Salary:\n";
String[] rateArray = new String[26];
char empNameChar = 'a';
int empRate = 0;
int payRate = 0;
for (int i = 0; i < 26; i++) {
payRate = i + 5;
rateArray[i] = Integer.toString(payRate);
int countJoo = 0;
while (true) {
String namePrompt = "Please enter the employee name: ";
String empName = JOptionPane.showInputDialog(namePrompt);
if (empName == null | empName.equals("")) {
break;
else {
empInfoArray[countJoo][0] = empName;
for (int i = 0; i < alphaArray.length; i++) {
empNameChar = empName.toLowerCase().charAt(0);
if (alphaArray[i] == empNameChar) {
empInfoArray[countJoo][1] = rateArray;
break;
countJoo++;
// DecimalFormat dollarFormat = new DecimalFormat("$#0.00");
for (int i = 0; i < empInfoArray.length; i++) {
if (!(empInfoArray[i][0] == null)) {
String hourPrompt = "Please enter hours for " + empInfoArray[i][0] + ": ";
String empHours = JOptionPane.showInputDialog(hourPrompt);
int test = 0;
empInfoArray[i][2] = empHours;
// convert type String to double
//double tmpPayRate = Double.parseDouble(empInfoArray[i][1]);
//double tmpHours = Double.parseDouble(empInfoArray[i][2]);
//double tmpTotalPay = tmpPayRate * tmpHours;
// create via a string in empInfoArray
BigDecimal bdRate = new BigDecimal(empInfoArray[i][1]);
BigDecimal bdHours = new BigDecimal(empInfoArray[i][2]);
BigDecimal bdTotal = bdRate.multiply(bdHours);
bdTotal = bdTotal.setScale(2, RoundingMode.HALF_UP);
String strTotal = bdTotal.toString();
empInfoArray[i][3] = strTotal;
//String strTotalPay = Double.toString(tmpTotalPay);
//empInfoArray[i][3] = dollarFormat.format(tmpTotalPay);
else {
break;
AverageSalaryCalcAndPrint averageSalaryCalcAndPrint = new AverageSalaryCalcAndPrint();
averageSalaryCalcAndprint.calcAndPrint();
Code for AverageSalaryCalcAndPrint class (upon compiling, there are more than a few complie errors, and that is due to me cutting/pasting the code from the other class into the new class and the compiler does not know how to access the array/variables from the gatherData class):
import javax.swing.JOptionPane; // uses class JOptionPane
import java.lang.reflect.Array;
import java.math.*;
public class AverageSalaryCalcAndPrint
public static void calcAndPrint() {
AverageSalaryGather averageSalaryGather = new AverageSalaryGather();
double totalHours = 0;
double averageHours = 0;
double averageSalary = 0;
double totalSalary = 0;
double averageGroupSalary = 0;
double totalGroupSalary = 0;
int countOfArray = 0;
for (int i = 0; i < empInfoArray.length; i++) {
if (!(empInfoArray[0] == null)) {
totalSalary = totalSalary + Double.parseDouble(empInfoArray[i][1]);
totalHours = totalHours + Double.parseDouble(empInfoArray[i][2]);
totalGroupSalary = totalGroupSalary + Double.parseDouble(empInfoArray[i][3]);
countOfArray = i;
averageHours = totalHours / (countOfArray + 1);
averageSalary = totalSalary / (countOfArray + 1);
averageGroupSalary = totalGroupSalary / (countOfArray + 1);
String strAverageHourlySalary = Double.toString(averageSalary);
String strAverageHours = Double.toString(averageHours);
String strAverageGroupSalary = Double.toString(averageGroupSalary);
for (int i = 0; i < empInfoArray.length; i++) {
if (!(empInfoArray[i][0] == null)) {
finalOutput = finalOutput + empInfoArray[i][0] + " - " + "$" + empInfoArray[i][1] + "/hr" + " - " + empInfoArray[i][2] + " - " + "$" + empInfoArray[i][3] + "\n";
averageHoursOutput = averageHoursOutput + strAverageHours + "\n";
averageSalaryOutput = averageSalaryOutput + strAverageHourlySalary + "\n";
averageGroupSalaryOutput = averageGroupSalaryOutput + strAverageGroupSalary + "\n";
JOptionPane.showMessageDialog(null, finalOutput + averageHoursOutput + averageSalaryOutput + averageGroupSalaryOutput, "Totals", JOptionPane.PLAIN_MESSAGE );Call the other class's methods. (In general, you
shouldn't even try to access fields from the other
class.) Also you should be looking at an
instance of the other class, and not the class
itself, generally.Would I not call the other classes method's by someting similar as below?:
AverageSalaryCalcAndPrint averageSalaryCalcAndPrint = new AverageSalaryCalcAndPrint();
averageSalaryCalcAndprint.calcAndPrint(); Well... don't break down classes based on broad steps
of the program. Break them down by the information
being managed. I'm not expressing this well...Could you give an example of this? I'm not sure I'm following well.
Anyway, you want one or more objects that represent
the data, and operations on that data. Those
operations include calculations on the data. Other
classes might represent the user interface, and
different output types (say, a file versus the
console).Yes, the requirements is to have a separate class to gather the data, and then another class to calculate and print the data. Is this what you mean in the above? -
How to create and use mutable array of UInt8
Hello!
If I get it right, UInt8 *buffer, buffer - is a pointer to a start of array?
Then how to create and use mutable array of UInt8 pointers?
The main target is a creation of the module that will store some byte array requests and will send all of them at the propriate moment.I try
- (void) scheduleRequest:(UInt8 *)request {
if (!scheduledRequests) scheduledRequests = [[NSMutableArray array] retain];
[scheduledRequests addObject:request];
But get warning:"passing argument 1 of 'addObject:' from incompatible pointer type" -
How to use an array in a SQL Query
Hi
I need to use an array of numbers such as a VARRAY or Associated Index Array so that I can do the following SQL:
select *
from *
where array is null or id is in array
So that if the array is empty it will return all the records, and if the array is not empty then it will return only the rows associated with the ids in the array.
Is this possible?
Regards,
Néstor BoscánActually, solution I posted returns all rows when VARRAY is empty, not when it is null. To return all rows when VARRAY is null, use:
SQL> select ename
2 from emp
3 where deptno in (select * from table(cast(sys.OdciNumberList(10,30) as sys.OdciNumberList)))
4 or sys.OdciNumberList(10,30) is null
5 /
ENAME
ALLEN
WARD
MARTIN
BLAKE
CLARK
KING
TURNER
JAMES
MILLER
9 rows selected.
SQL> select ename
2 from emp
3 where deptno in (select * from table(cast(null as sys.OdciNumberList)))
4 or null is null
5 /
ENAME
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
ENAME
JAMES
FORD
MILLER
14 rows selected.
SQL> SY. -
Error in the pl/sql block using associative arrays
Hi
I tried the following block of code using associative arrays.
DECLARE
TYPE NumTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
CURSOR c1 IS SELECT empno FROM emp;
empnos NumTab;
rows NATURAL := 10;
BEGIN
OPEN c1;
FOR i in empnos.first..empnos.last LOOP
/* The following statement fetches 10 rows (or less). */
FETCH c1 BULK COLLECT INTO empnos LIMIT rows;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE ( empnos.next(i));
END LOOP;
CLOSE c1;
END;and the error is
DECLARE
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 8could you please let me know where i'm wrong
and please guide me where we use these associative arrays.
ThanksSomething like this. Do minor modification in your code.
DECLARE
TYPE NumTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
CURSOR c1 IS SELECT empno FROM emp;
empnos NumTab;
rows NATURAL := 5;
BEGIN
OPEN c1;
LOOP
/* The following statement fetches 5 rows (or less). */
FETCH c1 BULK COLLECT INTO empnos LIMIT rows;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE ( empnos.count);
END LOOP;
CLOSE c1;
END;
/ -
Error when using byte array in web service model interface
Hello everybody,
I'm using a web service model in my web dynpro application. The web service requires a byte array as import parameter.
When starting the web dynpro application the following error occurs:
com.sap.tc.webdynpro.services.exceptions.WDTypeNotFoundException: type java:byte not found
at com.sap.tc.webdynpro.services.datatypes.core.DataTypeBroker.getDataType(DataTypeBroker.java:216)
I'm using byte arrays several times in my application --> no problem. So why does the error say "byte not found" when using the web service?
Thanks for your help!
regards
ChristianHi,
maybe this is the problem. The type is byte and not binary.
But I have the same problem as mentioned in the other thread: I can't change the type.
The type in the WSDL of my web service is "base64binary". Is there maybe a possibility to import a jar-file for this type?
Christian
Maybe you are looking for
-
Reading from file one at a time
I am trying to read from an Excel file one cell at a time, and am having some trouble. I have included my VI. Any help would be greatly appreciated. Attachments: demo.vi 165 KB
-
Report with Transaction currencies
Hi All. i am in the process of developing a report in project systems with my developer. The scanerio is investment projects (all internal projects) . Exchange rate type P is defined and is uploaded one in an year. We have been using budgets in diffe
-
IBook G4 owner scorned: is the time right for MacBook?
Hello, I am the owner of an iBook G4 (early 2004), which replaced an iBook G3 that was serviced three times in the first six months I owned it. Earlier this year, I had to replace the logic board on the G4 (ugh), and, frankly, two and a half years in
-
my MacBook Pro is crashing and Mac OS stops working sometimes so I have to restart it. And sometimes it stays on the first white-ish screen with the Apple and won't start further. What to do? Does that mean that the is the end of my Mac Book 5bought
-
ITunes keyboard shortcut not working
Upgraded to iTunes 7.4.2 and now keyboard shortcut (Control/option/arrow) to advance within song no longer works. I use this with Voice Memos for transcribing interviews. Without it, transcription takes 4-5 times as long. Please help.