Steam Controller

Steam Controller

Pila 16 dec, 2015 @ 14:55
Steam Controller Singer : Playing music with the Steam Controller
Hello !
I have been spending some time during theses days trying to understand how the communication between Steam and the Steam Controller works.
I was especially interested in driving the haptic actuators, so I could see their full potential.
I finally managed to get full control over the actuators, so I wrote a small piece of software to have fun with them, check this out :

https://www.youtube.com/watch?v=PUVga1mYhLY

https://www.youtube.com/watch?v=rBgMV1fqaKg

https://www.youtube.com/watch?v=Bwq2btaPio0

https://www.youtube.com/watch?v=9dIwXf30ZsU

You can try this by yourself, I made an archive with my software compiled for windows : https://sourceforge.net/projects/steam-controller-singer

You can check Peppy's quick start guide to get familiar with the software :
http://steamcommunity.com/sharedfiles/filedetails/?id=636019968

And here you can find all the source code : https://gitlab.com/Pilatomic/SteamControllerSinger

My software now supports wired & wireless mode, playback on both haptics and MIDI files as input
It will play MIDI channel 0 on the right haptic, and channel 1 on the left haptic
There should be only one active note per channel at the same time

You can use MidiEditor to edit your midi files

To start, simply drop a MIDI file on the Steam Controller Singer .exe
Senast ändrad av Pila; 3 apr, 2016 @ 5:01
< >
Visar 1-15 av 486 kommentarer
Not Root 16 dec, 2015 @ 15:09 
I suppose that it only makes sense that the LRA, which traces its lineage back to literal speakers, could do something like this. Pretty neat.

The SC doesn't seem to have an actual speaker of any kind; the startup/shutdown/identify sounds appear to come from simply running the right touchpad actuator at high frequencies. You can actually feel the vibration in the pad.

Does your tool interfere with Steam itself? Have you noticed any issues with "bottoming out" at lower frequencies? I've got some ideas...
RealityQuotient 16 dec, 2015 @ 16:24 
Methinks we have a long, long way to go to see the full potential of this thing. Just imagine what game devs can come up with when they start designing games from the ground up to take advantage of it.
Pila 17 dec, 2015 @ 0:03 
Ursprungligen skrivet av roothorick:

The SC doesn't seem to have an actual speaker of any kind; the startup/shutdown/identify sounds appear to come from simply running the right touchpad actuator at high frequencies. You can actually feel the vibration in the pad.

Yep, that's how I got the idea to do this

Ursprungligen skrivet av roothorick:
Does your tool interfere with Steam itself? Have you noticed any issues with "bottoming out" at lower frequencies? I've got some ideas...

My tool "talks" directly with the steam controller, it would even work on a computer without steam.
What do you mean by "bottoming out" ?
[oRLY]Alia5 17 dec, 2015 @ 18:00 
Dude that's awesome!
ZioYuri78 18 dec, 2015 @ 2:31 
Love it!

Hope we can share sounds in some future updates.
[oRLY]Alia5 18 dec, 2015 @ 3:32 
Official? I doubt it... since certain sounds cause problems with the controller... and inofficially it always will remain some kind of gimmick i'm afraid
Pila 18 dec, 2015 @ 11:03 
I updated the video, this one has better quality, horizontal format and was shot with a steady camera
Patrick Jr. 18 dec, 2015 @ 11:37 
Amazing work
Not Root 18 dec, 2015 @ 16:15 
Ursprungligen skrivet av bli Pila:
My tool "talks" directly with the steam controller, it would even work on a computer without steam.
What do you mean by "bottoming out" ?

I meant more along the lines of, will it interfere with Steam configuring controller mapping and sending inputs to the game while you're controlling the actuators?

Bottoming out, a more accurate term, I suppose, would come from the audio world: over-excursion. In layman's terms: a traditional design speaker is designed to only move a certain distance back and forth, but there's nothing preventing you from feeding it a signal that pushes the speaker past that amount of travel. This puts a great deal of stress on multiple components in the speaker; typically you melt the voice coil first. As volume increases, this is more likely to happen, but also as the lowest harmonic of the sound wave decreases, it becomes more likely to happen. So speakers are limited in how low of a tone they can produce without damage.

My question therefore is whether you saw signs of a similar phenomena. LRAs' theory of operation is nearly identical to speakers, just substituting a weight in place of the cone, so the lower the frequency of the vibration you want to achieve, the further the weight must travel to achieve it. Obviously there must be a limit to how far it can travel, and I'm curious how far we can go before hitting that wall.

Though, it occurs to me now, LRAs may have bumpers on each end, intended for the weight to hit when producing strong vibrations, transmitting the movement via physical contact instead of electromagnetic force. It'd definitely be a different feel (and louder!) when it hits that transition point, making the actuators more flexible still.
Pila 19 dec, 2015 @ 1:13 
I did not try, but yeah, it might interfere, I would advise you not to try, for example, changing controller mapping in Big Picture while my tool is running. But to ba honest, my knowledge of how the Steam Controller works is too limited to be able to answer precisely this point.

Conerning the "bottoming out", now I see what you mean, I didn't know the engligh word for this. Not sure how LRA are mades, if there are bumpers, of if the drive signal was simply calculated to avoid this, but it does not seem to happen.
We always called 'em 'blown speakers'.
ReeC 20 dec, 2015 @ 12:56 
At first I had some issue running your code under linux (i'm the guy who commented your video on youtube) but then it was fine.

Today I managed to play two different tracks on the two pads using threads
http://pastebin.com/nS2sdBnB
Pila 20 dec, 2015 @ 13:11 
I updated my code with support for the wireless dongle, so no more need to connect the steam controller through microUSB.

edit : another update to fix minor things

Just looked at your code. Good job ! You don't run into synchronisation problem between the 2 tracks ?
Senast ändrad av Pila; 20 dec, 2015 @ 13:23
ReeC 20 dec, 2015 @ 13:33 
nope, it works pretty well. C time resolution is way finer than triplets at 120bpm! ... maybe some delay may cumulate for really long tracks
Senast ändrad av ReeC; 20 dec, 2015 @ 13:33
Lez B Anne 20 dec, 2015 @ 13:37 
Ursprungligen skrivet av bli Pila:
I updated my code with support for the wireless dongle, so no more need to connect the steam controller through microUSB.

edit : another update to fix minor things

Just looked at your code. Good job ! You don't run into synchronisation problem between the 2 tracks ?
Question, how does this thing open?

So I got this thing working, then realized you just linked what you made, not how to reproduce it with different notes.

So close yet so far; anyone mind telling me how we're compiling, how I have to go about this? .3.
Senast ändrad av Lez B Anne; 20 dec, 2015 @ 14:15
< >
Visar 1-15 av 486 kommentarer
Per sida: 1530 50