Trigger Finger Documentation

- Editing Buttons: to edit a button, right-click it, or click/touch it for longer than a second and the edit window will appear. Or you can just drag a song, playlist, folder of songs, movie, program or batch file onto it, then drag an image onto it to set its graphic. Doesn't get much easier than that.

- Playlists and songs: to make a button play a song or playlist, drag it onto that button, or go to the edit screen (right-click the button or left click it for longer than a second)) and scroll to the bottom of the stations pulldown list and select "play local song or playlist". Going to the edit screen also lets you add a caption for the button, which is nice for keeping track of things. To change the graphic for any button, remember that you can just drag an image onto it.

- Dynamic playlists: to make a button create a randomized playlist from a folder, drag the folder onto the button. Alternatively you can go to the edit screen (right-click the button or left click it for longer than a second) and scroll to the bottom of the stations pulldown list and select "dynamic playlist from folder" then browse to the folder. Now each time you click this button it'll create a dynamic playlist including subdirectories, so if you're pointing it at your entire jukebox it might take a moment. When it finishes the first song it'll pick another without having to regenerate the directory listing, so its much faster than the first time. If you're working with a huge directory or a network path, you might want to click the "next" button when you want to skip a song so it doesn't have to build the directory listing over again. And a little advanced tip: it saves its dynamic playlist to c:\program files\Trigger Finger\dynamic_playlist.pls, so if you don't need the dynamic regeneration you can also rename that file and then use the "play local file" option.

- Video: to make a button play a movie, drag the movie onto that button or go to the edit screen by right-clicking the button (or long clicking it) and choose "play movie" from the bottom of the stations pulldown menu. Note that there's a few different ways to play movies, which you configure in Preferences. By default its set to "windows", which means it'll simply send the video to the default video player on your computer, which hopefully is either VLC or Zoom Player . You should probably use this mode if you're just watching movies since it gives you nice control. If you're doing VJ type stuff you should read the VJ notes below.

- Random movie: to make a button pick a random movie from a directory, go to the edit panel (right or long click a button) and choose "pick a movie from a folder". Note that you can't simply drag a folder onto a button since that's reserved for picking random songs.

- Programs: drag a program onto a button and that button will trigger it. If you need commandline arguments you can make a batch file and associate it with the batch file. Note that option "run batch file and hide the dos box", which does just that: will run your batch file without the ugly black popup window.

- Controlling lights via X10: One of my favorite features is being able to control lights from Trigger Finger. Its super slick and works wirelessly, meaning the light you're controlling doesn't have to be connected to your computer. I'm controlling lights a good 100 feet away and they haven't missed a command yet so I still don't know exactly how far the range is. But its blissfully far and works beautifully.

You'll need a bit of hardware: pick up an X10 firecracker for about $8 (also called a CM17A) and an X10 transceiver for about $10 (also called an RR501), or just get the CK18A kit off ebay for about $25 shipped and be done with it. And for every lamp you'll be controlling you'll need a lamp module, and for every appliance you'll need an appliance module. You might poke around on ebay for other kits that contain the CM17a with a bunch of lamp modules, there's lots of them and they're amazingly cheap. One last bit of hardware: since your computer probably doesn't have a serial port, you'll also need a serial to USB converter. If you have trouble with Windows 7 drivers, try this driver.

Fair warning: don't plug anything other than a lamp into an X10 lamp module or you could start a fire. And don't plug a lamp that has a flourescent bulb into an X10 lamp module or you might start a fire too.

Once your serial adaptor is installed you'll need to find out what com port its appearing as in Windows, which you do by going to Device Manager then looking at the Ports category. For example it might be installed on com2. Now in Trigger Finger go to a button's edit screen (right click the button or long click it) and select "control lights" from the actions pulldown menu, and the X10 configuration screen will open up. Tell Trigger Finger what com port your Firecracker is on, what house code you're using (if you haven't changed anything, that would be "A"), what number your lamp or whatever is attached to (that's some number between 1 and 16 as shown on the dial of your lamp or appliance module), and what you want to do when you touch that button. For example you can simply turn the light on or off, dim it, brighten it, or you can turn on/off every light.

And remember to give the button a caption so you know what light its controlling. For extra style points you can even drag a picture of the light you're controlling onto the button. And if you still need more style points you can use your (wireless?) joystick to control that light. Something tells me you're going to be driving the ladies crazy...

- Searching your harddrive/network for music. To be able to search your harddrive for music, you have to do two things: 1) tell Trigger Finger where your music files are, and 2) create a search index of those directories. Both steps are super easy. To tell Trigger Finger where your music directories are, click Stuff --> Set Music Directories, and a text file will open. Add your directories to this file, one per line. You can add folders from all over your network, as many as you want. Then tell Trigger Finger to build a search index by clicking Stuff --> Index Music Directories. This takes a minute but once you're done searching will be lightening fast, even when searching ID3 tags over a network. If you make changes to your music directories outside of Trigger Finger, you'll want to update your index again by clicking Stuff -->Index Music Directories.

Now you can search using the onscreen keyboard, which you launch with Stuff --> Show Searcher. The keyboard is purdy if I do say so myself. Type a search term and Trigger Finger will play a random playlist of the results. I'll be adding the ability to pick and choose from the results soon.

Note that Trigger Finger supports some boolean searching. So for example, searching for Elvis Costello (no quotes) would return anything that contained both the word "elvis" and "costello". Searching for "Elvis Costello" (with the quotes) would return anything that contained the phrase "Elvis Costello". Searching for Elvis -Costello would return anything that contained the word "elvis" but didn't contain "costello". Currently it searches in the full directory and filename, artist, album and song ID3 tags, but I'll be adding the ability to narrow the search soon.

Here's a cool trick: to build a random playlist of all your music files, just click "go" on the keyboard without typing anything.

- Button captions: add a caption below any button by using the little text field on the edit screen. So for example if a button is triggering a song from your harddrive, you can label it so you know which song it'll play.

- Changing button graphics: you can change any button's graphic by dragging an image onto the button from Windows Explorer, or on most computers directly from Firefox. I haven't yet figured out why dragging from Firefox doesn't work on all computers. And just for goofs the graphic you drag is saved to a folder which you can access by clicking Stuff --> Show saved logos folder, since I keep re-using the same custom graphics. You can delete stuff from this folder without affecting anything.

- Fullscreen: get in and out of fullscreen by clicking Stuff --> Fullscreen, or pressing the F12 key, or by dragging your your finger or mouse up or down. And note that the F11 key shows and hides the playback buttons. You can also use the Widgets window to hide the top buttons, which you access with the swiss army knife button.

- Multiple pages: browse additional pages of stations with the arrows at top left and top right. By default there's no limit to the number of pages you can have, but if you'd like you can go to Preferences and check "limit number of blank pages" which will restrict moving to the next page of buttons if the current page is completely empty.

- Widget Launcher: the Widget Launcher gives you quick and easy access to a few things that otherwise wouldn't be easy to do from fullscreen mode, such as show info about the currently playing song, the shoutcast recorder, etc. You can show it by clicking Stuff --> Show Widget Launcher, or press the swiss army knife button, or move your mouse/finger up or down.

- New buttons: to assign a station or song to a blank button, just click the button. To assign a music file, folder of songs, or a video file, you can also simply drag it onto the button.

-Keeping notes: if you want to write some notes, click Stuff --> Open Notes or click the Notes button on the Widget Launcher. FYI, this edits the file "notes.txt" in your Trigger Finger directory, so you can also edit your notes manually.

- Station details and homepage: to see details on the currently playing station like the phone number and homepage, click Stuff --> Open Station Info, or click "info" from the Widget Launcher.

- Keyboard shortcuts: F12 gets you in and out of fullscreen, F11 shows and hides the playback buttons, left/right arrows go to next/previous track if you're playing a playlist (yes I know its currently a bit slow to react), page up/dn scrollls through the pages of buttons, and up/down controls volume. Note that the keyboard shortcuts are currently a bit slow to control the volume, you might be better off with the multimedia keys on your keyboard. If you're using Trigger Finger's built-in video player, ENTER or F12 gets you in and out of fullscreen on that window too.

- Keyboard triggers: You can assign keyboard shortcuts to any of the buttons by going to the button's edit window (right-click or long-click the button). Note that these keyboard shortcuts are global, meaning Trigger Finger doesn't have to be the active window to react to them. This can be annoying if you're trying to use another program, so remember that you can disable the keyboard triggers by going to Preferences. You can also clear all keyboard shortcuts with Stuff --> Clear All Keyboard Triggers.

- Joystick control: To use a joystick, go to Preferences and check the "use joystick" option. You'll have to restart Trigger Finger after doing this. The joystick up/down is hard-coded to controlling volume, but you can assign any joystick button or hat control to any Trigger Finger button by right-clicking or long-clicking the Trigger Finger button and setting the "joystick trigger" on the edit panel. You can see what button you're pressing by looking at Trigger Finger's statusbar or in the Preferences window. Remember that you can calibrate your joystick in Windows Control Panel. You'll need to do this if the joystick is accidentally adjusting your volume all the time. And I've been loving my Saitek wireless joystick, really good range and 14 luxurious buttons.

- Mouse gestures. Has iPhone style mouse gestures: drag your mouse/finger left for next page, right for previous page, up to go fullscreen, down to exit fullscreen.

- Hiding the mouse pointer. A peeve of mine when I'm using a touchscreen is seeing an ugly mouse pointer whenever I touch the screen, so if you're using a touchscreen you might want to go to Preferences --> Hide Mouse Pointer.

- Volume: volume up and down is the speaker icons at top, nice and easy to control with a touchscreen. And since it simply controls the computer's master volume, you can pick up a few easy style points by using a Griffin Powermate. Or if you install the excellent freeware program VolMouse, you can use your mouse wheel.

- History: see your recent history by clicking Stuff --> Show History, or by clicking the History button on the Widget Launcher. Useful for finding that station you were listening to a little while ago. Stores the last 12 stations.

- Updates: update the list of stations and station details from goodradio.org by clicking Stuff --> Update Stations. If you're getting a lot of dead shoutcast streams you should probably do this. And note that you can upgrade to the latest version of Trigger Finger without affecting your configurations or buttons, but of course its always a good idea to back up your Trigger Finger folder first if you've put a lot of work into it.

- Recording shoutcasts: to record, click the record icon at the top of the screen to launch the Recording panel. You can access your recordings folder by clicking Stuff --> Show Recordings Folder.

- Random buttons: click the lightening bolt icon to play a random button from the current page.

- Portable installations: Trigger Finger dosen't install anything outside its directory or write anything to the registry, so it runs just fine from a thumbdrive or whatever.

- Preferences: A quick note about each item in the Preferences:

"Video Backend" sets the player for playing videos. If you're using Trigger Finger to watch movies you probably want to leave it at "default player", which simply sends the movies to the default application. If you're doing VJ stuff you probably want "Quicktime".

"Audio Backend" sets the audio player between Trigger Finger and Winamp. Currently doesn't do anything.

"Enable Mouse Gestures" is pretty self explanatory. Disable it if you don't want to use mouse gestures.

"Enable Keyboard Triggers" enables and disables the custom keyboard shortcuts you can assign to each button by right-clicking or long-clicking that button.

"Hide Mouse Pointer" lets you hide the mouse pointer if you're using Trigger Finger on a touchscreen.

"Limit Number of Button Pages" will stop advancing to the next page of buttons after one completely blank page.

"Shuffle Playlists", if checked, will make it so all audio playlists are shuffled.

 

Webserver Stuff:

- it runs a webserver on port 80, which I should probably make configurable. You can see the webpage "index.html" for some sample code. You can do everything through the webserver that you can do in the program itself, including simulate a button press on any button, touch a random button, play a random station, play a specific station, play movies, playlists, control lights, etc. The webpage is optimized for iPhones but is totally editable so you can make it look however you need. It sends its commands through an Ajax call so is relatively smooth and purdy.

You can see the commands and their format by looking in the index.html file, but here's a list of all of them:

sendCommand('button2') = simulate pressing button 2
sendCommand('volume up') = volume up
sendCommand('volume down') = volume down
sendCommand('play') = press play button
sendCommand('stop') = press stop button
sendCommand('random') = choose random button
sendCommand('prev') = press the prev button (if listening to a playlist)
sendCommand('next') = press the next button (for playlists)
sendCommand('shoutcast wfmu') = listen to WFMU, whcih keeps the doctor away
sendCommand('localplaylist c:\myplaylist.pls') = play a playlist
sendCommand('localdir c:\mymusic') = queue the folder c:\mymusic
sendCommand('movie c:\mymovie.mov') = play the movie c:\mymovie.mov
sendCommand('localmoviedir c:\mymovies') = pick a movie from c:\mymovies
sendCommand('program c:\metapad.exe') = run the program c:\metapad.exe
sendCommand('batchfile c:\mybatchfile.bat') = run batchfile with console window
sendCommand('batchfilehidden c:\mybatchfile.bat') = run batchfile, hide console
sendCommand('x10 [command]') = control lights via X10

Random Tips:

- if you're typing text using a regular keyboard, the "insert" key will clear the search term, and "enter" will begin the search.

 

Advanced Tip: adding your own stations. The easiest way is just to click Stuff --> Suggest A Station, and our committee will put on our robes and decide from on high if we want to add it to the database. But if you want more immediate results and control you can edit the user.xml file in the Trigger Finger directory. Its pretty simple to do, just open it in a text editor and make new entries using the format that's there in the sample. A couple of notes:

  • the station name MUST be all caps or you're doomed.
  • to get the "stream url", one easy way is to play the stream in Winamp and right-click it in Winamp's playlist window and choose "view file info". If you have instructions for other players, send them over and I'll add them. If you can't find it, point me at the stream and I'll send it over.
  • you can set a temporary logo for the station by dragging an image file onto the button from Windows Explorer. But if you assign your custom station to some other button, you'll have to do it again. So to make a persistent logo for the station you can create a graphic file that's 120x100 pixels and place it in the "logos" subdirectory of the Trigger Finger folder, so by default that's c:\program files\Trigger Finger\logos. The logo needs to have exactly the same name as the station. For example if your custom station is "cbc radio one", the file would be called "cbc radio one.png". If you prefer you can save it as a jpg.

  • feel free to send over your custom XML file and I'll add your stations to the main goodradio.org database and/or Trigger Finger.

 

Advanced Tip: launching Trigger Finger on any monitor. There's some shortcuts inside the Trigger Finger directory that will launch it on any monitor, fullscreen or not. So if all you want is a quick and easy solution, copy whichever shortcut fits your situation to your desktop, startup folder, or wherever. Or if you're the adventurous type you might want to learn about the commandline arguments that launch it on other monitors. The commandline arguments are "-monitor=2" (or whatever monitor) and/or "-fullscreen". A nice trick in Windows is to edit the shortcut that launches Trigger Finger. So click Start --> Programs, then right-click the shortcut for Trigger Finger, then make the Target field look like this to launch fullscreen on monitor 2:

"C:\Program Files\Trigger Finger\TriggerFinger.exe" -monitor=2 -fullscreen

This would launch non fullscreen on monitor 3:

"C:\Program Files\TriggerFinger\TriggerFinger.exe" -monitor=2

This would launch fullscreen on monitor 1:

"C:\Program Files\TriggerFinger\TriggerFinger.exe" -fullscreen

 

Advanced Tip: changing button spacing. If you'd like, you can make the buttons much closer together. For example, if you're using Trigger Finger on a 7" Lilliput touchscreen (looks great!), you might want the buttons to be right next to each other. To do this, close Trigger Finger (important) and open up configuration.ini from the Trigger Finger directory (so by default, that's c:\TriggerFinger\Program Files\configuration.ini) and look for the lines "column_spacing_offset", "row_spacing_offset" and "draw_caption". The first two let you make the columns and rows closer together, and the last one makes it so Trigger Finger won't draw any captions or space for captions. Here's the values that I find work well without captions:

column_spacing_offset = -45
row_spacing_offset = -25
draw_captions = no

If you want to draw the button captions, I like:

column_spacing_offset = -40
row_spacing_offset = -24
draw_captions = yes

Note that you'll need at least version 1.1 for this. And if you don't see the values in your configuration.ini file, open and close Trigger Finger and they'll appear.

 

Poor Man's VJ Rig. One of the reasons I made this program is that I couldn't find anything that would trigger video clips simply and cheaply. I love Resolume, but it ain't cheap. Trigger Finger does most of the things I personally need to do, which is trigger video clips without any fuss, so I thought I'd make a few notes for other folks looking for a poor man's VJ rig.

  • I should say right off the bat that you can't blend videos with Trigger Finger. It plays one video at a time.
  • you'll probably want to get rid of all the college radio stations, so click Stuff --> Clear All Buttons, which will delete everything.
  • you'll definitely want to go to Stuff --> Preferences and set the video mode to either "quicktime" or "wmp10". The "quicktime" mode is much smoother, but its super picky about what files it'll play. If the Quicktime standalone player can play your movie, Trigger Finger should be able to play it too. Its worth working out the Quicktime support, it really is much better.
  • to associate a button with a movie, just drag the movie file onto that button, or right-click it and choose "play movie" for the button action.
  • if you'd prefer to have Trigger Finger pick a random movie from a folder, right-click the button to get to the edit screen, and then select "pick a movie from a folder" for the action. Or click the lightening bolt icon to choose a random button from the current page.
  • if you want to customize the button graphic, just drag an image from Windows Explorer or Firefox right onto the button. Snazzbo.
  • Trigger Finger's movie window will open when you play the first movie. (If your default movie program opens instead, you didn't set the video mode to "quicktime" or "wmp10" in that first step above). To make the video window go fullscreen move it to the monitor you want and then hit the "enter" key. Do it again to exit fullscreen mode.
  • to assign a keyboard shortcut or joystick action to any button, right-click the button and use the keyboard shortcut or joystick trigger pulldown menus.
  • if you need external hardware buttons to trigger your video clips, you might try something like this. I plan on adding joystick and midi triggers at some point as well.
  • If you need some videos to play around with, you might have a look at VJ Fader's excellent free clips.
  • Currently Trigger Finger loops all the videos, and stretches them to fill the screen. I could easily enough make this configurable, but that's how I personally always use it. Email me if you desperately need the ability to change this.

 

FAQ

Q) Will it run on one of those touchscreen netbooks?

A) Hell yes! I tested it the other day on one of these, ran great.

Q) What about an HP Touchsmart?

A) Yup, works great, my favorite actually, even with Vista.

Q) Any recommendations for a small touchscreen?

A) Glad you asked! I love my Lilliput 7" touchscreen. I've heard devious rumors of there being an 8" version out there too. You'll need to play around with the screen resolution a bit, it seems no one can agree on the correct screen resolution for these things, but Trigger Finger looks great on pretty much all of them. They're sold mostly for car installs. I got mine from ebay for $120 shipped.

Q) I want to control sound volume with a mouse wheel god damn it!!!!

A) No problem, I recommend the excellent free program VolMouse, which works beautifully with Trigger Finger. To configure, under the "use mouse wheel" column, set "mouse cursor is over the specified window", and then drag the bullseye to TriggerFinger's window. Now whenever the mouse cursor is over Trigger Finger, turning a mouse wheel will make the volume go up or down. Personally I like to hide the status indicator by clicking the "more" button and next to "indicator options" and choosing "none".

Q) I want an external volume knob! Why the f@#$@#$ can't I have an external volume knob???

A) Easy tiger, have a look at the Griffin Powermate.

Q) What about wireless remotes?

A) I'm open to it. What are the cool kids using these days? Send me your recommendations and I'll see what I can do. In the meantime I've been enjoying my Saitek wireless joystick as a wireless remote with lots of gamer chic.

 

To Do:

- Add support for Winamp as the backend audio player, which would also add support for karaoke. If anyone has a suggestion for a different karaoke player (ideally one that could handle KAR karaoke files as well as CDG), let me know.

- port to Linux and Mac. Its all written in Python so would be relatively easy to do, but alas.

 

Download it

Email questions / suggestions / bug reports

<<-- back to Trigger Finger