Skip to content

a Raspberry Pi 3B+ userspace app to listen to rotary encoder msgs on GPIO pins, convert them to MIDI msgs and push them through JACK (audio connection toolkit)

License

Notifications You must be signed in to change notification settings

synthnassizer/rpiEncoderController

Repository files navigation

Description
-----------
a Raspberry Pi 3B+ userspace app to listen to rotary encoder msgs on GPIO pins, convert them to MIDI msgs and push them through JACK (audio connection toolkit) 

Build
-----
you can build it directly in Raspberry Pi

	sudo apt install cmake jack pigpio libjack-jackd2-dev libgpiod-dev libpigpio1 libpigpiod-if-dev libpigpiod-if2-1 pigpio-tools pigpiod #maybe some could be skipped
	git clone ...	# this repo
	cd rpiEncoderController
	mkdir build && cd build
	cmake -DCMAKE_BUILD_TYPE=Debug ../encoderController
	make


Or you can build using a cross-compile toolchain. For Rasbian Buster I used https://github.com/Pro/raspi-toolchain. You will also need the rootfs with all the packages mentioned above. Then you can update rpienv.sh to point to the location of the rootfs subfolders and

	source rpienv.sh
	mkdir build && cd build
	cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=rpi3toolchain.cmake ../encoderController
	make

Please note that you will need to go through these files and update sevral paths for the above to work.


Usage
-----

Please run ./encoderController -h for an explanation of the available options. A typical command invokation would be:

	sudo pigpiod    #start the pigpio daemon
	./encoderController -c 64,43 -t

So the rotary encoder will be sending CC (controller change midi msgs) through controller # 64 , while the button on the rotary encoder will be sending CC midi msg through controller # 43.

The GPIO's used for the single encoder are numbers 17 and 27 (for the encoder) and 22 (for the button). These by the way are the Broadcom numbers for the GPIO's and the actual pcb numbering. Please refer to https://pinout.xyz/# for correspondense and look at REQ_encToJackClient for pin numbers of the other encoders (up to 3). You can  recompile the executable to change the GPIO pins that the app listens to.

About

a Raspberry Pi 3B+ userspace app to listen to rotary encoder msgs on GPIO pins, convert them to MIDI msgs and push them through JACK (audio connection toolkit)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published