Springe zum Hauptinhalt

Auch wenn es an manchen Tage zunächst schwer fiel, ein geeignetes Motiv zu finden, habe ich die Serie über die Mindestdauer von acht Tagen hinaus bis zum Ende der zweiten Woche fortgeführt. Am Samstag musste ich allerdings ein “Notfoto” vom Smartphone benutzen und Sonntags habe ich dann beschlossen, diese Reihe abzuschließen.

Weiterlesen…

Die Aufgabe

Nimm die Kamara mindestens einmal pro Tag in die Hand und mache ein Bild. Es dürfen auch mehrere Bilder gemacht werden, aber misslungene Aufnahmen werden gleich aussortiert und aus höchstens zehn Aufnahmen eines Tages zwei bis drei Favoriten bestimmt. Aus diesen wird dann ein “Bild des Tages” gewählt. Am nächsten Tag “nachholen” ist nicht erlaubt. Es darf höchstens ein Tag ausgesetzt werden und die Reihe sollte mindestens acht Tage andauern.

Es darf fotografiert werden, was beliebt. Schön wäre es, wenn die Aufnahmen einen (persönlichen oder thematischen) Bezug zum Tag haben, an dem sie entstehen, oder an verschiedenen Tagen jeweils neue Techniken oder Herangehensweisen an das Fotografieren ausprobiert werden.

Weiterlesen…

Foreign visitors: to download the Novation Remote SL template for the Roland JX-3P with the Organix MIDI Upgrade, see the link at the bottom of this post.

Zu meinem letzten Geburtstag habe ich mir selbst einen Roland JX-3P geschenkt, inklusive einem DT200-Programmer (ein PG-200-Klon). Der JX-3P ist ein 6-stimmiger analoger Polysynth von 1983 und eines der ersten Geräte mit MIDI. Er hat den typischen weichen Roland-Sound und trotz den, auf den ersten Blick, simplen Synthesemöglichkeiten, kann man dem Gerät erstaunlich schöne und facettenreiche Klänge entlocken. Mit dem Programmer geht die Soundprogrammierung sehr intuitiv und flott von der Hand und man hat in minutenschnelle eigene Sounds erstellt und wünscht sich bald mehr als die vorhandenen 32 Speicherplätze für User-Presets.

Die originale MIDI-Implementierung des JX-3P ist sehr einfach (im Prinzip Note On/Off und Pitchbend) und ein großes Manko ist, dass der JX-3P nicht die gleichzeitige Benutzung des Programmers und MIDI-Empfang erlaubt. Da die Parameter auch nicht über MIDI Control Changes oder Sysex kontrolliert werden können, ist nicht möglich, gleichzeitig an mehreren Soundparametern herumzuschrauben, während eine Sequenz von einem externen Sequenzer oder der DAW über MIDI angesteuert wird.

Um diese Einschränkungen zu beheben, gibt es seit einigen Jahren ein MIDI Expansion Kit von Organix (augenscheinlich ein Ein-Mann-Unternehmen aus den Niederlanden), das den JX-3P um einige Features erweitert:

Weiterlesen…

PythonCamp 2016

Kostenloser Wissensaustausch rund um Python

(The following is an announcement for a Python “Un-Conference” in Cologne, Germany and therefor directed at a German-speaking audience.)

Liebe Python-Fans,

es ist wieder soweit: Am  Freitag, den 15. Januar   öffnen wir die Online-Anmeldung für Teilnehmer des PythonCamps 2016!

Die nunmehr siebte Ausgabe des PythonCamps wird erneut durch die Python User Group Köln sowie den Python Software Verband e.V. in den Räumen unseres Partners GFU Cyrus AG in Köln ausgerichtet.

PythonCamp 2016

Samstag und Sonntag, 2. - 3. April 2016

GFU Cyrus AG, Köln (Deutz)

http://pythoncamp.de

Unsere zweitägige Veranstaltung richtet sich an alle, die sich für die Programmiersprache Python und deren Einsatz begeistern - sei es im Bereich Web Development, Automatisierung, Scientific Computing oder einfach nur zum Spaß. Die Themen des PythonCamps sind so vielfältig wie die Einsatzmöglichkeiten von Python selbst, denn das Programm wird - wie bei einem BarCamp üblich - ausschließlich von unseren Teilnehmern selbst gestaltet.

Weiterlesen…

Here’s a checklist for participants of my training session Interactive experiments in sound synthesis with Nsound, numpy and matplotlib at EuroPython 2014 in Berlin.

  1. Have/bring a laptop with Linux (preferred), Windows, or OS X and good headphones.
    An external audio interface may help with audio performance but is not essential.
  2. Download and install my virtual machine appliance for the course
    or follow the instructions to set up your own environment for the course.
  3. Get the initial course material from my Git repository (the $ denotes the shell prompt):
    $ git clone http://chrisarndt.de/git/soundxp-ep2014.git soundxp

    If you use my virtual machine, do this instead:

    $ cd ~/work/soundxp
    $ git pull
  4. Test that audio output over your headphones works by playing the file audio/mynameis.wav from the course material with any audio player provided by your system (for example on my virtual machine you can use aplay from the command line).
  5. Test that your Nsound installation works by activating the virtual environment in which you installed it (see step 2) and running:
    $ cd soundxp
    $ ipython -i startup.py
    Python 2.7.8 (default, Jul  1 2014, 17:30:21)
    Type "copyright", "credits" or "license" for more information.
    IPython 2.1.0 -- An enhanced Interactive Python.
    [...]
    In[1]: /pl mynameis

We will quickly do steps 3 - 5  at the beginning of the course again for all participants to get up-to-date.

I’m looking forward to meeting you all at the training session, let’s have fun making noise!

These instructions detail how to create a working environment for participants of my training session Interactive experiments in sound synthesis with Nsound, numpy and matplotlib at EuroPython 2014 in Berlin who do not want to or cannot use the virtual machine appliance I created for the course. These instructions are geared to Linux users, though with a bit of knowledge and adaptation on your part, they can also be applied to Microsoft Windows or Mac OS X systems. Inexperienced users are strongly encouraged to use the virtual machine appliance instead!

Weiterlesen…

I have created a virtual machine for virtualbox for the participants of my training session Interactive experiments in sound synthesis with Nsound, numpy and matplotlib at EuroPython 2014 in Berlin. It provides a ready to run Manjaro Linux System with an XFCE desktop and all the software necessary to follow the course.

Update (2014-07-22): if you already are at EuroPython and downloading the virtual machine appliance is too slow, please contact me via email (see below) or on Twitter (@TheUnifaun) and we’ll meet and I’ll transfer the file to you via USB stick or SD card.

Here are the instructions on how to get your environment for the training session up and running. These instructions should work regardless of whether you use Windows, OS X or Linux:

Weiterlesen…

Here’s a nifty little Lua script for the Geanylua plug-in for the Geany text editor: install it into your ~/.config/geany/plugins/geanylua folder and add the name of the script to ~/.config/geany/plugins/geanylua/hotkeys.cfg to allow binding it to a keyboard shortcut (I use Ctrl-Alt-b, see the Geanylua documentation for more information on assigning keys to scripts).

When the script is activated, it will select the block corresponding to the current code folding level of the line the cursor is on in the active document. E.g. if you place the cursor in the body of a Python function on a line that is on the same indentation level as the first line of the body of the function, it will select the whole function. Also, if the cursor is on the opening line of a block, e.g. a line starting with class, def, if, etc., the script will select the block started by this line.

Note: this strategy does not work well in conjunction with functions preceded by a decorator, since the selection will not include the decorator line. For this reason, the selection is inverted, i.e. it starts at the end of the block and ends at the beginning. This means you can hold down shift and move the cursor backwards, and the selection will extend from the beginning of the block backwards, instead of the end of the selection being shortened as it would be for a normal selection.

Here’s the code of the Lua script as a Gist:

https://gist.github.com/SpotlightKid/9964085

The script makes use of some Scintilla messages, which are only accessible in Geanylua via the geany.scintilla() function. The available messages are documented here.

Welcome, my Nephew

Here is a little song I wrote for my nephew, who was born two weeks ago, to welcome him into this world and hopefully give him some comfort while he rests from the tiring all-day business of processing his mother’s milk. It is thus called Benjamins Schlaflied (Benjamin’s Lullaby) and I play the piano and an accordion, which I borrowed from my sister (the mother) a while ago. It is the first time I used an accordion in a song, so please excuse my less than virtuoso playing.

According to the internet, Benjamin may mean “son of the south” or “son of fortune”, among other things. If Nomen est Omen, he seems to be destined for a bright future. I give him my best wishes for the journey of live he has embarked on!

Weiterlesen…

Some months ago I finally caught up with modern development practices and switched to Git for new software projects. I even now use my GitHub and Bitbucket accounts more often, e.g. for collaboration projects, though I host my own projects on my own server with the help of Trac and gitosis.

One thing I do like about GitHub though, are Gists. Like many good ideas this one makes one wonder, why nobody came up with it before. Basically Gists are code snippets you publish on the web (like in a pastebin) but they are under version control and each Gist is its own mini git repository. They let you share programming ideas and nifty little tools with the rest of the world with ease and others can easily take them and comment, expand or correct them. The revision control makes it clear, what developed from where and who did what. Finally, your Gist page on GitHub serves as a central place, where you can browse, search and present all these digital scrap notes.

It is also very easy to include Gists in your blog, which is what I’m starting with this post.

Weiterlesen…