All Projects → joshkunz → Itunescontrol

joshkunz / Itunescontrol

Licence: mit
[Unmaintained] Global Hotkeys for iTunes

Projects that are alternatives of or similar to Itunescontrol

Scaleapp
scaleApp is a JavaScript framework for scalable and maintainable One-Page-Applications
Stars: ✭ 353 (+1434.78%)
Mutual labels:  unmaintained
Store Receipt Validator
PHP receipt validator for Apple iTunes, Google Play and Amazon App Store
Stars: ✭ 547 (+2278.26%)
Mutual labels:  itunes
Timegrid
Free, open-source, online appointments platform based on Laravel PHP Framework.
Stars: ✭ 793 (+3347.83%)
Mutual labels:  unmaintained
Msx
JSX for Mithril.js 0.x
Stars: ✭ 370 (+1508.7%)
Mutual labels:  unmaintained
Jmc
jmc - a new macOS media organizer
Stars: ✭ 432 (+1778.26%)
Mutual labels:  itunes
Node Jscs
⤴️ JavaScript Code Style checker (unmaintained)
Stars: ✭ 5,026 (+21752.17%)
Mutual labels:  unmaintained
Deprecated Mapbox Ios Sdk
REPLACED – use https://www.mapbox.com/ios-sdk instead
Stars: ✭ 325 (+1313.04%)
Mutual labels:  unmaintained
Tools
various simple tools, not worth a project on their own
Stars: ✭ 17 (-26.09%)
Mutual labels:  unmaintained
Complexity Report
[UNMAINTAINED] Software complexity analysis for JavaScript projects
Stars: ✭ 465 (+1921.74%)
Mutual labels:  unmaintained
Play Button Itunes Patch
Play Button iTunes Patch
Stars: ✭ 661 (+2773.91%)
Mutual labels:  itunes
Developing Ios 10 Apps With Swift
Stanford 公开课,Developing iOS 10 Apps with Swift 字幕翻译
Stars: ✭ 391 (+1600%)
Mutual labels:  itunes
Axe Cli
[Deprecated] A command-line interface for the aXe accessibility testing engine
Stars: ✭ 419 (+1721.74%)
Mutual labels:  unmaintained
Muse
An open-source Spotify controller with TouchBar support
Stars: ✭ 594 (+2482.61%)
Mutual labels:  itunes
React Heatpack
A 'heatpack' command for quick React development with webpack hot reloading
Stars: ✭ 354 (+1439.13%)
Mutual labels:  unmaintained
Miniproxy
🚨⚠️ UNMAINTAINED! ⚠️🚨 A simple PHP web proxy.
Stars: ✭ 810 (+3421.74%)
Mutual labels:  unmaintained
Podcastgenerator
Open Source Podcast Publishing Solution since 2006
Stars: ✭ 344 (+1395.65%)
Mutual labels:  itunes
Bootstrap Tags
Bootstrap-themed jquery tag interface
Stars: ✭ 562 (+2343.48%)
Mutual labels:  unmaintained
Divergence Meter
Divergence Meter is an application based on Steins;Gate. Unmaintained, feel free to contribute
Stars: ✭ 18 (-21.74%)
Mutual labels:  unmaintained
Rdfgrid
[Unmaintained] RDFgrid is a framework for batch-processing RDF data with Hadoop and Amazon Elastic MapReduce.
Stars: ✭ 16 (-30.43%)
Mutual labels:  unmaintained
Newforms
Isomorphic form-handling for React
Stars: ✭ 649 (+2721.74%)
Mutual labels:  unmaintained

iTunesControl

Global hotkeys for iTunes on windows.

Disclaimer: Since this has become my most popular repository, I would like to add that is code is absolutely not representative of the type of code I produce now that I — y'know — actually know how to program. For details see below.

What's in here?

  • iTunesControl.py - The original python script, requires pyHook and the python win32 hooks installed. It's probably working.
  • iControl.ahk - Autohotkey re-write of the original script. Mostly just for noodling around with autohotkey.
  • iTunesCOM - The ridiculously hard to find iTunes COM interface documentation. I've put it up on github pages here.

Hotkeys

Basic Keyboard Shortcuts

Alt + Q Qut the application
Alt + P Toggle Play/Pause
Alt + Right Next Track
Alt + Left Previous Track
Alt + Up Volume Up
Alt + Down Volume Down
Alt + (-) Mute (Set volume to 0)
Alt + (+) Max Volume (Set volume to 100)
Alt + S Toggle Shuffle

Advanced Keyboard Shortcuts

Note: the Alt key must be held down durning the entire command.

Alt + R + {1, A, N} Toggle repeat. R+1 is repeat one. R+A is repeat all. R+N is repeat none.
Alt + H + [Playlist Name] + Enter Play playlist [Playlist Name] (Alt key must be held down while entering playlist name
Alt + O + {1, 2, 3} + [Search Term] + Enter Search for term [Search Term] based on {1, 2, 3}, put those songs into a new playlist, and start playing the playlist. 1: Search by artist name. 2: Search by album name. 3: Search by song name. (Again, the Alt key needs to be held down during the entire command)

Mouse Commands

Alt + Click Toggle Play/Pause
Alt + Click and Drag to the Right Next track
Alt + Click and Drag to the Left Previous track
Alt + Scroll Up Volume Up
Alt + Scroll Down Volume Down

Some Tips and Cautions

  • Alt + H + "Music" - Will play the playlist "music" which is the entire library. It's good for switching back once you get bored of a playlist.
  • If for some reason you want to used in a program that has been "run as administrator" this program also needs to be run as administrator.

Design and Hacking (really it's an apology)

I wrote this program back when I was about 15, and really new to both python and programming in general. I think this is the first program I wrote that used threads, and I don't think I quite knew what that meant besides "you can run more than one thing at once" and "you have to pass messages with a queue or it will crash". I've tried to hold off on releasing this because it's in such bad shape, but I haven't had the time or the patience to clean it up myself. Good luck if you try, open a pull request with improvements. Since the thing has about zero comments explaining what it does, I'll add a brief description of the design below.

It works like this: pyHook keylogs every keystroke, and passes it back to the operating system. If a keystroke is entered and the Alt key is depressed at the same time, the program will block the keystroke from reaching the other applications, and put it into a queue. (There a two separate queues, one for the mouse and another for the keyboard). There are two threads that loop waiting for an item to come through the queue, both of the threads maintain a connection to iTunes using it's COM interface. Once an item is received, they have huge conditional sections that execute COM functions based on the key pressed. Things get a little more complicated with the text-entry stuff, basically it just bypasses the other conditionals.

Have fun, and good luck using it (and please believe me when I say I write much better code these days).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].