Inspired by the Piana project (http://raspberrypisynthesizer.blogspot.co.uk/) I’ve decided to combine my passions for writing software, playing music and the Raspberry Pi – and create the Pithesiser!

This will be software synth tailored and tuned to run on the Pi, and is principally a vehicle for me to learn more about digital audio and try blogging about the whole experience. And to scratch an old itch – getting back to doing some low-level coding!

I’ll be considering whether or not to make the code open source, but right now it’s not in a state to make public.

Like any decent synthesiser, there should be some ambiguity over how the name is pronounced. I say “Pi” as in the mathematical constant or delicious baked foodstuff. Phonetically it is “paɪ”


16 thoughts on “About

  1. Hi
    I’m interested on your article on jivelite and piTFT.
    I just bought a adafruit 2.8″ screen and i’m unable to display jivelite on it.
    I configured it using adafruit learn tutorial (https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi) and everything is working fine (image, X).
    I downloaded LCDskin (and added images dir) from slimdevices forum post you mentioned in your article but i always have black screen.
    Can you explain precisely the procedure to make jivelite works on the piTFT? I think it will be really useful for those, like me, that have troubles 😉
    Many thanks.

    • Have you followed the link in the text that leads here?


      If you have both the PiTFT and an HDMI screen connected, does JiveLite appear on the HDMI screen? If so, make sure you have the SDL_FBDEV variable set as per the example in the link – this ensures the graphics library (SDL) used by JiveLite uses the PiTFT.

      Also make sure your Pi has a file called /dev/fb1.

      • Hi

        Thanks for your answer.

        I found a solution to my problem:
        – I downloaded source from guys that already created piTFT skin (https://code.google.com/p/jivelite/source/clones).
        – then I launched jivelite on HDMI output SDL_FBDEV=/dev/fb0 ./jivelite to select piTFT optimized skin (LCDskin)
        – finally I launched SDL_FBDEV=/dev/fb1 ./jivelite
        Jivelite is running well now.

        But i have new problem with touchscreen calibration.
        I calibrated screen using adafruit tutorial (Manual Calibration): TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate
        When I ran TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_test the precision is good (I used a stylus)
        And when I launch jivelite, the cursor is completely not calibrated and directions are reversed, i mean when I go up with my stylus, mouse pointer goes down, and when i move left the pointer goes right…
        Did you have this kind of problem ?

        Thanks a lot for your support.

  2. Hi,

    I was inspired by your make of the squeezelite/jivelive touch. I’m at the point of adding button/rotary encoders but i’m unsure how to connect. I have a number of pins unused 3,5,7,8,10,22 NC
    6,9, 14,20,25 GND
    Do i connect a switch between the 3 and the ground or between the 5v (or 3v) and the 3. ?

    And when i use your version of the pikeyd software, witch switch to connect where ?

    thanks a million for helping me out

    • Hi Klein – great to hear that you’re inspired!

      It’s been quite a while since I did the SqueezePi, but I’ll try to help.

      In general, you can connect switches to GPIOs in either way you suggest. A great tutorial for that is https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/buttons_and_switches/.

      What I generally do is to connect switches between the GPIO pin and ground, then configure the GPIO as an input with an internal pull-up resistor enabled. That means when the switch is open, that pin is at 3.3V and returns a 1 in code. When the switch is closed, the pin goes to 0V and returns a 0 in code. This is a common practice, as it can consume less power, create less electrical noise and not require a current limiting resistor. For more on this approach, see http://raspberrypi.stackexchange.com/questions/9481/gpio-why-wire-button-to-ground-rather-than-3-3v

      For pikeyd, I went back and looked at the code, and I _think_ it expects switches to be wired between the pin and ground. However I recommend you test this out with a switch on a breadboard connected to your Pi, and try it both ways.

      A word of warning – NEVER CONNECT 5V to a GPIO input on the Pi, even through a switch. Only use 3.3V, otherwise you may well damage the Pi.

      pikeyd allows you to wire up your switches or rotary controls to any of your available pins. The file ‘pikeyd.conf’ controls this – you specify the keys you want it to generate and the GPIO pins to associate. There is an example file in the github repository.

      You can assign more than one key to the same pin – in that case, pressing a switch on that pin will generate all those keys in order, so you can trigger input of an entire word!

      For rotary controls, you specify two pins and two keys, for the two different directions of the control.

    • Took me ages but i did it. severals how to’s, taking snippets from everywhere.

      The only thing, you rotary controls, they have a button as well (like the orginal radio) ?. Because mine do not. While using the orginal pikeyd conf. they work for up/down and the volume.

      Thanks for the inspiration, i will post a link to the final when i’m finished

      • Did not work after all, now i installed your fork of the pikeyd. I only have one problem, where do i put the pins of the rotary encoders on.
        Your config says: ROT 2 3 KEY_MINUS KEY_EQUAL

        i have 3 pins on my rotary, i figured one on the gnd, the other two ??

      • While reading the peace on rotary encoders in use with the ardunio i figured out that i connect the ground to the ground and the other two to gpio pins 2&3.

        I took the following steps to install pikeyd:

        #1 Type “git clone git://github.com/dozencrows/pikeyd” (to download the pikeyd source)
        #2 Type “make -C pikeyd” (to compile pikeyd)
        #3 Type “sudo cp pikeyd/pikeyd /usr/local/bin/” (to copy the compiled pikeyd)
        #4 Type “sudo nano /etc/rc.local” (to open rc.local in a text editor)
        #5 Add “/usr/local/bin/pikeyd -d” as the second-to-last line, exit and save changes. (to autostart pikeyd on boot)
        #6 Type “sudo cp pikeyd/pikeyd.conf /etc” (to copy the pikeyd config file)
        #7 Type “sudo nano /etc/pikeyd.conf” (to open the pikeyd config file in a text editor)
        #8 Use your config file instead of the orginal one.

        My other 4 buttons work fine, the rotary encoders show input when using the orginal pikeyd config file

        Where do i go wrong ?

      • One thing to check – the pin numbers in pikeyd.conf are GPIO numbers, not pin numbers on the Raspberry Pi’s connector. You should connect that rotary control to pins 3 and 5 on the connector (see http://elinux.org/RPi_Low-level_peripherals#P1_Header).

        If you have a Rev 1 Pi, you need to use the line in the config file that starts ‘#ROT 0 1…” instead of the line ‘ROT 2 3…’, as Rev 1 Pis have different GPIOs connected to physical pins 3 and 5.

        That’s my best guess as to what may be a problem.

        The only other things I can think of is that your encoder works differently (check its datasheet to ensure it emits Gray code from the two pins) or the encoder is connected incorrectly.

  3. Hey , your project with the squeezebox is very interesting. Great work! I am going to implement a similar project. Your Skin ( video ) is very nice. I would like to use these also. So I installed your Jivelite version, but unfortunately is not the same skin included. i use the “WQVGA” Skin. The resolution is correct, but it looks different. Can you help me? Where i can find the skin from the video ? Thanks and greetings from Germany Chris

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s