Errors in building pd-extended on Odroid C2
I get errors, likely related to alsa, when building from source pure data extended
(the last version - ) on ODROID C2, running Ubuntu 16.04.
To build I simply followed the instructions listed on the puredata.info
(cd pure-data/packages/linux_make and then make instal)
I think I
to have all the dependencies correctly installed.
Here the last lines of the build output
pd-s_audio_alsamm.o: In function `alsamm_stop': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:998: undefined reference to `snd_pcm_drop' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1012: undefined reference to `snd_pcm_drop' pd-s_audio_alsamm.o: In function `alsamm_close_audio': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:395: undefined reference to `snd_pcm_close' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:407: undefined reference to `snd_pcm_close' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:390: undefined reference to `snd_pcm_unlink' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:395: undefined reference to `snd_pcm_close' pd-s_audio_alsamm.o: In function `alsamm_stop': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:998: undefined reference to `snd_pcm_drop' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1012: undefined reference to `snd_pcm_drop' pd-s_audio_alsamm.o: In function `alsamm_send_dacs': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1111: undefined reference to `snd_pcm_avail_update' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1133: undefined reference to `snd_pcm_state' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1216: undefined reference to `snd_pcm_mmap_commit' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1245: undefined reference to `snd_pcm_avail_update' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1256: undefined reference to `snd_pcm_state' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1321: undefined reference to `snd_pcm_mmap_commit' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1128: undefined reference to `snd_pcm_avail_update' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1133: undefined reference to `snd_pcm_state' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1148: undefined reference to `snd_pcm_avail_update' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1272: undefined reference to `snd_pcm_avail_update' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1253: undefined reference to `snd_pcm_avail_update' pd-s_audio_alsamm.o: In function `alsamm_showstat': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1359: undefined reference to `snd_pcm_status_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1359: undefined reference to `snd_pcm_status_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1360: undefined reference to `snd_pcm_status' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_audio_alsamm.c:1364: undefined reference to `snd_pcm_status_dump' pd-s_midi_alsa.o: In function `sys_alsa_do_open_midi': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:69: undefined reference to `snd_seq_open' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:83: undefined reference to `snd_seq_create_simple_port' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:67: undefined reference to `snd_seq_open' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:94: undefined reference to `snd_seq_create_simple_port' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:71: undefined reference to `snd_seq_open' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:101: undefined reference to `snd_seq_client_info_malloc' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:102: undefined reference to `snd_seq_get_client_info' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:103: undefined reference to `snd_seq_client_info_set_name' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:104: undefined reference to `snd_seq_client_info_get_client' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:105: undefined reference to `snd_seq_set_client_info' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:106: undefined reference to `snd_seq_client_info_free' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:109: undefined reference to `snd_midi_event_new' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:137: undefined reference to `snd_seq_port_subscribe_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:137: undefined reference to `snd_seq_port_subscribe_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:139: undefined reference to `snd_seq_client_info_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:139: undefined reference to `snd_seq_client_info_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:140: undefined reference to `snd_seq_port_info_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:140: undefined reference to `snd_seq_port_info_sizeof' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:141: undefined reference to `snd_seq_client_info_set_client' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:145: undefined reference to `snd_seq_client_info_get_client' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:142: undefined reference to `snd_seq_query_next_client' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:149: undefined reference to `snd_seq_port_info_set_client' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:150: undefined reference to `snd_seq_port_info_set_port' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:151: undefined reference to `snd_seq_query_next_port' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:154: undefined reference to `snd_seq_port_info_get_port' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:157: undefined reference to `snd_seq_port_subscribe_set_sender' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:158: undefined reference to `snd_seq_port_subscribe_set_dest' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:159: undefined reference to `snd_seq_subscribe_port' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:163: undefined reference to `snd_seq_port_subscribe_set_sender' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:164: undefined reference to `snd_seq_port_subscribe_set_dest' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:165: undefined reference to `snd_seq_subscribe_port' pd-s_midi_alsa.o: In function `sys_alsa_putmidimess': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:224: undefined reference to `snd_seq_event_output_direct' pd-s_midi_alsa.o: In function `sys_alsa_putmidibyte': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:242: undefined reference to `snd_seq_event_output_direct' pd-s_midi_alsa.o: In function `sys_alsa_poll_midi': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:257: undefined reference to `snd_midi_event_init' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:260: undefined reference to `snd_seq_event_input_pending' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:265: undefined reference to `snd_midi_event_decode' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:262: undefined reference to `snd_seq_event_input' pd-s_midi_alsa.o: In function `sys_alsa_close_midi': /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:278: undefined reference to `snd_seq_close' /home/odroid/Desktop/pdextended_sources/pd-extended/pd/src/s_midi_alsa.c:281: undefined reference to `snd_midi_event_free' collect2: error: ld returned 1 exit status make: *** [pd] Error 1 make: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1 make: *** [all] Error 2 make: *** [pd] Error 2 make: *** [install] Error 2
I there anyone who managed to install pd-extended on ODROID C2 and
can suggest a way to solve this issue?
Thanks in advance!
Couldn't create error?
@jay2008p Hello...... when you get the message "couldn't create" it means that Pure Data cannot find that object. If you have installed Pd-extended then you have these two objects in a folder of Pd and you can tell Pd where they are by "put"ting an object anywhere in your patch and typing "import mrpeach".
So you will have an object on the screen [import mrpeach]
Save and close the patch and re-open it and all should be well.
If you have installed Pd-vanilla then you do not have these objects at all. Vanilla can be altered, but that is more complicated.....
You can copy these objects from a copy of extended..... into your vanilla "pd/extra" folder......or any folder you wish..............
You can find extended here if you need it.
and then in "edit" "preferences" "Path" "new" add the path to that folder so that Pd can find them...
If you are new to Pd the simplest solution is to install "extended"...
Volume Control (dB)
@Spyros ..........Sorry Spyros...... I meant inside the program.......
In the real world it is of course a true measurement relative to the power of the smallest discernible sound........ which I remember being a cricket at 100M? in a quiet environment.....
And please let us know whether the patch actually gives you the true response on your meter!
keyboards GUI for MIDI
@gsagostinho hahahaha Gilberto sorry for Guilherme ...
I use externals binaries included in deken, but we have only linux 64 bits versions of ggee and cyclone compiled there. So I did only Linux 64 bits version of keyboards GUI, if someone have these libraries compiled in 64bits on MAC and/or WIN, please include binaries in the 64 bits version.
ps.: @gsagostinho are named correctly now.
32 bits (Linux, Windows, Mac):
64 bits (Linux Only)
udpsend and receive
@toddak Ah!......... so I am sorry toddak, but I have a lot of questions......
So you still want to use the touch screens, and as you have a few Pi's you have backup cards so you have managed to get back to where you were before the update disaster? I hope so as that would make me feel much better!
You do not really want to use netsend and netreceive but in fact OSC objects (so you don't need MrPeach....... and a later vanilla will be ok as Alexandros suggested)? However, extended has many useful objects!
You are using an extra Pi as a router and you want to use [netsend] and [netreceive] on that?
I would think you would be better off with a dedicated router. I just bought another wrt54 on ebay for 99 uk pence.
Are you planning to stream audio to these 4 Pi's (in which case you will need extended) or are you just sending osc messages from them, or just receiving osc messages so as to start/stop playback?
I have not managed to make audio streaming to a Pi work reliably yet without occasional dropouts, and the sound will not work well at all unless you give Pd root privileges............. so remember.... for later...
sudo chmod 4755 /usr/bin/pd-extended
For audio on a Pi it should be run headless, so you should drop your touch screens in that case.
If you are using the Pi's with touch screens just to send osc messages you would be better off with some £40 android 7" tablets running TouchOSC (one licence for all of the android devices you own).
If they are receiving Osc to control their local playback then why do they have touch screens. Is it the touch screens that would not work with Jessie, or some other screen?
Jessie is not very different from Wheezy (it is not a huge update) but it is exclusively armhf. If the touch screens are needed and will not work with Jessie then you are stuck with the current wheezy that you have installed.
If you need to stay with armel then on one of your working Pi,s (armel) you should try this http://puredata.info/downloads/pd-extended-rpi version of extended and install pulse audio and the fonts (manually or with an apt-get) first. A lot of information you can find from here http://puredata.info/docs/raspberry-pi/?searchterm=raspberry
But if you have Rpi B2 (or anything other that an A or a Zero) you should really be running an armhf distribution.
udpsend and receive
@toddak to fix the missing dependancies run this in terminal.............
sudo apt-get update
sudo apt-get upgrade -f
In fact you should do all of these from time to time....... (not the bits in brackets)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get upgrade -f (fix missing dependencies)
sudo rpi-update (firmware and kernel)
It is most likely that you need pulse audio for Pd to run....... I think that it is essential....
and maybe the dejavu fonts (uncertain)........ and so the command above should solve your problem and Pd should then run....
ALSO...... if it will still not run once the missing dependancies have been installed you should check that you are running an armhf system:...........
Run this command in terminal:
readelf -A /proc/self/exe | grep Tag_ABI_VFP_args
If the Tag_ABI_VFP_args tag is found, then you're running on an armhf system. If nothing is returned, then it's armel. To show you an example, here's what happens on a Raspberry Pi running the Raspbian distribution:
pi@raspberrypi:~$ readelf -A /proc/self/exe | grep Tag_ABI_VFP_args
Tag_ABI_VFP_args: VFP registers
This indicates an armhf distro, which in fact is what Raspbian is. On the original, soft-float Debian Wheezy distribution, here's what happens:
pi@raspberrypi:~$ readelf -A /proc/self/exe | grep Tag_ABI_VFP_args
Nothing returned indicates that the kernel is armel.
udpsend and receive
@whale-av - it looks like there might be an issue, There seems to be some errors during install, and then PD won't open:
pi@raspberrypi ~/Desktop $ sudo dpkg -i pd-extended_0.43.4~extended1-1~raspbian_wheezy_armhf.deb
(Reading database ... 86594 files and directories currently installed.)
Preparing to replace pd-extended 0.43.4~extended1-1~raspbian (using pd-extended_0.43.4~extended1-1~raspbian_wheezy_armhf.deb) ...
Unpacking replacement pd-extended ...
dpkg: dependency problems prevent configuration of pd-extended:
pd-extended depends on libftgl2 (>= 2.1.3~rc5); however:
Package libftgl2 is not installed.
pd-extended depends on libgsl0ldbl (>= 1.9); however:
Package libgsl0ldbl is not installed.
pd-extended depends on libquicktime2 (>= 2:1.2.2); however:
Package libquicktime2:armhf is not installed.
pd-extended depends on ttf-dejavu; however:
Package ttf-dejavu is not installed.
pd-extended depends on pulseaudio-utils; however:
Package pulseaudio-utils is not installed.
dpkg: error processing pd-extended (--install):
dependency problems - leaving unconfigured
Processing triggers for shared-mime-info ...
Processing triggers for menu ...
Processing triggers for man-db ...
Processing triggers for desktop-file-utils ...
Processing triggers for hicolor-icon-theme ...
Errors were encountered while processing:
Does anyone know if 0.43.3 has the mrpeach externals?
@ alexandros - I was having issues with Jessie and some of the screens I was running, so would prefer to stick with Wheezy at the moment if possible. But if there is no other work around I might have to go that way!
I keep getting audio I/O error
I am pretty new to PD and I am having some issues with an "audio I/O error" when turning on DSP.
I am trying to follow this tutorial:
But I dont get any sound at all and it doesnt matter how I set it up(following the different methods presented in the video), there is no sound. I copied the audiofile to the same folder as the PD patch and did an "open X.wav"..... but that doesnt work. I also tried the method where you select file from harddisc, but still no luck. This is the patch(audio is set to samplerate 48000 cause the sample is 48000:
I have done the audio test in "test audio & midi" and there i get sound. That works.
I also tried using this patch and here I also get sound:
Can anyone point out to me what might be wrong with my setup? I have 0.43.4-extended version of PD on Mac.
Cubie pd pedal
I've been working on that for nearly two years and now it is done I find it soooo 2014 that the previous intentions to make a full wiki page seem now silly. Anyway this could give ideas to other people so here is an abstract.
This is basically a lame-electronics simple-aggregate-of-common-parts version of a guitar pedal that hosts pd extended patches as effects. It's based on a cubieboard 2, connected to an el-cheapo (this was intended as a proof of concept hardware) soundcard through usb, internally. It boots a rt-patched version of debian from microSD card (never managed to flash sdram) in ... 50seconds , with autologin so no keyboard is needed. After this time it behaves like a floor pedal, pd runs the stored patches responding to its hardware interface. Anyway a keyboard, a mouse and a display can be plugged in and it behaves like a linux desktop, it's easy to edit patches on the fly.
The interface consists of three footswitches, three leds, a button switch, a clickable rotary encoder, four clickable potentiometers and a 4x20 lcd display. The pots and the display communicate with the gpio pins (all of them digital) through i2c, the pots being read by a quadruple i2c adc.
I called it a pd pedal, but I have to confess it cannot be directly connected to a guitar amp, as the IO are two preamplified instrument inputs, two line in, two line out and a headphone stereo jack. This can be solved when you have a digital pedal in your pedalboard that have line inputs. Of course I knew it from the beginning, and could never work it around later as it would have taken more space and would have been tedious to implement for a beginner electronics fan like me .
I also wanted from the beginning to make a relatively small footprint on my pedalboard so it is rather tall (aluminium box is 160x125x76). What a challenge to stack these components in such a box it has been, especially when it came with holes positioning, elements fixture, internal aluminium rounded edges to mill and file down...
The 1 ghz dual-core with 1 gb ram allows for decent dsp patches.
The pedal automatically runs a predefined patch but interface allows for patch selection. (statically coded so far)
I initially wrote several externals that allow for interface i/o, but never got rid of audio artifacts when the interface was trigged. As a workaround I now make the readings from outside pd, with a well-choosen rt priority and send values to pd using pdsend. The workaround is only half of what it should be, as for outputting data (writing things on the display) I still rely on a homebrew pd external (too much work for me to take it out of pd). The result is uncorrupted audio only when lcd display is not used, which is unreasonable (every pot controls a patch parameter and I love to see the values updated on the lcd). But when the pedal is left untouched the audio is clean.
Here are two pics, one of the inside before the audio card is stacked and the other one showing it outside look.