RanzQ / hyperion-audio-effects

Hyperion audio effects dev kit using Gstreamer
MIT License
47 stars 8 forks source link

How to setup Gstreamer under Windwos 8.1 64x? #8

Closed Angora closed 9 years ago

Angora commented 9 years ago

Hey Guys, i am mostly fond of your work and would really like to enjoy it at home, but the Python/Gstreamer doesn't want to work. I installed everything like in the description. But when it comes to the start of the main.py it tells me: (python.exe:2944): GStreamer-WARNING **: Failed to load plugin 'D:\Python\Lib\si te-packages\gnome\lib\gstreamer-1.0\libgstrsvg.dll': 'D:\Python\Lib\site-package s\gnome\lib\gstreamer-1.0\libgstrsvg.dll': Das angegebene Modul wurde nicht gefu nden. I double checked that path and the files in there, but i can't get it to recognize them :( Anyone got an idea how to get it to work?

RanzQ commented 9 years ago

Are you sure you have setup your recording device correctly? I needed to put the sound level a bit higher to show the level bars (the default config shows only levels 90-100), see this picture:

image

I also get those errors but it still works (just a bit laggy, I prefer to use Ubuntu). I've been busy with a LED table project so I haven't developed this further.

Angora commented 9 years ago

That was indeed a problem. Since i changed that i got at least an animation on the screen. I kinda thought that the gestreamer moduley would be the problem. But as you image states that seems to be normal. The LEDs of Hyperion just dont't change their color very fast. Like it's stuck or something. Is that normal under windows? :-/

RanzQ commented 9 years ago

Yes, as I've commented in the readme, something makes it run poor on Windows. Don't know what causes it.

Angora commented 9 years ago

Yeah i've read that and hoped that it wouldn't be that bad. ;) Another thing i noticed is that my GraphicalInterface only shows on side animated (in that gui). Any ideas on that? (And thanks for your support ;))

RanzQ commented 9 years ago

I'm guessing it might have something to do with threads. Going to check my code that I don't use them improperly for Windows. See this: http://stackoverflow.com/questions/6596617/python-multiprocess-diff-between-windows-and-linux

RanzQ commented 9 years ago

I bet you are using mono-input? The vumeter effect is intended for stereo. I could add a config parameter to make it work with mono if you want. :)

Angora commented 9 years ago

Well, i will take a look if i do. But either way i don't think that i need a mono switch (since i do not intend to listen to mono sound ;) ). Thanks for your help so far!

RanzQ commented 9 years ago

I think I now understand the problem. I will improve the code when I have time, maybe tomorrow.

Angora commented 9 years ago

That sounds great and i will keep an eye on this. Thanks for the good work so far! :)

RanzQ commented 9 years ago

I tried profiling the code to find a bottleneck. And everything seems to run fine on windows, except that messages from gstreamer act weird. They work fine when I set the message interval to 200ms and above (it used to be 50ms by default). I plotted the time between each message with 100 ms interval for Debian and Windows:

Debian
======
0.0986099243164
0.114630937576
0.085342168808
0.0988109111786
0.100422143936
0.102545976639
0.0993850231171
0.0994188785553
0.105010986328
0.0943410396576
0.100112915039
0.0986361503601
0.106206893921
0.09588098526
0.0980360507965
0.102535963058
0.101227045059
0.0969228744507
0.0992090702057
0.10004901886
0.100038051605
0.101624965668
0.098433971405
0.108262062073
0.0944499969482
0.0991230010986

Windows
=======
0.194000005722
0.00100016593933
0.202999830246
0.00100016593933
0.192999839783
0.00100016593933
0.202999830246
0.00100016593933
0.203999996185
0.000999927520752
0.191999912262
0.00100016593933
0.203999996185
0.000999927520752
0.191999912262
0.0
0.205000162125
0.000999927520752
0.203000068665
0.0
0.194000005722
0.0
0.203999996185
0.0
0.194000005722
0.0

That shows that Gstreamer or PyGobject has some problems on Windows, time between messages is about 200 ms and then 2 messages are received at same time. I don't know if I can do anything but wait for updates for PyGObject.

Also one option would be to get rid of Gstreamer by creating the FFT functionality using PyAudio. But let's see about that if there's more interest in this project. Closing this for now.