I need some help. I want my Arduino to control iTunes, like turn up the volume or skip to the next track. I'm also a bit stubborn, and I don't want to have extra software (some sort of serial port communicator, like ASProxy) running in order for this to work. So I have a few thing I might try:
IR communication (make the Arduino behave like an Apple Remote) -> does not work, signal is not strong enough, and reception sucks when I'm sitting in front of my iMac
USB HID communication: I recently found out about this, but it seems I need an extra USB connections, which seems silly, but I might try this
Bluetooth communication: this would probably be the best solution, but the XBee shield + bluetooth will cost me around €50, so I need to be sure that this will actually work
Does anyone have any tips or other ways I can try to achieve my goal?
- Bluetooth communication: this would probably be the best solution
What software is going to be running on the Mac that forms the other end of the serial communications channel?
I don't want to have extra software (some sort of serial port communicator, like ASProxy) running in order for this to work.
Oh, I see.
so I need to be sure that this will actually work
Save your money, then.
Because iTunes does not have anything whatsoever to do with serial ports, you will need some program to act as an intermediary between your serial port and iTunes (really between your serial port and AppleScript, which is your entry point for controlling iTunes).
If you don’t have any software on the computer listening for data from the Arduino, then there’s no way you can control iTunes. Maybe you don’t have to use an already existing piece of software like ASProxy, but you will need something.
I got it to work, with additional software (SerialPort X and an Applescript which is now running in the background). Activity monitor tells me it still uses 12% of my CPU, which is a lot for such a simple program, right? Anyway, I'm currently very proud of myself that I got this to work!
it still uses 12% of my CPU, which is a lot for such a simple program
Then increase the polling interval and it will use less.