Satori-ProjectYou've got a lot of media on your computer, be it songs, photos, home videos or anything else. Probably the most appealing part of SatoriHub is that it allows you to easily experience your media in your living room - through your TV and stereo, not tied to a small screen and a mouse/keyboard.
It isn't a media playback program, though. Instead, you can use whatever players you want, as long as there's a SatoriHub plugin for it. SatoriHub runs in the background and uses your input (from an IR remote for instance) to control other programs or equipment. It frees you from the mouse and keyboard, and allows you to sit back on the couch and watch your content on the big screen TV.
Check out Getting Started with SatoriHub to learn more.
Imagine someone hands you a new remote and tells you it lets you control your computer. That might not sound very interesting, since you already have a mouse and keyboard to do whatever you want. But what happens if you want to play your media on your TV, or your music through your stereo? You would want to use a remote then, right?
What do you think the remote should do? How about have one button that starts your music player, and maybe you can set the number keys to your favorite playlists? Of course, the remote would have Play, Pause, Skip and other buttons that just work just the way you expect.
If you have a program to watch Blu-ray, like TotalMedia Theatre or PowerDVD, it would have a button to open you drive tray, then close it and start the movie. Your Play and Pause buttons would just work with the movie software. The buttons would do what you expect, no matter which program is running, if you could make the perfect computer remote. For your personal videos, how about being able to use the number keys in SMS to search through them and play exactly what you want?
That’s what SatoriHub does, and more. It can communicate with your smartphone, so you can use it as a smart remote. It can control other equipment, to change the input on your stereo or turn the TV on or off. And it can turn the lights on and off, too. Now, SatoriHub isn’t magic – these last couple of examples require equipment that can interface with the computer.
SatoriHub aims to make using a computer as part of your Living Room experience accessible too. If you have a laptop you can connect to your TV and/or stereo, getting a $25 remote (remote-receivers) is all you need to see if SatoriHub is for you. The remote lets you sit back and control your media (photos, music, videos, etc) the way you are used to controlling your TV.
SatoriHub isn’t an all-in-one media player. Honestly, there’s no such thing. Instead, it works with other devices like a remote, smartphone or webpage and uses those to control whatever applications you want to run. Because it is all plugin based, as new formats or applications come out, you just update or download the plugins that work with them, and enjoy your new content.
SatoriHub is a fork of EventGhost (EG). From a developers perspective, SatoriHub uses different technology than EventGhost (Qt instead of wxWidgets, standard Python instead of Stackless Python). You can check out Porting EventGhost plugins to SatoriHub for more information tailored to developers.
For everyone else, there are three major enhancements in the SatoriHub core.
No Macros
First of all, in EG, you have three configuration elements - the Event, the Action and the Macro - manipulated in the configuration tree. The process flow is such that an Event triggers one or more Macros to run, and the Macros contain the Actions. The Actions have no additional logic, so any if/then type conditions or AutoRepeat capability is built into the Macros. You also enable/disable functionality by running exclusion macros to turn on or off groups of macros.
In SatoriHub, there are only Events (or Signals) and Actions. The linkage between Signals and Actions is all handled by a new UI. There are new Actions to handle if/Then, Actions that should be run together (Groups), and for handling AutoRepeat and LongPresses. These new Actions are simply wrappers around other Actions, and are easily set up in the new UI. Check out SatoriHub Configuration more info. And a great benefit of this is that because these are now Actions, plugin developers can incorporate things like AutoRepeating buttons into their plugins, giving a richer end-user experience sans "tweaking".
Automatic Context Switching
In EG, you might have Macro folders for several different programs. A common usage is to a Macro that checks for each of those programs starting or exiting and then runs exclusion Macros to control which folders will respond to Events.
In SatoriHub, we use the term "Context" to mean all of the Actions for a given plugin. So if the TheaterTek Context is active, Events will only trigger TheaterTek Actions, not Actions for other Programs (unless they are set a "global" - more on that in a moment). SatoriHub automatically watches as programs are started and closed, so that the active Context is automatically adjusted to whichever program was most recently brought into focus. This only applies to programs for which there is a Context (i.e. a plugin).
Standard Remote Buttons
EventGhost originally handled IR Remote codes by converting the raw pulses into recognized sequences (for instance, the Ok button on an MCE remote would produce an MceRemote.RC6mode6_0_800F0422 Event). You would then drag the desired Events into your Macros to trigger actions. You could manually define remappings to convert this Event into MceRemote.Ok and at some point some plugins had this remapping built in by default.
SatoriHub standardizes this process, and provides a default set of Buttons to use. It is the Remote plugins responsibility to map the individual codes to appropriate names (obviously not all buttons will be available on all remotes). The benefit comes in that application plugins can use these same names for Actions. When the Automatic Context Switching makes the application Context active, any remote Events that have the same name as application Actions will automatically be linked together (this can be easily overridden in the new UI as well). In EG, even with createMacrosOnAdd, you still have to manually assign Events to each Macro. In SatoriHub, the unless so want to change the default behaviour, all of this work is done automatically.
But what about...?
If you noticed that all of the new features of SatoriHub are devoted to controlling applications with an IR Remote, you are right.
Don't worry - you can still use SatoriHub for completely general Event/Action handling. While the Alpha version of SatoriHub does not include a mature capability yet, we are looking at innovative ways to enable rich two-way interfaces with SatoriHub from webbrowser and smart devices as well.
The Hub part is easy. Conceptually, a hub is a place where things come together and split apart. In SatoriHub (and EventGhost), everything works in terms of Signals and Actions. A signal is something that happens - a CD inserted into the optical drive, files added to a directory or the press of a button on a remote. When these events or signals occur, SatoriHub responds with actions - such as playing the CD in a particular program, adding new records to a database, or pausing playback in a particular program. So its a hub in the sense that signals come in and actions go out - with you controlling the actions.
Satori is a little trickier to explain....
In my programming experience, I've found that certain code (usually my own) doesn't quite sit right with me. Whether it be an algorithm or a UI, I just have a nagging feeling that it could be better, but I can't necessarily put my finger on why. If I'm lucky, after a (potentially long) while I suddenly come up with a better way. It's usually at this point that I can put my finger on what's been bugging me, and the weight of that bother feeling just disappears. I've come to mentally call this experience Satori.
Satori is a Japanese word for a "flash of insight or enlightenment". Zen Buddhists would ponder particular riddles called "koans" - like "What is the sound of one hand clapping?" until, with a moment of satori, they would gain understanding.
I put the two ideas together and SatoriHub was born!
I don't have the foggiest idea. Bart Simpson had a funny answer, though.