@Tombot7 As it works elsewhere something has changed on the PI.
It's probably not PurrData if no updates have been done.
But check in task manager that there is not a hung Pd running in the background.
Does it appear in the Pd midisettings window at all?
Any other software drivers..... alsa etc. been updated?
Try a sudo reboot with the Nanocontrol plugged in, and if you have a backup card for the PI then try that.
Maybe see if a mouse works..... to check the usb interface.
Faults on a RPI are often caused by the main 5V supply slowly dying, but usually it won't boot when that supply is faulty.
@60hz Looking at this...... https://silo.tips/download/real-time-person-tracking-and-identification-using-the-kinect-sensor-major-quali it looks like a decision has to be made about the number of times a head is untracked before it is removed ( data reliability).
So boundaries are a good way to go, and with a width setting so as to adjust for optimum in a live situation ( catching a head exiting at speed).
I think it is worth putting a switch to decide if Inferred should be ignored or not, and trying it in a live situation.
"Untracked" can then be ignored.
Once you know x and y ranges (0-1?) it will be easy.
@60hz So what does "Untracked" mean? If it means "left the scene" we can use that.
How to treat "Inferred"........ ignore it?
And the x and y data ranges for setting the borders if "Untracked" means something else (and then how to treat it if it means something else..... ignore it as well?)..
@60hz I don't know the exact meaning of the trailing data...... Inferred and tracked make sense.
But if "untracked" means the user has left the space then that could be used to delete the line for that user.
It could also be done with an x or y range test or probably just x...... set a window size and window edge width and as their head falls within the edge boundary delete them.
Probably safest to have y as well in case they crawl out of view of jump out of the edge
If you only have 6 bodies the store is not going to grow. Any store setting >=6 will be fine.
Maybe setting the store size at 5 would help as the store would cycle the users while there are 6 and drop any user that leaves.
But then when there are only 5 it would stop cycling and fail to detect another one leaving.
I am not keen on that solution. The store could be reduced again after a set time but that is unsatisfactory and would introduce errors anyway.
Using reset will (very) temporarily introduce errors too..... and an admin needs to be awake for that.
It will rebuild the store very fast, but there will be some incorrect data points until it is built (all current users are added).
What is the x and the y range for the data?
I am thinking..... when a head is in the red area it is deleted from the store....... when it enters the white area it is added to the store..... sort of like this.......
.... so eg for an x range 0 to 1.........
if x <= 0.05 or x >= 0.95 delete else add
@60hz The "near" parameter for [text search] combined with the empty [route] filter from your first patch will allow an increasing z for the smallest head.
That allows for a head Z to start increasing in value while still being the smallest.
You don't actually need to find the lowest value. You just want to find the line with the Z value closest to zero.
@ingox That's probably the simplest, but Id's need to be removed as they go out of bounds, or have been "untracked" for a small period of time.
Maybe time stamp the data and give it a short life in the text file.
Medical research also has some thoughts on what Kinect data should be treated as valid.
For example "Inferred" should probably be dropped entirely as it could only be valid for the smallest head z if another ID put their hands around that head from behind.
@leomaurel It looks great. I didn't realise that it was a real tuned pipe wind organ.
So the instrument does receive midi.
But only midi note.
That makes sense to me. I don't see how you can pitch bend a tuned pipe unless the pipe length can be changed by a motorised plug..... and the reed retuned correctly at the same time (the chance that the whole instrument would still be in tune afterwards being practically nil)..
Unless it has such a mechanism it would make no sense that it would receive midi pitch bend.
Your midi from [noteout] can only control the air pressure to each pipe as far as I can see.
French is my second language. I don't see the tutorial in the zip file, and there are some patches missing. I will search for more information but to me the impossibility of changing the pitch of a tuned pipe will be a deal breaker.
But @beem makes an interesting point about modulation. Again, more reading to understand whether the valves will be able to react fast enough, and whether the nodes in the pipes would actually change. I don't think they would. How would the reed react to modulated pressure? Etc.
The reed needs to be stable to resonate with the pipe..... pressure / air flow within a precise range.
The pipes are a different diameter as well as a different length for good physical reasons.
They are not designed for pitch bending...... quite the opposite.
So as @beem says again........ you are looking for transposition and not pitch bend.
@leomaurel There are 2 objects for midi pitch bend in Pd ...... [bendin] and [bendout]
Right-click the object and select "help" for more info.
[bendin] has some more help here........ https://forum.pdpatchrepo.info/topic/11667/how-to-map-pitch-bend-from-linnstrument
For [bendout] ghost notes I think it sends a set of control parameters that you can reset to 0 (if you wish) as you send the note off message through [midiout]........ but I don't use midi for music or synths so.....?
If you have a copy of Pd extended then this is a major patch that will do anything you want...... http://industriecreative.github.io/Harmonync/
It looks like it will still work in current versions of Pd if you install some external libraries.
Search the forum for Deken to find out how.
A Google search for "pdpatchrepo deken" will usually work better than the search tool on the forum.
@cfry If I understand your question correctly you will need (in patches that are in that patch folder) an object [declare -path lib]
That will let only a patch that is A... in that patch folder and B.... contains that object.... access the sub-folder "lib".
If you declare the whole path to the lib folder in Pd preferences then all patches will see the lib folder.... which you don't want.