Can't seem to get audio input going with FX demo

I’ve got the Elk Pi with Blackboard and a Pi 3B driving it. I loaded the FX demo. I can hear some muffled noises coming out (the output jacks are on the left, right? I don’t see this clearly documented anywhere). The noises track the FX settings and disappear if the output gain is less than about 0.5. So, I think I have it hooked up correctly. I swapped end to end and got even less, so I went back.

I’m putting this before the input of my Mesa Boogie head. There’s a buffered boost pedal before the Elk Pi. I’ve checked all cables. It’s acting as though either the input jack is dead or it’s not selected or something.

I get an error, which I searched for here but didn’t get a hit.

Sorry if I missed the answer somewhere.

elk-pi:/udata/elk-examples/blackboard/controller-examples$ ./run_multi_fx
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at github.com/elk-audio
fader: 0
fader: 1
fader: 2
fader: 3
Version: luma.oled 3.3.0 (luma.core 1.12.0)
Display: ssd1306
Interface: i2c
Dimensions: 128 x 64

Connection failed (Invalid argument)
elk-pi:/udata/elk-examples/blackboard/controller-examples$

This is the script.

#!/bin/bash
# Start Elk JUCE example

./stop
sleep 1
sudo systemctl start sensei
sleep 1
sushi -r --multicore-processing=2 -c ../../multi-fx/elk_multi_fx_pi.json &
sleep 1
(cd ./apps; ./main_app_general &)
sleep 3
aconnect -x
aconnect 16 128

The error is coming from the last statement:

elk-pi:/udata/elk-examples/blackboard/controller-examples$ aconnect 16 128
Connection failed (Invalid argument)
elk-pi:/udata/elk-examples/blackboard/controller-examples$

elk-pi:/udata/elk-examples/blackboard/controller-examples$ aconnect -i
client 0: ‘System’ [type=kernel]
0 'Timer ’
1 'Announce ’
client 14: ‘Midi Through’ [type=kernel]
0 ‘Midi Through Port-0’
client 128: ‘Sushi’ [type=user,pid=24079]
1 'read:out ’
elk-pi:/udata/elk-examples/blackboard/controller-examples$ aconnect -o
client 14: ‘Midi Through’ [type=kernel]
0 ‘Midi Through Port-0’
client 128: ‘Sushi’ [type=user,pid=24079]
0 'listen:in ’
elk-pi:/udata/elk-examples/blackboard/controller-examples$

I hooked up a USB MIDI keyboard, which at least suppresses that error, but nothing else changed.

To be fair, there’s not much indicating how the FX demo should work.

PS I took a small detour as I switched to a Pi 4. I may also need to find a better power supply.

The minimal and general Obxd sequencer demos work fine. FX demo behaves the same on the Pi 4, I get some strange noises if I put up the output level. No response to MIDI keyboard or any audio input (I tried all 1/4" and 1/8" jacks).

OK it looks like you would set the audio inputs and outputs via the json configuration.

https://elk-audio.github.io/elk-docs/html/documents/sushi_configuration_format.html

https://elk-audio.github.io/elk-docs/html/documents/sushi_configuration_format.html#tracks

“tracks” : A json list of track objects with the following members:

  • “name” - Name of the track, must be unique.
  • “mode” - The channel mode of the track. Valid options are: “mono”, “stereo” and “multibus”. The last option is for tracks with several stereo output busses routable to different output.
  • “input_busses” - The number of input busses on the track, where each bus is a stereo pair. Only valid if “mode” is set to “multibus”.
  • “output_busses” - The number of output busses on the track, where each bus is a stereo pair. Only valid if “mode” is set to “multibus”.
  • “inputs” - Audio inputs to the track. A list objects with the following members:
    • “engine_bus” - The id of the engine bus to route from, where each bus is a stereo pair: bus 0 represents channels 0 and 1, bus 1 channels 2 and 3, and so forth.
    • “track_bus” - The id of the track bus to route audio to.
    • Alternatively:
    • “engine_channel” - The id of the engine input channel to route audio from.
    • “track_channel” - The id of the track channel to route audio to.

So now I am looking for what the values for these things should be when using the Blackboard. I sometimes forget that not all content is Blackboard specific.

Hi!

I tested some, but not all of the aspects of what you are reporting, and here’s what I’ve come up with this far.

This is using the latest 0.9.0 image, set up to use the elk-pi with elk_system_utils, and the master branch of the examples cloned into the /udata folder.

I ran the multi_fx controller example, and got sound from the right inputs through the effects and to the headphone outputs without problem.

Since you mention you initially had a Pi3, may I ask, do you have the actual Blackboard, with the text “Black” on it, or do you have the limited edition controller hat which was in a limited test release alongside last years ADC conference?

Because my test was with the Blackboard, and indeed, the two boards are different, and required different configuration files for Sensei - but not Sushi.

Best,
Ilias B.

Thanks for checking.

My board says “Black” on the front. It was set up from scratch yesterday, as far as I know, using all the latest stuff at github.

I will double check the elk_system_utils as I did not run that before.

OK I chose the elk-pi and rebooted. Nothing much changed. Please confirm the 1/4" outputs are on the left and the inputs are on the right? There is no silk screen indicating the reference designators or the functions here. I’ve tried all 4 jacks with a mono input cable and am getting nothing.

I also see 4 switches at the rear left of the Blackboard. I have not found any documentation for these either. What do they do?

Hi!

Indeed, outputs are to the left, and inputs to the right, under the +10dB switch.

Perhaps stating the obvious, but just in case: you will not get any sound through if there’s no software running - only if the multi fx example has been started, will you hear anything from the headphone amp output - in my case that was a line-level synth sound, correctly processed by the effects.

Those switches are for optional use of control voltage signals, and on my board are all set to “Audio”, i.e. to the right. They should not affect the execution of this example.

Best,
Ilias of Elk

Thanks for your responses Ilias.

All of the other apps seem to work OK, the synths, sequencer, etc.

Yes, I’m running the “run_multi_fx” app and the menus show up on the OLED and are responsive. I get some sort of weird pulsating sound if I turn the main output level over 0.50. Then, the other effects settings seem to affect this pulsating sound as one might expect. I’m just not getting any guitar sound in.

How can I debug this further?

I know what it is, I should have mentioned this sooner:

Specifically for the input you need to plug in a 3.5mm jack cable to the inputs of the elk-pi hat - not the Blackboard, but the elk-pi, middle layer of the sandwich.

On mine I just always had that plugged in, so it slipped my mind when first replying, but yes, if that is not plugged in, the signal is not bridged to the Blackboard, and you will hear no input.

I will ensure that this detail is explicitly pointed out next to the example text in the instructions, it can indeed be very confusing!

Best,
Ilias of Elk.

OK, I plugged in a 1/8" mono cable to that jack. I can now JUST BARELY hear the processed guitar sound amid all the background noise if I turn the headphone volume all the way up. I’m guessing I will need to boost the guitar signal. It’s already buffered through some pedals but that does not seem to matter very much.

How much gain do you think a guitar signal needs? Ideally I would be putting this in the effects loop of either my Avid Eleven Rack or Mesa Boogie Express 5:25.

You should plug a stereo cable there, it’s a stereo port - I think that should make a difference also to the gain level.

Moreover, you have the +10dB switch next to the jacks, which should give you more gain.

Best,
Ilias B.

All right, I just plugged in a 1/8" TRS to dual 1/4" Y cable. Now I get some sound coming in but it is very distorted, hums a lot and seems gated also.

e.g. with all inputs disconnected I get this low end rumbling. It seems to pulsate every few seconds.
If I plug in and play the guitar, I hear it behind a veil of rumble and glitchy distortion. As the sound fades out, suddenly the audio mutes.

The main level output seems to cut off completely below about 0.3. I am guessing that something weird is going on in the DSP because the other demo programs all seem to work fine. Or maybe it’s the input circuitry on the board?

Let me know what else I can check. How would I do a pass-through test?

Also, I’m getting:

Traceback (most recent call last):
File "src/liblo.pyx", line 55, in liblo._weakref_method.__call__
File "/usr/lib/python3.8/site-packages/elk_ui.py", line 186, in _handle_faders
self._faders_cback(idx, val)
File "./main_app_general", line 56, in _handle_faders
param_id = self._procs[self._active_proc_idx][1][param_idx].id
IndexError: list index out of range

Hi!

The noise you’re describing is unfamiliar to me, but I’ll ask my colleagues if your description of it reminds them of anything they’ve come across.

Meanwhile, to get straight-forward passthrough, use the config file ~/config_files/config_empty.json on your elk pi - it contains a single pass-through plugin.

mind@elk-pi:~/config_files$ sushi -r --multicore-processing=2 -c ./config_empty.json

Did the trick for me - I hear clean pass-through.

Things you can check, if that doesn’t work:

Regarding the terminal error you’re getting, it may be that you have versions of the elk-examples, and the image, mixed up - I don’t get it locally on my board with the multi fx example, with the code freshly pulled from the repo on the latest image.

Best,
Ilias of Elk

Hi!

I found a moment to do some more testing and I managed to recreate - and then resolve - what you’re experiencing. I cleaned my udata folder, and cloned from github anew.

I realized that if cloning the repo directly from the board, instead of copying the folder to it, I got the problem that the files were not owned by the correct user.

With that, I got all sorts of problems, including what you reported.

But, by simply typing sudo chown -R mind ., in /udata, I assigned ownership back to the mind user, and the multi_fx example worked fine.

Hopefully it will work on your end too - let us know!

Best,
Ilias of Elk.

Also, clear the pycache folder that appears in the /udata/elk-examples/blackboard/controller-examples/app folder, since what is there is out of date from what it needs to be after having run chown.

Hi Ilias, Thanks for your help.

The pass through had the same problem initially.

I did those two things (chown and clear pyc files). Initially it did not help. In fact, I went to try the OBXD sequencer which had worked before and while I could tell it was working, it was overlaid by the horrible audio disfigurement previously described.

HOWEVER, long story short, I power cycled and now both the OBXD sequencer and the multi-FX appear to be working properly instead of making me think there’s something wrong with the hardware. Also the python error has not reappeared.

The filter behavior in multi-FX seems a little odd, but that is at a completely different level of concern. Thanks again!

DL

Some more issues running the multi FX bank. This only happened once so far, not sure how to reproduce it.

OLED UI locked up, sound kept going.
------------------------------------------
mind@elk-pi:/udata/elk-examples/blackboard/controller-examples$ ./run_multi_fx
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at github.com/elk-audio
fader: 0
fader: 1
fader: 2
fader: 3
Version: luma.oled 3.3.0 (luma.core 1.12.0)
Display: ssd1306
Interface: i2c
Dimensions: 128 x 64
------------------------------------------------------------
2020-12-15 22:39:23,127 - Using selector: EpollSelector
mind@elk-pi:/udata/elk-examples/blackboard/controller-examples$ Traceback (most recent call last):
File “/usr/lib/python3.8/site-packages/luma/core/interface/serial.py”, line 84, in command
self._bus.write_i2c_block_data(self._addr, self._cmd_mode,
File “/usr/lib/python3.8/site-packages/smbus2/smbus2.py”, line 622, in write_i2c_block_data
ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 121] Remote I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “./main_app_general”, line 129, in
bridge.run()
File “./main_app_general”, line 46, in run
self._ui.refresh()
File “/usr/lib/python3.8/site-packages/elk_ui.py”, line 159, in refresh
self._display_dirty = False
File “/usr/lib/python3.8/site-packages/luma/core/render.py”, line 43, in exit
self.device.display(self.image)
File “/usr/lib/python3.8/site-packages/luma/oled/device/init.py”, line 204, in display
self.command(
File “/usr/lib/python3.8/site-packages/luma/core/device.py”, line 39, in command
self._serial_interface.command(*cmd)
File “/usr/lib/python3.8/site-packages/luma/core/interface/serial.py”, line 89, in command
raise luma.core.error.DeviceNotFoundError(
luma.core.error.DeviceNotFoundError: I2C device not found on address: 0x3C

mind@elk-pi:/udata/elk-examples/blackboard/controller-examples$
mind@elk-pi:/udata/elk-examples/blackboard/controller-examples$ ./stop

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

Password:
sudo: /var/lib/sudo/lectured is owned by uid 1000, should be 0
mind@elk-pi:/udata/elk-examples/blackboard/controller-examples$

Hi!

This freezing can happen if the screen loses the connection to the board, e.g. if it is moved, from what my colleagues tell me - I haven’t experienced it myself, but it may happen. So there’s nothing you can do on the software level to address it.

Best,
Ilias of Elk.

Okay, good to know. The board is on a stand on top of my guitar amp at the moment.

I stopped and restarted the program and again it worked fine.

How about this one?

sudo: /var/lib/sudo/lectured is owned by uid 1000, should be 0