<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.18.1">
</HEAD>
<BODY>
Dude I sent you this info already ... its called <A HREF="http://pywinauto.openqa.org/">pywinauto</A>, a Python automation suite for controlling Windows apps. You can send key and mouse events such as opening a file dialog, "typing in the filename", and hitting enter. There are plenty of straightforward info in the documentation.<BR>
<BR>
I paired that with the aforementioned ixi software's <A HREF="http://pypi.python.org/pypi/SimpleOSC/0.2.3">simpleOSC library.</A> There are examples around.<BR>
<BR>
Once again. if you want a specific example, <A HREF="http://www.robotcowboy.com/projects/f2006/robotcowboy_v2/robotcowboy_button_box%200.1.zip">download the zip</A> on <A HREF="http://www.robotcowboy.com/?p=60">this page of my website</A> where I use PD to send and receive control signals to Python/pywinauto over OSC to control FLStudio.<BR>
<BR>
I know you a "newb" and all, but that dosen't mean you can't get your hands dirty and learn a bit. When I first put that all together I did not understand OSC and had never used Python or automation software before.<BR>
<BR>
On Tue, 2008-05-06 at 22:54 -0400, Hugh Sung wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
We're having a neat discussion about this in the Pure Data forum now:<BR>
<A HREF="http://puredata.hurleur.com/sujet-1686-fiddle-piano">http://puredata.hurleur.com/sujet-1686-fiddle-piano</A><BR>
<BR>
jon2211 came up with a neat patch that demonstrates how well fiddle~ recognizes notes played on a piano within a given range, triggering a key text output. Another poster showed an example of modifying that to trigger with envelope/volume changes. Of course, we're still stuck with how to port the key stroke messages to an external application.<BR>
<BR>
Would someone be willing to write up a python script that can intercept Pure Data text echoes and forward them to other concurrently running applications, like PowerPoint or Word? This is the missing link in the puzzle - heck, i'd even be willing to pay someone if they could come up with a useful workaround!<BR>
<BR>
Keeping my fingers crossed...<BR>
Many thanks as always!<BR>
<BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
On Wed, Apr 30, 2008 at 6:11 AM, Olivier Heinry <<A HREF="mailto:olivier@heinry.fr">olivier@heinry.fr</A>> wrote:<BR>
<BLOCKQUOTE>
Le Tue, 29 Apr 2008 18:50:33 -0400,<BR>
"Hugh Sung" <<A HREF="mailto:hughsung@gmail.com">hughsung@gmail.com</A>> a écrit :<BR>
<BR>
Python might bring you the right solution:<BR>
<BR>
<A HREF="http://www.rutherfurd.net/python/sendkeys/">http://www.rutherfurd.net/python/sendkeys/</A><BR>
<BR>
You can either send your letters/keystrokes from inside pd using the pyext external that loads your python script<BR>
<BR>
or send messages via OSC to a python script that implements the ixi software simpleOSC lib<BR>
<BR>
<A HREF="http://www.ixi-software.net/content/backyard.html">http://www.ixi-software.net/content/backyard.html</A><BR>
<BR>
++<BR>
<FONT COLOR="#888888">O.</FONT>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BLOCKQUOTE>
<BR>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BLOCKQUOTE>
<BR>
<BR>
> Here's one scenario i'd like to see:<BR>
><BR>
> 1. Pedal assigned [PgDn] keystroke within Liquid Media, which triggers<BR>
> scene change<BR>
> 2. PD outputs letters A-Z, depending on either volume or pitch frequency<BR>
> ranges input from audio source (microphone into acoustic piano)<BR>
> 3. A given scene within Liquid Media would then interpret the PD-generated<BR>
> keystrokes and trigger image events based on letter key "depressed" by PD.<BR>
><BR>
> You'd have the ease of image generation (a la Powerpoint) with the speed and<BR>
> power of PD to map the sound of acoustic music. Just my newbie imagination<BR>
> going here.<BR>
><BR>
> On Tue, Apr 29, 2008 at 6:46 PM, Hugh Sung <<A HREF="mailto:hughsung@gmail.com">hughsung@gmail.com</A>> wrote:<BR>
><BR>
> > The pedals basically operate as programmable usb keyboard extensions,<BR>
> > where you can custom assign any keystroke to any pedal (up to 12). I'm<BR>
> > hoping that by assigning a certain set of keys to the pedals and reserving<BR>
> > the rest for PD to control that everything can simply work together, if PD<BR>
> > can output keyboard letters/numbers. Everything would run from the same<BR>
> > computer. Again, please forgive me if i sound completely ignorant regarding<BR>
> > what's possible with PD...<BR>
> > Many thanks again!<BR>
> ><BR>
> ><BR>
> > On Tue, Apr 29, 2008 at 6:13 PM, Andrew Turley <<A HREF="mailto:aturley@acm.org">aturley@acm.org</A>> wrote:<BR>
> ><BR>
> > > The [fiddle~] and [bonk~] objects should let you capture all of the<BR>
> > > information that you are looking for. As far as getting that<BR>
> > > information from Pd to Liquid Media, that may be the tricky part. Your<BR>
> > > current pedals are sending keystrokes straight to Liquid Media. Do you<BR>
> > > know if there is a way to control Liquid Media via MIDI messages, or<BR>
> > > some sort of message sent via a socket connection (maybe OSC)? If so,<BR>
> > > then you might be able to use Pd to capture your pedal input and then<BR>
> > > combine that with the information from [fiddle~] and/or [bonk~] to<BR>
> > > send the appropriate information to Liquid Media. If the only way to<BR>
> > > control Liquid Media is through keystrokes, then you might need to<BR>
> > > write some software that intercepts the keystrokes from the pedals and<BR>
> > > changes them depending on what is going on in Pd.<BR>
> > ><BR>
> > > andy<BR>
> > ><BR>
> > > On Tue, Apr 29, 2008 at 12:18 PM, Hugh Sung <<A HREF="mailto:hughsung@gmail.com">hughsung@gmail.com</A>> wrote:<BR>
> > > > I'm using a presentation program called "Liquid Media", sort of like<BR>
> > > > Powerpoint on steroids. Up to this point i had been using multiple<BR>
> > > foot<BR>
> > > > pedals assigned to different keystrokes to trigger visual cues, like<BR>
> > > video<BR>
> > > > clips, animated GIFs and the like, during live classical music piano<BR>
> > > > recitals.<BR>
> > > ><BR>
> > > > I'd like to incorporate the dynamic capabilities of realtime visual<BR>
> > > sync,<BR>
> > > > with the ability to easily "change the scene", as it were. i'm hoping<BR>
> > > that<BR>
> > > > someone can help me come up with a combined solution where PD acts as<BR>
> > > an<BR>
> > > > audio trigger controller, triggering keystroke events based on pitch<BR>
> > > ranges,<BR>
> > > > dynamic peaks and rhythmic events, and Liquid Media accepts those<BR>
> > > > PD-generated keystrokes to trigger correlating visual cues. Each<BR>
> > > scene<BR>
> > > > would comprise of specific trigger-able events, and the foot switch<BR>
> > > would<BR>
> > > > allow for a manual "change of scene". i'm hoping to accomplish two<BR>
> > > things<BR>
> > > > with this combined approach:<BR>
> > > ><BR>
> > > > 1. make it a little easier to incorporate visuals synced to audio<BR>
> > > events<BR>
> > > > 2. allow for easy scene transitions, to better compliment the<BR>
> > > "narrative"<BR>
> > > > structure of classical compositions<BR>
> > > ><BR>
> > > > Hope this makes sense...thanks all for your input so far! (and<BR>
> > > patience!)<BR>
> > > ><BR>
> > > ><BR>
> > > ><BR>
> > > > On Tue, Apr 29, 2008 at 2:45 PM, Dan Wilcox <<A HREF="mailto:danomatika@gmail.com">danomatika@gmail.com</A>><BR>
> > > wrote:<BR>
> > > > ><BR>
> > > > > As for forwarding keypresses and mouse events to an application ...<BR>
> > > > ><BR>
> > > > > I have done this in Windows to control FLStudio (aka FruityLoops) by<BR>
> > > > sending menu events and keypresses through python windows scripting,<BR>
> > > > pywinauto, and osc in python.<BR>
> > > > ><BR>
> > > > > I have info and code on my website. It should still work but it's a<BR>
> > > bit<BR>
> > > > old (2006) and I don't use Windows anymore.<BR>
> > > > ><BR>
> > > > ><BR>
> > > > ><BR>
> > > > ><BR>
> > > > > On Tue, 2008-04-29 at 13:05 -0400, marius schebella wrote:<BR>
> > > > > fiddle~ comes with pd (look in the "extra" folder), there is a help<BR>
> > > > > patch that will explain how it works.<BR>
> > > > > hope this helps.<BR>
> > > > > marius.<BR>
> > > > ><BR>
> > > > > Hugh Sung wrote:<BR>
> > > > > > i'm not familiar with that program - can you provide a link to<BR>
> > > fiddle~,<BR>
> > > > > > or any other program that can easily do what i'm looking for with<BR>
> > > all<BR>
> > > > > > the various parameters?<BR>
> > > > > ><BR>
> > > > > > Many thanks!<BR>
> > > > > ><BR>
> > > > > > On Tue, Apr 29, 2008 at 12:50 PM, marius schebella<BR>
> > > > > > <<A HREF="mailto:marius.schebella@gmail.com">marius.schebella@gmail.com</A> <mailto:<A HREF="mailto:marius.schebella@gmail.com">marius.schebella@gmail.com</A>>><BR>
> > > wrote:<BR>
> > > > > ><BR>
> > > > > > Hugh Sung wrote:<BR>
> > > > > ><BR>
> > > > > > Actually, this isn't for speech recognition - i'm trying to come<BR>
> > > > > > up with a simple way to use key triggers to activate visuals.<BR>
> > > > > ><BR>
> > > > > > For example: if the piano plays A440, i'm presuming PD can be<BR>
> > > > > > configured to recognize that pitch with a microphone input and<BR>
> > > > > > then echo out a text string - the letter "A", perhaps.<BR>
> > > > > ><BR>
> > > > > ><BR>
> > > > > > in that case, you best use fiddle~. what's the other program? does<BR>
> > > > > > it accept network communication? then you can send the letters<BR>
> > > over<BR>
> > > > > > tcp or udp connection (netsend).<BR>
> > > > > > marius.<BR>
> > > > > ><BR>
> > > > > ><BR>
> > > > > ><BR>
> > > > > ><BR>
> > > > > > --<BR>
> > > > > > Hugh Sung<BR>
> > > > > > <A HREF="http://www.hughsung.com">www.hughsung.com</A> <<A HREF="http://www.hughsung.com">http://www.hughsung.com</A>><BR>
> > > > > > <A HREF="http://www.TabletPCMusician.com">www.TabletPCMusician.com</A> <<A HREF="http://www.TabletPCMusician.com">http://www.TabletPCMusician.com</A>><BR>
> > > > > > <A HREF="http://www.musicmeetstech.com">www.musicmeetstech.com</A> <<A HREF="http://www.musicmeetstech.com">http://www.musicmeetstech.com</A>><BR>
> > > > ><BR>
> > > > ><BR>
> > > > ><BR>
> > > > ><BR>
> > > > ><BR>
> > > > > ---<BR>
> > > > > Dan Wilcox<BR>
> > > > > <A HREF="http://robotcowboy.com">robotcowboy.com</A><BR>
> > > ><BR>
> > > ><BR>
> > > ><BR>
> > > > --<BR>
> > > > Hugh Sung<BR>
> > > > <A HREF="http://www.hughsung.com">www.hughsung.com</A><BR>
> > > ><BR>
> > > > <A HREF="http://www.TabletPCMusician.com">www.TabletPCMusician.com</A><BR>
> > > > <A HREF="http://www.musicmeetstech.com">www.musicmeetstech.com</A><BR>
> > > > _______________________________________________<BR>
> > > > <A HREF="mailto:PD-list@iem.at">PD-list@iem.at</A> mailing list<BR>
> > > > UNSUBSCRIBE and account-management -><BR>
> > > > <A HREF="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</A><BR>
> > > ><BR>
> > > ><BR>
> > ><BR>
> > > _______________________________________________<BR>
> > > <A HREF="mailto:PD-list@iem.at">PD-list@iem.at</A> mailing list<BR>
> > > UNSUBSCRIBE and account-management -><BR>
> > > <A HREF="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</A><BR>
> > ><BR>
> ><BR>
> ><BR>
> ><BR>
> > --<BR>
> > Hugh Sung<BR>
> > <A HREF="http://www.hughsung.com">www.hughsung.com</A><BR>
> > <A HREF="http://www.TabletPCMusician.com">www.TabletPCMusician.com</A><BR>
> > <A HREF="http://www.musicmeetstech.com">www.musicmeetstech.com</A><BR>
> ><BR>
><BR>
><BR>
><BR>
<BR>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
<BR>
<BR>
-- <BR>
Hugh Sung<BR>
<A HREF="http://www.hughsung.com">www.hughsung.com</A><BR>
<A HREF="http://www.TabletPCMusician.com">www.TabletPCMusician.com</A><BR>
<A HREF="http://www.musicmeetstech.com">www.musicmeetstech.com</A><BR>
</BLOCKQUOTE>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
---<BR>
Dan Wilcox<BR>
<A HREF="http://www.robotcowboy.com">robotcowboy.com</A>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>