python

New project: auphonic

Currently I am working on the auphonic project, which involves machine learning, audio signal processing, web development, open-source technologies and much more.

So don't expect many updates on my mur.at page, I will write about new things on the auphonic blog. You can subscribe to the auphonic feed or follow @auphonic on twitter.

IAEMStream - an On-Demand Streaming Server Product

Year: 
2008
Authors: 
Georg Holzmann
Type: 
Technical report
Publisher: 

Institute of Electronic Music, IEM Graz, Austria

Abstract: 

IAEMStream is an on-demand streaming server product for the open source content management system Zope/Plone, written in python.

The initial motivation was to provide students an access to the Archive of Electronic Music at the Institute for Electronic Music, University of Music and Dramatic Arts Graz. This archive consists also of material which is unfortunately not copyright-free, therefore the streams must not be available freely for the public. IAEMStream takes over the right-management of Plone and so it can be well defined who is able to download or stream specific media files.
The RTSP protocol (real time streaming protocol) is used for on-demand streaming, which makes it legal for students to access the library over the internet in a comfortable way.

This document tries to give an overview of underlying streaming technologies (codecs, protocols and etc.) in section 2. Then existing open source streaming servers are discussed and evaluated in section 3 and finally the IAEMStream product is explained in section 4.

The software can be downloaded here: IAEMStream.

Publication: 

aureservoir

Started in: 
2007
Authors: 
Georg Holzmann
License: 
GNU Library or "Lesser" General Public License (LGPL)
Programming language: 
C++, Python
Overview: 

Reservoir computing is a recent kind of recurrent neural network computation, where only the output weights are trained. This has the big advantage that training is a simple linear regression task and one cannot get into a local minimum. Such a network consists of a randomly created, fixed, sparse recurrent reservoir and a trainable output layer connected to this reservoir. Most known types are the "Echo State Network" and the "Liquid State Machine", which achieved very promising results on various machine learning benchmarks.

This library should be an open source (L-GPL) and very efficient implementation of Echo State Networks with bindings to scientific computation packages (so far to python/numpy, Pure Data and octave are in work, everyone is invited to make a Matlab binding) for offline and realtime simulations. It can be extended in an easy way with new simulation, training and adaptation algorithms, which are function objects and automatically used by the main classes.

For a theoretical overview and some papers about Echo State Networks see: Echo State Networks and for a detailed description, examples, documentation, downloads and installation instructions please visit the project page.

numpy2carray

Started in: 
2007
Authors: 
Georg Holzmann
License: 
BSD License
Programming language: 
C, SWIG, Python
Overview: 


NOTE:
These wrappers are deprecated! They are now integrated in the official numpy swig interface file (numpy.i).
You can find them in numpy-svn/numpy/doc/swig, also with quite good documentation!

This is an interface between numpy arrays (used for scientific computation in python - see scipy.org) and C/C++ style arrays, build after looking at the umfpack.i interface from scipy.
There exists also an other wrapper in scipy - however, you always have to copy data with those bindings which was not possible in my situation.

All you need is the "numpy2carray.i" file.
There are routines for array in/output with or without copying data (also for fortran style arrays - only one example in numpy2carray.i - see FARRAY2_OUT macro).

examples

class_example:

A example usage with a class and some internal data.
class_example.h: the C++ code
class_example.i: the SWIG interface file
class_example_usage.py: example usage in python

example:

A procedural example.
example.cpp: the C++ code
example.i: the SWIG interface file

Building the examples:
you need scons, the simply type "scons" in the terminal

This code should be seen as a demonstration and should be customized to your application (e.g. maybe more error checking etc).

See also the following links:
tutorial to start
numpy C api
swig and python
swig and numpy

powEEErsave

Started in: 
2008
Authors: 
Georg Holzmann
License: 
GNU General Public License (GPL)
Programming language: 
Python
Overview: 

This is a small python/pyqt4 GUI progam to control various settings to save power on the Asus EEE-PC.
At the moment one can control and query the status of the camera, sound, wlan, lan, usb 1.1, fan and the cpu. All settings can be stored in presets, in example for battery, high-performance, low-power mode and etc.


Usage:
Simply start the script poweeersave, then you will be asked for your root password. The program is not constantly querying the status of all your hardware, therefore if you want to update the current status you have to click on the button "Query Status". The presets are stored in the file "HOME/.config/grh.mur.at/poweeersave.conf", where HOME is usually "/root", because you need to run the program as superuser.

Development:
The program is written in python with pyqt4 and QtDesigner. You can open the file src/poweeersave.ui in QtDesigner to change the GUI. All commands which access hardware information are in the file src/commands.py and the logic in src/poweeersave.py. Any contribution is highly appreciated !

IAEMStream

Started in: 
2007
Authors: 
Georg Holzmann
License: 
GNU General Public License (GPL)
Programming language: 
Python
Overview: 

The goal of the project was to use an Open-Source On-Demand Streaming Server for the Content Management System Zope/Plone, which allows On-Demand Streaming for Audio and Video files via the RTSP-Protocol (Real Time Streaming Protocol) in Plone.

After some research about existing solutions we decided to use the Helix DNA Server.

This product has lots of additional features like a detailed right management, automatic conversion of various audio/video formats and more.

A detailed documentation of the product and its underlying technology can be found at IAEMStream documentation.

Syndicate content