Eigenharp / MEC query

Hello, this is a long shot.

I noticed that there doesn;t seem to be a way to differentiate the main keys from the four outer keys. I wanted the four keys in oder to control octave, scale etc but the transmit the same key numbers as the main instrument keys. If the pico script is set to 48 as first note, the four outer keys produce 48, 49, 50, 51

Im probably missing the obvious. Has anyone managed to make these different of seperate them?

many thanks for any pointers

(i havent upgraded to the new MEC update yet)

there is a mapping setup in mec, where you decide on the values.
sounds like the default is not adding an offset for the 2nd ‘row’

Thank you. Do you mean in the *.json script files?I did mess with the picoOsc.json and changed the note offset from 48 to 60 (to experiment) but this also shifts the 4 utility keys too.

no, I meant “col multiplier”
but that said, its should already be offsetting it…
i’ll go check the code

edit:
ok, checked code…

unfortunately, ive got the correct handling in the lower level code, but I need to expose it at the higher level, so that I can do the offset handling properly.
… I think whats happened is, I’ve started work on a comprehensive way to map surfaces, but that’s not completed - and I suspect whilst doing it, I took out the column mapping code.

I’ll have a think about it, and see what I can do ,
mec is released as part of Orac now, so perhaps I can get something in, as I do the orac updates. (no promises though)

(but I will add it to my todo list :wink: )

once I get some time after Orac, I want to review where im going with MEC.
Ive added quite a lot of new functionality, and Orac also gives a bit more focus now,
so I need to think about its direction a little.

Hi Mark, thanks so much for looking into that. At least I know that it could be possible. I look forward to it as and when. Just looking at Orac 2 now. I should be adding some Physical Models to it (hence the Pico and Artiphon Inst 1) including a physically modelled plate reverb in the very near future.

2 Likes

Hi Mark, any news on this? I’m trying to fudge around it using logic to detect 0 events in the osc stream but having no luck so far. Also I think MEC is broken on the Organelle M, in this respect, as it doesn’t work with the Pico at all.

I’ve done quite a bit of work on mec , not sure if I addressed this - as I tend to just use as a playing surface - and not use the utility keys.
( also a lot of the focus was on the alpha and tau)

Mec with Pico works fine on my organelle-m.
I think, iirc, even without a powered hub, but you might want to try with one.
what’s happening when it fails , what do the logs say? Can the usb device be seen?

Hi Mark,

yeh, I use a powered hub and on both original and M organelles, he PiHut one, recommended here somewhere.

The Organelle-M doesn;t see the pico at all with old and newer MEC. Nothing shown in the PD console.

On the original organelle I have just created a fudge PD patch which seperates the 4 utility keys from the main keys, using a list compare to detect repeat zero events, the utility keys output only key number and zeros, so if you play a utility key, its a repeat zero event and thus seperated, so I can use it to change scales etc.

The Organelle-M doesn;t recognise the Pico with the pico.osc.json. Nothing comes up in the log.

Nothing will appear in pd console - as far as Pd is concerned it just osc.

You need to check the mec logs

Hi Mark, nothing in the console either. It is really odd as it runs great on the original Organelle.

I’m assuming that the MEC in Patchstorage is the latest version, unless I missed the party and there was an update somewhere else?

The Pico lights up when I switch the OrganelleM on but from there on there is nothing

I’ve not released mec since last orac release - but the dev branch on GitHub has lots of changes in it.

As I say I needs some logs, mec throws lots of output I need see this - otherwise I have nothing to go on.
In particular I’d like to know if initial firmware upload works.

Ok, Ill dig in this afternoon and see what I can find. Thanks Mark!

Hi Mark, so I gave up and decided to swap my new Organelle-M for an original. I cant find any log (var/logs) that gives me any info on MECs running except that when using “Top”. Im quite new to Linux so not familiar with its tools. I can see MEC quits almost straight away after being launched. I have tried different versions of Braids (osc and e) to no avail. Mec runs longer without the Braids Kontrol patch open but then without that…
thanks for your help anyway.

Sorry I’ve friends and family over for the holidays, so I’m not getting any time to sit down with computer/ organelle to look at this in any details.
( they are here for a while yet, then I have to travel - so busy times)

It could be there are differences as the usb controller is very different for organelle 1 & m,
I’ve had issues with the rPI in the past with - depending on which kernel is used - it’s a bit sensitive.

but I know I’ve had this working with Pico, but not sure if I was tweaked anything or not.
However, my main use is with an Eigenharp Alpha but that is a bit different.

Hi Mark, thanks, no worries.

The kernel logs def show the Pico (usb id 2139) being plugged in and disconnected. I thought that maybe it could have been the Pihut USB hub, which has now been disconitnued. So maybe its the hub/pico combi. If there is anything positive about this is that Ive learned to use Linux monitoring tools

k, so had a chance to have a look at this… and it seems to be working fine for me.

so what I did was:
a) install MEC from patchstorage

(do NOT use version in GitHub dev, there appears to be an issue on the organelle with this, which I do not have time to dive into now)

b) install Orac from patchstorage

make sure I had a decent power supply into OrganelleM… this is important, pico takes a lot of power from USB you will have issues if its underpowered. (true of many usb devices)

plug in pico directly to organellem

start Orac (important this is started first, as MEC needs to connect to PD)
select init preset
A1 - insert brds
S1 (parallel) -> chain1 midi , set in channel to zero (for omni midi) , midi in on
select A1, press organelle key, check you get sound

start MEC, select picopd.json (this is MPE from pico)

that’s it worked…

note: by default its very quiet, and so press hard, keep an eye on the meter.

(the reason is the default velocity low, the scaling of this can be altered in mec config file iirc, I’ve also improved it a lot in dev version but thats for another release)


ok, so how to ‘debug’

either connect via vnc, ssh or use hdmi monitor + keyboard

first we restart mother, so that we can see the various console logs from things like mec/pd

~/fw_dir/scripts/restart-mother.sh

now when we start MEC the console will fill up with loads of stuff…
usually it’ll end something like

log:pic::usbdevice_t::usbdevice_t usb device create 2139.0101.0005.0001 iface 0
log:pic::usbdevice_t::impl_t::open_usb_device 2139.0101.0005.0001
log:pic::usbdevice_t::impl_t::open_usb_device: found device 2139.0101.0005.0001
log:pic::usbdevice_t::impl_t::open_usb_device: opened device 2139.0101.0005.0001
log:usbdevice opened low speed
log:usbdevice opened successfully
log:pic::usbdevice_t::usbpipe_in_t::impl_t 130
log:pico::active loading calibration from device
log:pico::active loading calibration done
log:created pico loop
EigenharpHandler device d: 2139.0101.0005.0001 dt: 0
 dk: pico r: 9 c: 2
 s: 1 p: 0
log:pico::active restoring led mask:255
log:usbpipe_in_t::start()
log:usbdevice_t::impl_t::start_pipes() : pipes started!
log:started loop
Eigenharp::init - started

next step… lets see if MEC is getting messages from pico

edit /sdcard/System/MEC/picopd.json

you’ll see a line at the bottom like

"_console" : {

that underscore is disabling console output, so just remove underscore.
(do not touch anything else!)

"console" : {

k, now restart MEC, and when you could a key on the pico you’ll get a load of messages like

touchContinue -  touch: 1 note: 60.0004 x: 0.0134277 y: -0.0224609 z: 0.0126953
touchContinue -  touch: 1 note: 60.0004 x: 0.0144043 y: -0.0185547 z: 0.0129395
touchContinue -  touch: 1 note: 60.0003 x: 0.0131836 y: -0.0168457 z: 0.012207
touchContinue -  touch: 1 note: 60.0001 x: 0.00610352 y: -0.017334 z: 0.000244141
touchOff -  touch: 1 note: 60 x: 0 y: 0 z: 0

this means MEC is getting messages from pico, and is sending them on …

you can use aconnect to then check its connected to pure data.

and finally if you start PD in graphics mode, you can use the ‘test midi’ screen to see if its receiving midi from MEC.

hopefully the above should get you going?!

p.s. id not recommend you ‘downgrade’ to an organelle-1,
I believe the organelle-m extra processing power will become important over time for expressive controllers.
I now develop on the organelle-m, and just ‘back test’ to the organelle-1 - so new versions will be tested to working on the M.

I can only speak for my software/patches… and I don’t know if others will ensure organelle-m compatibility - but I would hope/assume so. but this may take a little time, as we all have other projects and only so much spare time.

Mark! that is very generous of you, to put so much time to look into it. Endless thanks, really, as getting the Pico going on M makes a massive difference to my creative setup.
I will go through this step by step and let you know. So grateful.

Hi Mark,

again thank you for looking at this.

Right!, I went through your instructions and after a few fumbles I managed set it all up and to get a readout from the log in real time. I have no text editor on the Organelle M so this is my fumbling and pasting it here.

I downloaded Orac 2 and Mec and installed in the order specified.

I used a hefty power supply and I plugged the Pico directly into the Organelle as specified.

Despite this there is an error (in bold below) coming up repeatedly when I do the process. Braids runs fine and I have got the hang of the Orac menus and set the settings as specified.

I will persevere the next few days and keep trying this in case I have touched something that is disabling

_ec api initialise mecapi_proc start MecApi::MecApi mec_app running Port not found : [Pure Data:0] available ports : [Midi Through:Midi Through Port-0 14:0] [ttymidi:MIDI out 128:1] MecMpeProcessor not open, so invalid forPure Data:0 mecapi_proc enabling for console output, throttle : 0 MecApi_Impl::init eigenharp initialise EigenharpHandler enabling for mecapi log:eigenlite v0.4 Alpha/Tau/Pico, experimental - Author: TheTechnobear
log:create EigenLite
log:pic::usbenumerator_t::enumerate : searching V 8505 P 2
log:pic::usbenumerator_t::enumerate : searching V 8505 P 260
log:pic::usbenumerator_t::enumerate : searching V 8505 P 3
log:pic::usbenumerator_t::enumerate : searching V 8505 P 261
log:pic::usbenumerator_t::enumerate : searching V 8505 P 1
log:pic::usbenumerator_t::enumerate found : 2139.0001.000a.0001
log:create eigenharp pico
log:create EF_Harp
log:pic::usbenumerator_t::enumerate : searching V 8505 P 257
log:pico loading firmware…
log:pic::usbenumerator_t::enumerate : searching V 8505 P 1
log:pic::usbenumerator_t::enumerate found : 2139.0001.000a.0001
log:pic::usbdevice_t::usbdevice_t usb device create 2139.0001.000a.0001 iface 0
log:pic::usbdevice_t::impl_t::open_usb_device 2139.0001.000a.0001
log:pic::usbdevice_t::impl_t::open_usb_device: found device 2139.0001.000a.0001
log:pic::usbdevice_t::impl_t::open_usb_device failedLIBUSB_ERROR_ACCESS

log:using firmware ./resources/pico.ihx
log:usbdevice_t::impl_t::start_pipes() : pipes started! /usbdrive/System/MEC/run.sh: line 77: 14731 Segmentation fault $MEC_APP $WORK_DIR/CONFIG music@organellem:~ Menu Selection: 37:brds_mpe Checking for patch Files : /usbdrive/Patches/brds_mpe pd: no process found cat: ‘/tmp/pids/.pid’: No such file or directory /home/music/fw_dir/scripts/killpatch.sh: 20: kill: Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]… or kill -l [exitstatus] pd: no process found cat: '/tmp/pids/.pid’: No such file or directory /home/music/fw_dir/scripts/killpatch.sh: 25: kill: Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]… or kill -l [exitstatus] rm: cannot remove ‘/tmp/pids/*.pid’: No such file or directory linking : ln -s /usbdrive/media /tmp/media linking : ln -s /usbdrive/data /tmp/data ln: failed to create symbolic link ‘/tmp/data/data’: Operation not permitted Checking for abl_link external in patch directory: /usbdrive/Patches/brds_mpe running: find “/usbdrive/Patches/brds_mpe” -type f -name ‘abl_link~.pd_linux’ -exec mv .orig;
X server found… starting Pure Data : ( cd /tmp/patch;
/usr/bin/pd -rt -audiobuf 10 -path /usbdrive/PdExtraLibs “/home/music/fw_dir/mother.pd” main.pd )& enabling patch sub menu 1 Rack Parameters :127.0.0.1:9000 ------------------------ Parameter Dump : brds : brds ---------------------- Rack Settings :127.0.0.1:9000 ------------------------ Module Settings Dump ------------------- Presets NoReverb r_cutoff 0 [F], r_time 0 [F], f_attack 0 [F], f_release 50 [F], f_sustain 50 [F], f_env_amt 0 [F], o_timbre 70.3125 [F], o_shape 16 [F], o_colour 63.2812 [F], r_diff 0 [F], o_transpose 0 [F], r_amt 0 [F], f_decay 500 [F], e_sustain 50 [F], e_release 50 [F], e_attack 0 [F], e_decay 500 [F], f_reson 0 [F], f_cutoff 10000 [F], Default r_cutoff 29.521 [F], r_time 21.8964 [F], f_attack 0 [F], f_release 0 [F], f_sustain 0 [F], f_env_amt 0 [F], o_timbre 43.2063 [F], o_shape 22 [F], o_colour 22.4829 [F], r_diff 15.1515 [F], o_transpose 0 [F], r_amt 37.7322 [F], f_decay 105.572 [F], e_sustain 70.9677 [F], e_release 220.919 [F], e_attack 0 [F], e_decay 160.313 [F], f_reson 0 [F], f_cutoff 5410.56 [F], Midi Mapping Rack Values : 127.0.0.1:9000 ----------------------- Current Values Dump ------------------- pg_osc Oscillator o_shape : 22 [F], o_colour : 22.4829 [F], o_timbre : 43.2063 [F], o_transpose : 0 [F], -------------- pg_vca Vca e_attack : 0 [F], e_decay : 160.313 [F], e_sustain : 70.9677 [F], e_release : 220.919 [F], -------------- pg_vcf Vcf f_cutoff : 5410.56 [F], f_reson : 0 [F], f_env_amt : 0 [F], -------------- pg_fenv F.Env f_attack : 0 [F], f_decay : 105.572 [F], f_sustain : 0 [F], f_release : 0 [F], -------------- pg_rvb Reverb r_amt : 37.7322 [F], r_time : 21.8964 [F], r_diff : 15.1515 [F], r_cutoff : 29.521 [F], -------------- patch loaded send patch config using config /usbdrive/patch_loaded.sh returning to main menu Menu Selection: 1:MEC running shell :"/usbdrive/System/MEC/run.sh" & enabling aux sub menu 1 mec-app: no process found ./mec-app picopd.json enabling aux sub menu 0 mec_app initialise loaded preferences “mec”: “eigenharp”: “steal voices”:true, “voices”:4, “velocity count”:5, “pitchbend range”:2, “firmware dir”:"./resources/", “throttle”:1, “mapping”: “pico”: "notes":[2, 5, 12], “calculated”: “keys in col”:9, “row multiplier”:1, “col multipler”:9, “note offset”:60, “tau”: “calculated-wrong”: “keys in col”:16, “row multiplier”:1, “col multipler”:4, “note offset”:20, “alpha”: “calculated”: “keys in col”:24, “row multiplier”:4, “col multipler”:-1, “note offset”:20, “calculated-factory”: “keys in col”:24, “row multiplier”:1, “col multipler”:4, “note offset”:20, “mec-app”: “outputs”: “midi”: “virtual”:0, “voices”:4, “pitchbend range”:48, “device”:“Pure Data:0”, “console”: “throttle”:0
mec api initialise mecapi_proc start MecApi::MecApi mec_app running /usbdrive/System/MEC/run.sh: line 74: 18120 Terminated $SCRIPTS_DIR/oscdump2 4002 Midi output opened :Pure Data:0 MecMpeProcessor enabling for midi to Pure Data:0 TODO (MecMpeProcessor) : - MPE init, including PB range mecapi_proc enabling for console output, throttle : 0 MecApi_Impl::init eigenharp initialise EigenharpHandler enabling for mecapi
log:eigenlite v0.4 Alpha/Tau/Pico, experimental - Author: TheTechnobear
log:create EigenLite
log:pic::usbenumerator_t::enumerate : searching V 8505 P 2
log:pic::usbenumerator_t::enumerate : searching V 8505 P 260
log:pic::usbenumerator_t::enumerate : searching V 8505 P 3
log:pic::usbenumerator_t::enumerate : searching V 8505 P 261
log:pic::usbenumerator_t::enumerate : searching V 8505 P 1
log:pic::usbenumerator_t::enumerate found : 2139.0001.000a.0001
log:create eigenharp pico
log:create EF_Harp
log:pic::usbenumerator_t::enumerate : searching V 8505 P 257
log:pico loading firmware…
log:pic::usbenumerator_t::enumerate : searching V 8505 P 1
log:pic::usbenumerator_t::enumerate found : 2139.0001.000a.0001
log:pic::usbdevice_t::usbdevice_t usb device create 2139.0001.000a.0001 iface 0
log:pic::usbdevice_t::impl_t::open_usb_device 2139.0001.000a.0001
log:pic::usbdevice_t::impl_t::open_usb_device: found device 2139.0001.000a.0001
log:pic::usbdevice_t::impl_t::open_usb_device failedLIBUSB_ERROR_ACCESS
log:using firmware ./resources/pico.ihx
log:usbdevice_t::impl_t::start_pipes() : pipes started! /usbdrive/System/MEC/run.sh: line 77: 18265 Segmentation fault $MEC_APP $WORK_DIR/CONFIG ^C music@organellem:~

I am wondering whether the system has been corrupted. I bought the unit second hand and just wonder whether there might be something that was tweaked.

eros in bold

music@organellem:~ cd / music@organellem:/ cd var/log music@organellem:/var/log
ls auth.log btmp daemon.log kern.log messages user.log Xorg.0.log boot.log cups debug lastlog syslog wtmp music@organellem:/var/log tail -f kern.log

Jun 19 10:53:50 organellem kernel: [ 5.887165] wm8731 spi2.0: spi2.0 supply AVDD not found, using dummy regulator Jun 19 10:53:50 organellem kernel: [ 5.887309] wm8731 spi2.0: Linked as a consumer to regulator.0 Jun 19 10:53:50 organellem kernel: [ 5.887330] wm8731 spi2.0: spi2.0 supply HPVDD not found, using dummy regulator Jun 19 10:53:50 organellem kernel: [ 5.887422] wm8731 spi2.0: spi2.0 supply DCVDD not found, using dummy regulator Jun 19 10:53:50 organellem kernel: [ 5.887558] wm8731 spi2.0: spi2.0 supply DBVDD not found, using dummy regulator Jun 19 10:53:50 organellem kernel: [ 5.908717] audioinjector-stereo soc:sound: wm8731-hifi <-> 3f203000.i2s mapping ok

Jun 19 10:53:51 organellem kernel: [ 6.820362] uart-pl011 3f201000.serial: no DMA platform data Jun 19 10:53:52 organellem kernel: [ 8.164860] warning: process `colord-sane’ used the deprecated sysctl system call with 8.1.2. Jun 19 10:54:02 organellem kernel: [ 18.123294] fuse init (API version 7.27) Jun 19 10:54:21 organellem kernel: [ 36.598610] bcm2835-i2s 3f203000.i2s: I2S SYNC error!