Topic: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

The binaural mode is theoretically the most realistic mode for playing the piano with headphones. It is the mode that basically captures what our ears actually hear when we are in front of a piano, not in front of speakers. Pianoteq has a binaural mode in which you can choose the exact position and angle of listening. Any other sampled VST can't do this because you would have to record for each note all the possible positions of a head around a piano.
The only flaw of this mode is that once the adjustment is done (dimensions of the head and positioning) it would be necessary to play without moving the head to keep the realism, and of course it is impossible, when we play we move, we turn, we lower the head etc...
A recent message from QEXL directed me to a mixing plugin allowing head tracking (Waves nx abbey road studio 3), this is very interesting but its use with pianoteq only reproduces a listening on monitors and not a piano in front of you.
The association of head tracking (which measures the coordinates of the position of the head, by webcam or bluetooth tracker) with the binaural mode of Pianoteq (the position of the headphones is defined by coordinates) in real time would be a great function. In theory it would be enough to transfer these coordinates from the nx plugin to pianoteq, I have no skills in this field but if someone was able to do it there is a challenge.
Better still if pianoteq could integrate this function in a future version, even if it was to partner with nx. It seems to me technically very easy. However it is clear that the real time head movement leading to the sound modifications will require additional computing power from the PC but it doesn't seem impossible. Help me to encourage pianoteq to realize that...

Translated with www.DeepL.com/Translator (free version)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Yes, this would be very interesting. Dore Mark at https://www.pianobook.co.uk/profile/dore_m/ has made a number of sampled instruments doing exactly what you say, so it's not exactly impossible (but it's simulated and interpolated between actual mic positions).

Depending on how fast it is for PTQ to change these settings this may be possible TODAY using the JSON interface to do the change in real time? I suspect it takes too long and at each head movement there will be a glitch in the sound, because there was no reason for Modartt to optimize this setting in a way to be instantaneous, so most likely they have not done it

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Great to see you expressing this desire YvesTh

Also thank you for that interesting link dv.

I share the hope that perhaps Pianoteq's radiated model may be actually greatly suited to 'repositioning' existing (binaural earphone placement) in real time - and their own I.P. could be the best solution for this.?. anyway worth putting that thought up at top. The rest could turn out moot if that's the case. But fun - and useful stuff abounds..

The Waves Abbey Road Studio 3 NX plugin comes with also surround sound modes 5.1 and 7.1 - based upon the surround speakers positioned in their studio.. engaging that mode may improve the experience yet further beyond the stereo mode.

Some of the other studios in that NX range may just have 5.1 or no surround.

When I mentioned that plugin, I did also mention it is not 1:1 like a real piano in the room, certainly, but probably the easiest '2 speakers in a space' solution (selectable between small, near-field and the larger wall mounted babies). My apologies, at the time I overlooked surround mode though. Doh! Hope you give that a try, to see what it adds to the experience for you.

Whilst NX is primarily for listening/monitoring/mixing, there are many other valuable plugins on the recording side of the signal..

My fav is "dearVR Pro" by "Dear Reality". This may cost 17 times more than an NX plugin - and have more of a learning curve, which is the main reason I didn't suggest it first. But their less expensive "DearVR Mix" plugin shares much overlap with NX.

Like Pianoteq, earnest founders - Dear Reality is in Düsseldorf, Germany so nice and close-ish to Philippe and Julien maybe.. they are now part of Sennheiser group - so some layers of consults may require time, meetings - etc. - but if founders are still in some position to drive decisions, maybe they'd be open to some licensing or other IP licensing exchange? Sometimes, good things happen like this between 2 wonderful teams.

https://www.dear-reality.com/

DearVR Pro also has head-tracking (and also sibling plugins) and being designed to also record with (not just for the 'listen bus' path) it may be more complex (in settings) but quite notable inre some interesting advantages. There are others but I find them so far to be too specific to 'static environments' (like point-click add a listening source - and nice, but not as malleable) and others too specific to older stereo-ization techniques (HAAS, Mid/Side - also nice but I will apply that branch of things myself normally).

If anyone's interested in DAW ideas/templates for Pianoteq, my usage is usually to have two sends from a Pianoteq track, to 'DearVR Pro' on 2 buses, one panned L84, other R84 (note your DAW may use different 'panning Law' so different numbers may be better for you - my DAW of choice here is Studio One by Presonus - I find their pan OK - but they do provide a binaural pan too which you could place on both/either/any chanel/bus FX/return - endless).

Both of these buses mentioned, have the DearVR Pro plugin set to stereo spatialization (instead of its binaural one - also a fine choice which might be better for your useage - I A/B both and over a long timeline usually find myself with the non-binaural mode set) - this just means the plugin is not generating the whole space in 1 instance, but I can choose 'depth' etc. by altering my pan (and other on-deck settings, tones, other plugins etc. - because.. in reality, left space IS often rather different to the right side and vice versa - aha! Esp. when a raised piano lid is taken into account, or being on a stage with wall closer at left, audience open space to the right) instead of fussing within the plugin itself (once its own settings are established)..

I genuinely feel it offers a formidable kind of 'parallel' process which gives us incredible control).. using this plugin has given me one of the nicest ways I've found to position Pianoteq as a piano in a space - infinite variations, no exact rules - but I find few things as simple, yet effective as this plugin for a full suite solution beyond listening, and I am extremely satisfied when applied just to reverb only - at least when going for a solo piano 'album' sound. I may still use Pianoteq's own reverb (the spatial effect may make it so reverb can be vastly reduced in many use cases), or other reverbs may be applied on further FX sends to subtly build a total environment - every piece calls for something at least subtly different, at least to my ways of working. I've blabbed in the past about my use of 'close player bubble' + 'near cabinet bubble' and 'third order distant environment bubble'.. going beyond spatial plugins, head tracking etc.. everyone can develop an enormous range of 'their own spaces' by leveraging a little from here, a little from there - but often that missing element is movement at least for "player perspective" presets.)

Perhaps Dear Reality &/or via Sennheiser AMBEO might present a viable tech partnership or licensing end use for dev. opportunities with Pianoteq?

There may be strong merit in Pianoteq having the piano relatively stationary (as signal source), and 'the space' (radiated model) generating most of the spatialized effect of movement... all interesting stuff to consider. Perhaps that's doable with the least hassle?.. if possible of course.

All we can do is post these observations as they become relevant and, like you and some others here, enjoy the possibilities, knowing however that there are a lot of avenues for advancing the body of work for the relatively small but excellent team to toss around

Just should add, very few virtual instruments offer anything like a VR kind of thing 'baked in' - I worry more with time, that more new readers pass through thinking 'practically any discussion' we have here means we're talking about deficiencies, rather than opportunities. I see beyond skies, few limits within this audio VR field - although having to wear a tracking device, or enabling a facial recog cam can be a show stopper for a substantial number of pianists (that has come up before) - but even so, for those seeking 'wow' beyond norms, I'm all for particularly blue-tooth device tracking on a headset. It may be so 'normalized' in future, that I'd think for any VSTI maker to not consider it at all, could materialize at least some mild disadvantage further down the track.

Thank you for such an interesting ideas

Pianoteq Studio Bundle (Pro plus all instruments)  - Kawai MP11 digital piano - Yamaha HS8 monitors

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

GPU Audio?

Perhaps the latest developments within GPU Audio could facilitate this?
Very early days I suppose.

https://www.gpu.audio/

Talking of plugin developments will Modartt put their plugins in the CLAP plugin format too?

Last edited by Key Fumbler (10-07-2022 08:35)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

DV wrote:

"...I suspect it takes too long and at each head movement there will be a glitch in the sound, because there was no reason for Modartt to optimize this setting in a way to be instantaneous, so most likely they have not done it."

I tried to assign a fader to the head angle and i move it during playing. My computer is old and if my movement is not too speed Pianoteq follows the movement without any glitch in the sound.

QEXL wrote:

" I worry more with time, that more new readers pass through thinking 'practically any discussion' we have here means we're talking about deficiencies, rather than opportunities. "

Let's tell them loud and clear : PIANOTEQ IS WONDERFUL .... TRY IT, BUY IT and PLAY IT...


For the head tracking it exist a little software ( Aitrack+opentrack) witch control the head movements (with webcam) and send coordonates to simulator or gaming. It is probably possible to transform that signal in a midi signal and send it to pianoteq... IMO It's a piece of cake compared to what Modartt has already achieved...

Last edited by YvesTh (10-07-2022 09:37)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:
QEXL wrote:

" I worry more with time, that more new readers pass through thinking 'practically any discussion' we have here means we're talking about deficiencies, rather than opportunities. "

Let's tell them loud and clear : PIANOTEQ IS WONDERFUL .... TRY IT, BUY IT and PLAY IT..

In agreement here guys. Then again most audio forums are filled with users gripes, suggestions and recommendations secondary.
Most people won't even bother to sign up and make comments unless they've actually got problems to solve methinks.
Perhaps the majority just purchase plugins and rarely if ever visit forums, unless something is broken to read if anyone else has their issues?

I think of Pianoteq as more of the thinking man's piano plugin (but I will tag along anyway).
It's more like a tool when others are a snapshot of current sampling fashions. 
Sample instruments come and go. Pianoteq itself evolves and improves.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

And why not soon, the possibility of 3D VR headset using with the perfect 3D modelisation of instruments...
Let's have a dream... I'm playing on the grand C.Bechstein on stage in a concert hall... And I have in front of me, the opened piano and the hall... but not the audience I mean...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Yes, I'd support the development of this feature. The idea of head-tracking has never appealed to me personally, but if it was in Pianoteq I'd be tempted to try it (and I might even like it ).

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:
DV wrote:

"...I suspect it takes too long and at each head movement there will be a glitch in the sound, because there was no reason for Modartt to optimize this setting in a way to be instantaneous, so most likely they have not done it."

I tried to assign a fader to the head angle and i move it during playing. My computer is old and if my movement is not too speed Pianoteq follows the movement without any glitch in the sound.

Thanks for the test but I was talking about mic placement (particularly in binaural mode) to simulate head movement, not fader. Have you been able to test that too, and does is work smoothly? If so, PTQ already offer this feature under the hood, all we need is the user interface to make it happen which anybody can do with the very elegant JSON interface! That would be fantastic!!!!!

YvesTh wrote:
QEXL wrote:

" I worry more with time, that more new readers pass through thinking 'practically any discussion' we have here means we're talking about deficiencies, rather than opportunities. "

Let's tell them loud and clear : PIANOTEQ IS WONDERFUL .... TRY IT, BUY IT and PLAY IT...

Yes yes yes!

YvesTh wrote:


For the head tracking it exist a little software ( Aitrack+opentrack) witch control the head movements (with webcam) and send coordonates to simulator or gaming. It is probably possible to transform that signal in a midi signal and send it to pianoteq... IMO It's a piece of cake compared to what Modartt has already achieved...

Even though nobody told, that was the premise of all this discussion. If the mic position can be moved while playing with no interruptions (as speculating in the previous paragraph), this is basically already done!

Last edited by dv (10-07-2022 13:37)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Key Fumbler wrote:

GPU Audio?

Perhaps the latest developments within GPU Audio could facilitate this?
Very early days I suppose.

https://www.gpu.audio/

Talking of plugin developments will Modartt put their plugins in the CLAP plugin format too?

I know you always mention that, and I think it's an interesting thing to explore, but what is going to provide? More compute power, ok. Considering that PTQ works okay on even wimpy Raspberry Pi, probably they have no intention to spend the massive (*) human time needed for GPU porting. My understanding is that most of the compute time in PTQ is spent in FFT, and the FFT library they use is not GPU-aware (check their license/credits). Granted, they can switch to cuFFT, but then they have a fork of the program for GPU and no/GPU: a hassle.
I think one of the great advantages of PTQ, among many others, is that you take their binary, drop in your computer AND IT WORKS OUT OF THE BOX, without the user having to mess up with frustrating settings. Adding such a seamless experience with GPU would be very hard. So I think the priority is keeping ease of use vs better performance (not sure if they use multiarchitecture binaries to take advantage of improved CPU instruction sets, which are available only)

So I think Modartt limited development time is better spent on other things (such as adding this live-changing-binaural mode, further improving the already great sound, etc) rather than chasing better performance per se. While I'd love to see latency drop, in reality with any reasonable machine it's more than adequate, in my experience. Do you have a specific example of a case in which performance are a limiting factor? I can only think of contrived examples, like playing an extremely dense piece with lots of notes and very fast (who can do that? MIDI rendering is not real time so does not count) with piano layering and morphing....



(*) ask me how I know it

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

DV wrote:

Thanks for the test but I was talking about mic placement (particularly in binaural mode) to simulate head movement, not fader. Have you been able to test that too, and does is work smoothly? If so, PTQ already offer this feature under the hood, all we need is the user interface to make it happen which anybody can do with the very elegant JSON interface! That would be fantastic!!!!!

Yes, I was talking about mic placement, I just used the fader to assign a midi value of the head angle to turn the head gradually, during playing... It works, except for  too fast deplacement.

Last edited by YvesTh (10-07-2022 14:22)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

DV,
It's just suggestions. Obviously it's not a seemingly relatively simple feature request like the original post. I wasn't trying to detract from that either.

I am not suggesting it would be an easy port to get it to work on GPU. I wasn't even suggesting it was even possible in that way.  It wasn't a feature request for 7.6 or anything!
Hell I cannot even imagine version 8 having that. Perhaps version 9 or 10 though if GPU Audio actually takes off.

Of course a major part of Pianoteq's appeal is to be able to work on as many platforms as possible and humble platforms at that. Not eating up lots of drive space, or or requiring massive amounts of CPU power.
Even so I suspect there are substantially more high powered GPUs already out there compared to the most high-end CPUs sitting in high end PCs. We occasionally get people mentioning offline high quality rendering modes etc.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:

It works, except for  too fast deplacement.

What actually happens then during fast or rapid head movement?

I think something like this would have to be pretty darned reliable in operation, otherwise it's going to seem very fake with say jumpy performance which could be very jarring.

Interesting idea though.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Key Fumbler wrote:
YvesTh wrote:

It works, except for  too fast deplacement.

What actually happens then during fast or rapid head movement?

I think something like this would have to be pretty darned reliable in operation, otherwise it's going to seem very fake with say jumpy performance which could be very jarring.

Interesting idea though.

Nothing catastrophic happens but I can hear my computer is not powerfull enough. My computer is old and I think there is no problem with a modern processor. If somebody owns a modern PC and a surface control it will be very easy to try...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:

And why not soon, the possibility of 3D VR headset using with the perfect 3D modelisation of instruments...

I wish to sign up for your newsletter sir My thanks also for encouragement.

The API is something I haven't yet explored - but wow I'm impressed by all these ingenious ideas here!

The last APIs I spent time with eventually ended up with control panels, or dashboards to make most common tasks simple for any admin/users. The full power of that API I'd love to see as an accessible front-end pane.

Pianoteq Studio Bundle (Pro plus all instruments)  - Kawai MP11 digital piano - Yamaha HS8 monitors

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Great ideas. Like Dolby Atmos???

Warmest regards,,
Chris

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

sigasa wrote:

Great ideas. Like Dolby Atmos???

Warmest regards,,
Chris

In my proposition it would not be a question of creating a spectacular artificial sound, surround multicanal or other, undoubtedly interesting, but just reproduce the simple binaural sound ( 2 mics an headphones) with the continuous tracking of the head, simply to get closer to a real listening of the pianist's perspective ....

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:
sigasa wrote:

Great ideas. Like Dolby Atmos???

Warmest regards,,
Chris

In my proposition it would not be a question of creating a spectacular artificial sound, surround multicanal or other, undoubtedly interesting, but just reproduce the simple binaural sound ( 2 mics an headphones) with the continuous tracking of the head, simply to get closer to a real listening of the pianist's perspective ....

I don't have time for this now, so I hope one of you will experiment. If you look at dore_m's Fazioli and Yamaha S6 libraries, there are links to the various eye/headtracking softwares that can be used.  The common protocol is OSC (Open sound control), which is more flexible than MIDI and can be used with the free tools that I showed in one or two of the videos. Pianoteq could also be used within a DAW with the OSC head tracking tools as dore_m has done, or using the JSON interface to move the mic placement accordingly.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

See also https://gitlab.com/hberntsen/pianoteq-head-tracking

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

I notice that the idea is very old and that Julien had answered it in 2009. I think that in 13 years a lot of things have changed, pianoteq and also the processors. An answer today would probably be different. Julien if you read me...

https://forum.modartt.com/viewtopic.php?id=621

I don't know if that device is abble to send midi signal
https://supperware.co.uk/headtracker-overview

Last edited by YvesTh (11-07-2022 15:55)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:

I notice that the idea is very old and that Julien had answered it in 2009. I think that in 13 years a lot of things have changed, pianoteq and also the processors. An answer today would probably be different. Julien if you read me...

https://forum.modartt.com/viewtopic.php?id=621

Of course it's good to get this interest under the developers' radar, but do not forget that YvesTh has ALREADY tested and REPORTED IN AN EARLIER MESSAGE, that it now works without interruption. Why don't you test it yourself if you've got time?


YvesTh wrote:

I don't know if that device is abble to send midi signal
https://supperware.co.uk/headtracker-overview

It supports OSC like many others that I mentioned before. OSC should be easy to convert to MIDI if this particular one doesn't do the conversion out of the box (just Google OSC-to-MIDI conversion). Moreover, at least for quick and dirty tests you can experiment WITH YOUR PHONE in at least two different ways (motion sensor and eye tracking) without need to purchase anything. Again, why don't you test it yourself if you've got time?

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

For the technically inclined people here... Could you please test whether this command changes the head angle in PianoTeq?

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

"normalized_value" here has a range between 0.0 and 1.0.
I only have PianoTeq Stage, so for me this returns an error. If it actually works, I guess I'll have to upgrade my license and start coding. I'm thinking of using https://webgazer.cs.brown.edu for head tracking. Whole thing would run in a browser, so, any smartphone/tablet/old laptop would work. And it could relay JSON-RPC commands to the more beefy machine running the PianoTeq itself.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

dv wrote:

Again, why don't you test it yourself if you've got time?

I can use pianoteq in studio one, I can use the "NX waves abbey road studio 3" plugin, the NX head tracker works very well. But I don't have the skills to transfer the data from nx to pianoteq to drive the binaural headphones. I would need an application like NX-to-midi, if someone is able to do it...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

creaktive wrote:

For the technically inclined people here... Could you please test whether this command changes the head angle in PianoTeq?

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

"normalized_value" here has a range between 0.0 and 1.0.
I only have PianoTeq Stage, so for me this returns an error. If it actually works, I guess I'll have to upgrade my license and start coding. I'm thinking of using https://webgazer.cs.brown.edu for head tracking. Whole thing would run in a browser, so, any smartphone/tablet/old laptop would work. And it could relay JSON-RPC commands to the more beefy machine running the PianoTeq itself.

i get an error, not sure if it's the same as what you see:

(17:58) :~/Pianoteq 7/x86-64bit$ ./Pianoteq\ 7 --serve "" &
[2] 11624

(17:59) :~/Pianoteq 7/x86-64bit$ Listening for JSON-RPC on http://127.0.0.1:8081/jsonrpc

(18:00) :~/Pianoteq 7/x86-64bit$ curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc
error while running "setParameters": Invalid parameter
{"error":{"code":1,"message":"Invalid parameter"},"id":1,"jsonrpc":"2.0"}

(18:00) :~/Pianoteq 7/x86-64bit$

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

creaktive wrote:

For the technically inclined people here... Could you please test whether this command changes the head angle in PianoTeq?

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

"normalized_value" here has a range between 0.0 and 1.0.
I only have PianoTeq Stage, so for me this returns an error. If it actually works, I guess I'll have to upgrade my license and start coding. I'm thinking of using https://webgazer.cs.brown.edu for head tracking. Whole thing would run in a browser, so, any smartphone/tablet/old laptop would work. And it could relay JSON-RPC commands to the more beefy machine running the PianoTeq itself.

Same result as budo here. I tried editing a bit the parameters to see if anything would work, but I only managed to crash Pianoteq. So I decided to try getParameters to see what they would look like.

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters()"}' http://localhost:8081/jsonrpc
curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters"}' http://localhost:8081/jsonrpc

That crashed the app too, very weird.

That was with Pianoteq 7.5.4

I reported it to support, pointing them to this thread.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

dv wrote:
creaktive wrote:

For the technically inclined people here... Could you please test whether this command changes the head angle in PianoTeq?

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

"normalized_value" here has a range between 0.0 and 1.0.
I only have PianoTeq Stage, so for me this returns an error. If it actually works, I guess I'll have to upgrade my license and start coding. I'm thinking of using https://webgazer.cs.brown.edu for head tracking. Whole thing would run in a browser, so, any smartphone/tablet/old laptop would work. And it could relay JSON-RPC commands to the more beefy machine running the PianoTeq itself.

Same result as budo here. I tried editing a bit the parameters to see if anything would work, but I only managed to crash Pianoteq. So I decided to try getParameters to see what they would look like.

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters()"}' http://localhost:8081/jsonrpc
curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters"}' http://localhost:8081/jsonrpc

That crashed the app too, very weird.

That was with Pianoteq 7.5.4

I reported it to support, pointing them to this thread.

Thanks for checking!
The absence of the {"id":1} bit also causes PianoTeq to crash for me (BTW, this means that JSON-RPC interface port is absolutely unsafe to be exposed to the Internet!). Can you try this command, and share the results (only the parts relevant to head position):

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters","id":1,"params":{}}' http://localhost:8081/jsonrpc

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

budo wrote:
creaktive wrote:

For the technically inclined people here... Could you please test whether this command changes the head angle in PianoTeq?

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

"normalized_value" here has a range between 0.0 and 1.0.
I only have PianoTeq Stage, so for me this returns an error. If it actually works, I guess I'll have to upgrade my license and start coding. I'm thinking of using https://webgazer.cs.brown.edu for head tracking. Whole thing would run in a browser, so, any smartphone/tablet/old laptop would work. And it could relay JSON-RPC commands to the more beefy machine running the PianoTeq itself.

i get an error, not sure if it's the same as what you see:

(17:58) :~/Pianoteq 7/x86-64bit$ ./Pianoteq\ 7 --serve "" &
[2] 11624

(17:59) :~/Pianoteq 7/x86-64bit$ Listening for JSON-RPC on http://127.0.0.1:8081/jsonrpc

(18:00) :~/Pianoteq 7/x86-64bit$ curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc
error while running "setParameters": Invalid parameter
{"error":{"code":1,"message":"Invalid parameter"},"id":1,"jsonrpc":"2.0"}

(18:00) :~/Pianoteq 7/x86-64bit$

Thanks! This is exactly what I get, too. Can you try to run the command from my reply to @dv, above?

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

I don't understand anything you are saying... and how you use these "command lines" in pianoteq.
Is there a tutorial about that ? I'd like to learn...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

creaktive wrote:
dv wrote:
creaktive wrote:

For the technically inclined people here... Could you please test whether this command changes the head angle in PianoTeq?

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","id":1,"params":{"list":[{"id":"HeadAngl","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

"normalized_value" here has a range between 0.0 and 1.0.
I only have PianoTeq Stage, so for me this returns an error. If it actually works, I guess I'll have to upgrade my license and start coding. I'm thinking of using https://webgazer.cs.brown.edu for head tracking. Whole thing would run in a browser, so, any smartphone/tablet/old laptop would work. And it could relay JSON-RPC commands to the more beefy machine running the PianoTeq itself.

Same result as budo here. I tried editing a bit the parameters to see if anything would work, but I only managed to crash Pianoteq. So I decided to try getParameters to see what they would look like.

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters()"}' http://localhost:8081/jsonrpc
curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters"}' http://localhost:8081/jsonrpc

That crashed the app too, very weird.

That was with Pianoteq 7.5.4

I reported it to support, pointing them to this thread.

Thanks for checking!
The absence of the {"id":1} bit also causes PianoTeq to crash for me (BTW, this means that JSON-RPC interface port is absolutely unsafe to be exposed to the Internet!). Can you try this command, and share the results (only the parts relevant to head position):

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters","id":1,"params":{}}' http://localhost:8081/jsonrpc


{"id":1,"jsonrpc":"2.0","result":[{"id":"Condition","index":0,"name":"Condition","normalized_value":0.0,"text":"0","unit":""},{"id":"Dynamics","index":1,"name":"Dynamics","normalized_value":0.2929292917251587,"text":"30","unit":"dB"},{"id":"Pitch Bend","index":2,"name":"Pitch Bend","normalized_value":0.5,"text":"0","unit":"cents"},{"id":"Unison","index":3,"name":"Unison Width","normalized_value":0.5,"text":"1.00","unit":""},{"id":"Stereo Width","index":4,"name":"Stereo Width","normalized_value":0.4541340470314026,"text":"0.80","unit":""},{"id":"Hammer Noise","index":5,"name":"Hammer Noise","normalized_value":0.3103448152542114,"text":"1.00","unit":""},{"id":"Sustain Pedal","index":6,"name":"Sustain Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Soft Pedal","index":7,"name":"Soft Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Sostenuto Pedal","index":8,"name":"Sostenuto Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Harmonic Pedal","index":9,"name":"Harmonic Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Rattle Pedal","index":10,"name":"Rattle Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Lute Stop Pedal","index":11,"name":"Buff Stop Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Celeste Pedal","index":12,"name":"Celeste Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Mozart Rail","index":13,"name":"Mozart Rail","normalized_value":0.0,"text":"0","unit":""},{"id":"Super Sostenuto","index":14,"name":"Super Sostenuto","normalized_value":0.0,"text":"0","unit":""},{"id":"Pinch Harmonic Pedal","index":15,"name":"Pinch Harmonic Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Glissando Pedal","index":16,"name":"Glissando Pedal","normalized_value":0.0,"text":"0","unit":""},{"id":"Harpsichord Register[1]","index":17,"name":"Harpsichord Register 1","normalized_value":1.0,"text":"1","unit":""},{"id":"Harpsichord Register[2]","index":18,"name":"Harpsichord Register 2","normalized_value":0.0,"text":"0","unit":""},{"id":"Harpsichord Register[3]","index":19,"name":"Harpsichord Register 3","normalized_value":0.0,"text":"0","unit":""},{"id":"Reversed Sustain","index":20,"name":"Reversed Sustain","normalized_value":0.0,"text":"0","unit":""},{"id":"Volume","index":21,"name":"Volume","normalized_value":0.7272727489471436,"text":"0","unit":"dB"},{"id":"Post Effect Gain","index":22,"name":"Post Effect Gain","normalized_value":0.5354166626930237,"text":"+0.9","unit":"dB"},{"id":"Diapason","index":23,"name":"Diapason","normalized_value":0.3333333432674408,"text":"440.0","unit":"Hz"},{"id":"Octave Stretching","index":24,"name":"Octave Stretching","normalized_value":0.23108820617198944,"text":"1.00","unit":""},{"id":"Unison Balance","index":25,"name":"Unison Balance","normalized_value":0.5,"text":"0","unit":""},{"id":"Direct Sound","index":26,"name":"Direct Sound Duration","normalized_value":0.5,"text":"1.00","unit":""},{"id":"Hammer Hardness Piano","index":27,"name":"Hammer Hard. Piano","normalized_value":0.15000000596046448,"text":"0.30","unit":""},{"id":"Hammer Hardness Mezzo","index":28,"name":"Hammer Hard. Mezzo","normalized_value":0.4000000059604645,"text":"0.80","unit":""},{"id":"Hammer Hardness Forte","index":29,"name":"Hammer Hard. Forte","normalized_value":0.800000011920929,"text":"1.60","unit":""},{"id":"Profil[1]","index":30,"name":"Spectrum Profile 1","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[2]","index":31,"name":"Spectrum Profile 2","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[3]","index":32,"name":"Spectrum Profile 3","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[4]","index":33,"name":"Spectrum Profile 4","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[5]","index":34,"name":"Spectrum Profile 5","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[6]","index":35,"name":"Spectrum Profile 6","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[7]","index":36,"name":"Spectrum Profile 7","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Profil[8]","index":37,"name":"Spectrum Profile 8","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Strike Point","index":38,"name":"Strike Point","normalized_value":0.5137072801589966,"text":"1/10.8","unit":""},{"id":"Pinch Harmonic Point","index":39,"name":"Pinch Harmonic Point","normalized_value":1.0,"text":"1/2.0","unit":""},{"id":"Pickup Symmetry","index":40,"name":"Pickup Symmetry","normalized_value":0.0,"text":"0","unit":""},{"id":"Pickup Distance","index":41,"name":"Pickup Distance","normalized_value":0.444444477558136,"text":"1.00","unit":""},{"id":"Soft Level","index":42,"name":"Soft Level","normalized_value":0.5,"text":"0.50","unit":""},{"id":"Clavinet Low Mic","index":43,"name":"Clavinet Low Mic","normalized_value":1.0,"text":"+1.00","unit":""},{"id":"Clavinet High Mic","index":44,"name":"Clavinet High Mic","normalized_value":1.0,"text":"+1.00","unit":""},{"id":"Impedance","index":45,"name":"Impedance","normalized_value":0.4999999701976776,"text":"1.00","unit":""},{"id":"Cutoff Freq","index":46,"name":"Cutoff","normalized_value":0.4999999701976776,"text":"1.00","unit":""},{"id":"Q Factor","index":47,"name":"Q Factor","normalized_value":0.4999999701976776,"text":"1.00","unit":""},{"id":"String Length","index":48,"name":"String Length","normalized_value":0.43717217445373535,"text":"2.20","unit":"m"},{"id":"Sympathetic Resonance","index":49,"name":"Sympathetic Resonance","normalized_value":0.5,"text":"1.00","unit":""},{"id":"Duplex Scale Resonance","index":50,"name":"Duplex Scale Resonance","normalized_value":0.4999999701976776,"text":"1.00","unit":""},{"id":"Quadratic Effect","index":51,"name":"Quadratic Effect","normalized_value":0.56982421875,"text":"1.00","unit":""},{"id":"Hammer Tine Noise","index":52,"name":"Hammer Tine Noise","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Blooming Energy","index":53,"name":"Blooming Energy","normalized_value":0.0,"text":"0","unit":""},{"id":"Blooming Inertia","index":54,"name":"Blooming Inertia","normalized_value":0.5,"text":"1.00","unit":"s"},{"id":"Equalizer Switch","index":55,"name":"Equalizer Switch","normalized_value":1.0,"text":"On","unit":""},{"id":"Aftertouch","index":56,"name":"Aftertouch","normalized_value":0.0,"text":"0","unit":""},{"id":"Morphing","index":57,"name":"Morphing","normalized_value":0.0,"text":"0","unit":"%"},{"id":"Bounce Switch","index":58,"name":"Bounce Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Bounce Delay","index":59,"name":"Bounce Delay","normalized_value":0.4583333432674408,"text":"120.00","unit":"ms"},{"id":"Bounce Sync","index":60,"name":"Bounce Sync","normalized_value":0.0,"text":"Off","unit":""},{"id":"Bounce Sync Speed","index":61,"name":"Bounce Sync Speed","normalized_value":0.5652173757553101,"text":"1","unit":""},{"id":"Bounce Velocity Sensitivity","index":62,"name":"Bounce Velocity Sensitivity","normalized_value":0.5,"text":"50","unit":"%"},{"id":"Bounce Delay Loss","index":63,"name":"Bounce Delay Loss","normalized_value":0.5,"text":"10","unit":"%"},{"id":"Bounce Velocity Loss","index":64,"name":"Bounce Velocity Loss","normalized_value":0.5,"text":"20","unit":"%"},{"id":"Bounce Humanization","index":65,"name":"Bounce Humanization","normalized_value":0.5,"text":"50","unit":"%"},{"id":"Effect[1].Switch","index":66,"name":"Eff 1 Switch","normalized_value":1.0,"text":"On","unit":""},{"id":"Effect[1].Param[1]","index":67,"name":"Eff 1 DelMix","normalized_value":0.15000000596046448,"text":"15","unit":"%"},{"id":"Effect[1].Param[2]","index":68,"name":"Eff 1 DelTime","normalized_value":0.2283361405134201,"text":"60","unit":"ms"},{"id":"Effect[1].Param[3]","index":69,"name":"Eff 1 DelFb","normalized_value":0.0,"text":"0","unit":"%"},{"id":"Effect[1].Param[4]","index":70,"name":"Eff 1 DelTone","normalized_value":0.3499999940395355,"text":"-0.30","unit":""},{"id":"Effect[1].Param[5]","index":71,"name":"Eff 1 DelPol","normalized_value":1.0,"text":"On","unit":""},{"id":"Effect[1].Param[6]","index":72,"name":"Eff 1 Param 6","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[1].Param[7]","index":73,"name":"Eff 1 Param 7","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[1].Param[8]","index":74,"name":"Eff 1 Param 8","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Switch","index":75,"name":"Eff 2 Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Effect[2].Param[1]","index":76,"name":"Eff 2 Param 1","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[2]","index":77,"name":"Eff 2 Param 2","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[3]","index":78,"name":"Eff 2 Param 3","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[4]","index":79,"name":"Eff 2 Param 4","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[5]","index":80,"name":"Eff 2 Param 5","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[6]","index":81,"name":"Eff 2 Param 6","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[7]","index":82,"name":"Eff 2 Param 7","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[2].Param[8]","index":83,"name":"Eff 2 Param 8","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Switch","index":84,"name":"Eff 3 Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Effect[3].Param[1]","index":85,"name":"Eff 3 Param 1","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[2]","index":86,"name":"Eff 3 Param 2","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[3]","index":87,"name":"Eff 3 Param 3","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[4]","index":88,"name":"Eff 3 Param 4","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[5]","index":89,"name":"Eff 3 Param 5","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[6]","index":90,"name":"Eff 3 Param 6","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[7]","index":91,"name":"Eff 3 Param 7","normalized_value":0.0,"text":"0","unit":""},{"id":"Effect[3].Param[8]","index":92,"name":"Eff 3 Param 8","normalized_value":0.0,"text":"0","unit":""},{"id":"Reverb Switch","index":93,"name":"Reverb Switch","normalized_value":1.0,"text":"On","unit":""},{"id":"Reverb Duration","index":94,"name":"Reverb Duration","normalized_value":0.24997630715370178,"text":"0.80","unit":"s"},{"id":"Reverb Mix","index":95,"name":"Reverb Mix","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Room Dimensions","index":96,"name":"Room Dimensions","normalized_value":0.3333333432674408,"text":"20.00","unit":"m"},{"id":"Reverb Pre-delay","index":97,"name":"Reverb Pre-delay","normalized_value":0.38505247235298157,"text":"0.030","unit":"s"},{"id":"Reverb Early Reflections","index":98,"name":"Reverb Early Reflections","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Reverb Tone","index":99,"name":"Reverb Tone","normalized_value":0.5,"text":"0","unit":""},{"id":"Reverb Envelope","index":100,"name":"Reverb Envelope","normalized_value":1.0,"text":"0","unit":"dB/s"},{"id":"Reverb Resampling","index":101,"name":"Reverb Resampling","normalized_value":0.5,"text":"100","unit":"%"},{"id":"Limiter Switch","index":102,"name":"Limiter Switch","normalized_value":1.0,"text":"On","unit":""},{"id":"Limiter Sharpness","index":103,"name":"Limiter Sharpness","normalized_value":0.5,"text":"1.00","unit":""},{"id":"Limiter Threshold","index":104,"name":"Limiter Threshold","normalized_value":0.5199999809265137,"text":"-12","unit":"dB"},{"id":"Limiter Gain","index":105,"name":"Limiter Gain","normalized_value":0.8333333134651184,"text":"0","unit":"dB"},{"id":"Mute","index":106,"name":"Mute","normalized_value":0.0,"text":"0","unit":""},{"id":"Damper Noise","index":107,"name":"Damper Noise","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Damper Position","index":108,"name":"Damper Position","normalized_value":0.54688960313797,"text":"1/9.6","unit":""},{"id":"Last Damper","index":109,"name":"Last Damper","normalized_value":0.625,"text":"80","unit":""},{"id":"Pedal Noise","index":110,"name":"Pedal Noise","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Key Release Noise","index":111,"name":"Key Release Noise","normalized_value":0.5,"text":"0","unit":"dB"},{"id":"Damping Duration","index":112,"name":"Damping Duration","normalized_value":0.5,"text":"1.00","unit":""},{"id":"Keyboard Range Switch","index":113,"name":"Keyboard Range Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Lid Position","index":114,"name":"Lid Position","normalized_value":1.0,"text":"1.00","unit":""},{"id":"Output Mode","index":115,"name":"Output Mode","normalized_value":1.0,"text":"Binaural","unit":""},{"id":"Mic Level Compensation","index":116,"name":"Mic Level Compensation","normalized_value":1.0,"text":"On","unit":""},{"id":"Mic Delay Compensation","index":117,"name":"Mic Delay Compensation","normalized_value":1.0,"text":"On","unit":""},{"id":"Head.X","index":118,"name":"Head X position","normalized_value":0.5379999876022339,"text":"+0.760","unit":"m"},{"id":"Head.Y","index":119,"name":"Head Y position","normalized_value":0.5083333253860474,"text":"+0.100","unit":"m"},{"id":"Head.Z","index":120,"name":"Head Z position","normalized_value":0.4057142436504364,"text":"1.420","unit":"m"},{"id":"Head Diameter","index":121,"name":"Head Diameter","normalized_value":0.20000000298023224,"text":"18.000","unit":"cm"},{"id":"Head Angle","index":122,"name":"Head Angle","normalized_value":0.5,"text":"0","unit":"°"},{"id":"Mic[1].Mic Switch","index":123,"name":"Mic 1 Mic Switch","normalized_value":1.0,"text":"On","unit":""},{"id":"Mic[1].X","index":124,"name":"Mic 1 X position","normalized_value":0.5900000333786011,"text":"+1.800","unit":"m"},{"id":"Mic[1].Y","index":125,"name":"Mic 1 Y position","normalized_value":0.6416666507720947,"text":"+1.700","unit":"m"},{"id":"Mic[1].Z","index":126,"name":"Mic 1 Z position","normalized_value":0.4285714328289032,"text":"1.500","unit":"m"},{"id":"Mic[1].Azimuth","index":127,"name":"Mic 1 Azimuth","normalized_value":0.75,"text":"+90.0","unit":"°"},{"id":"Mic[1].Elevation","index":128,"name":"Mic 1 Elevation","normalized_value":0.5,"text":"0","unit":"°"},{"id":"Mic[1].Level[1]","index":129,"name":"Mic 1 Level 1","normalized_value":0.8374999761581421,"text":"0","unit":"dB"},{"id":"Mic[1].Delay[1]","index":130,"name":"Mic 1 Delay 1","normalized_value":0.5006250143051147,"text":"+0.1","unit":"ms"},{"id":"Mic[1].Level[2]","index":131,"name":"Mic 1 Level 2","normalized_value":0.59375,"text":"-9","unit":"dB"},{"id":"Mic[1].Delay[2]","index":132,"name":"Mic 1 Delay 2","normalized_value":0.6875,"text":"+30.0","unit":"ms"},{"id":"Mic[1].Level[3]","index":133,"name":"Mic 1 Level 3","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[1].Delay[3]","index":134,"name":"Mic 1 Delay 3","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[1].Level[4]","index":135,"name":"Mic 1 Level 4","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[1].Delay[4]","index":136,"name":"Mic 1 Delay 4","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[1].Level[5]","index":137,"name":"Mic 1 Level 5","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[1].Delay[5]","index":138,"name":"Mic 1 Delay 5","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[2].Mic Switch","index":139,"name":"Mic 2 Mic Switch","normalized_value":1.0,"text":"On","unit":""},{"id":"Mic[2].X","index":140,"name":"Mic 2 X position","normalized_value":0.6000000238418579,"text":"+2.000","unit":"m"},{"id":"Mic[2].Y","index":141,"name":"Mic 2 Y position","normalized_value":0.5666666626930237,"text":"+0.800","unit":"m"},{"id":"Mic[2].Z","index":142,"name":"Mic 2 Z position","normalized_value":0.4285714328289032,"text":"1.500","unit":"m"},{"id":"Mic[2].Azimuth","index":143,"name":"Mic 2 Azimuth","normalized_value":0.75,"text":"+90.0","unit":"°"},{"id":"Mic[2].Elevation","index":144,"name":"Mic 2 Elevation","normalized_value":0.5,"text":"0","unit":"°"},{"id":"Mic[2].Level[1]","index":145,"name":"Mic 2 Level 1","normalized_value":0.59375,"text":"-9","unit":"dB"},{"id":"Mic[2].Delay[1]","index":146,"name":"Mic 2 Delay 1","normalized_value":0.6875,"text":"+30.0","unit":"ms"},{"id":"Mic[2].Level[2]","index":147,"name":"Mic 2 Level 2","normalized_value":0.8374999761581421,"text":"0","unit":"dB"},{"id":"Mic[2].Delay[2]","index":148,"name":"Mic 2 Delay 2","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[2].Level[3]","index":149,"name":"Mic 2 Level 3","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[2].Delay[3]","index":150,"name":"Mic 2 Delay 3","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[2].Level[4]","index":151,"name":"Mic 2 Level 4","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[2].Delay[4]","index":152,"name":"Mic 2 Delay 4","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[2].Level[5]","index":153,"name":"Mic 2 Level 5","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[2].Delay[5]","index":154,"name":"Mic 2 Delay 5","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[3].Mic Switch","index":155,"name":"Mic 3 Mic Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Mic[3].X","index":156,"name":"Mic 3 X position","normalized_value":0.5960000157356262,"text":"+1.920","unit":"m"},{"id":"Mic[3].Y","index":157,"name":"Mic 3 Y position","normalized_value":0.429999977350235,"text":"-0.840","unit":"m"},{"id":"Mic[3].Z","index":158,"name":"Mic 3 Z position","normalized_value":0.2628571391105652,"text":"0.920","unit":"m"},{"id":"Mic[3].Azimuth","index":159,"name":"Mic 3 Azimuth","normalized_value":0.75,"text":"+90.0","unit":"°"},{"id":"Mic[3].Elevation","index":160,"name":"Mic 3 Elevation","normalized_value":0.5,"text":"0","unit":"°"},{"id":"Mic[3].Level[1]","index":161,"name":"Mic 3 Level 1","normalized_value":0.512499988079071,"text":"-12","unit":"dB"},{"id":"Mic[3].Delay[1]","index":162,"name":"Mic 3 Delay 1","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[3].Level[2]","index":163,"name":"Mic 3 Level 2","normalized_value":0.512499988079071,"text":"-12","unit":"dB"},{"id":"Mic[3].Delay[2]","index":164,"name":"Mic 3 Delay 2","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[3].Level[3]","index":165,"name":"Mic 3 Level 3","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[3].Delay[3]","index":166,"name":"Mic 3 Delay 3","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[3].Level[4]","index":167,"name":"Mic 3 Level 4","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[3].Delay[4]","index":168,"name":"Mic 3 Delay 4","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[3].Level[5]","index":169,"name":"Mic 3 Level 5","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[3].Delay[5]","index":170,"name":"Mic 3 Delay 5","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[4].Mic Switch","index":171,"name":"Mic 4 Mic Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Mic[4].X","index":172,"name":"Mic 4 X position","normalized_value":0.4650000035762787,"text":"-0.700","unit":"m"},{"id":"Mic[4].Y","index":173,"name":"Mic 4 Y position","normalized_value":0.5316666960716248,"text":"+0.380","unit":"m"},{"id":"Mic[4].Z","index":174,"name":"Mic 4 Z position","normalized_value":0.2514285743236542,"text":"0.880","unit":"m"},{"id":"Mic[4].Azimuth","index":175,"name":"Mic 4 Azimuth","normalized_value":0.75,"text":"+90.0","unit":"°"},{"id":"Mic[4].Elevation","index":176,"name":"Mic 4 Elevation","normalized_value":0.5,"text":"0","unit":"°"},{"id":"Mic[4].Level[1]","index":177,"name":"Mic 4 Level 1","normalized_value":0.512499988079071,"text":"-12","unit":"dB"},{"id":"Mic[4].Delay[1]","index":178,"name":"Mic 4 Delay 1","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[4].Level[2]","index":179,"name":"Mic 4 Level 2","normalized_value":0.512499988079071,"text":"-12","unit":"dB"},{"id":"Mic[4].Delay[2]","index":180,"name":"Mic 4 Delay 2","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[4].Level[3]","index":181,"name":"Mic 4 Level 3","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[4].Delay[3]","index":182,"name":"Mic 4 Delay 3","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[4].Level[4]","index":183,"name":"Mic 4 Level 4","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[4].Delay[4]","index":184,"name":"Mic 4 Delay 4","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[4].Level[5]","index":185,"name":"Mic 4 Level 5","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[4].Delay[5]","index":186,"name":"Mic 4 Delay 5","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[5].Mic Switch","index":187,"name":"Mic 5 Mic Switch","normalized_value":0.0,"text":"Off","unit":""},{"id":"Mic[5].X","index":188,"name":"Mic 5 X position","normalized_value":0.5770000219345093,"text":"+1.540","unit":"m"},{"id":"Mic[5].Y","index":189,"name":"Mic 5 Y position","normalized_value":0.5699999928474426,"text":"+0.840","unit":"m"},{"id":"Mic[5].Z","index":190,"name":"Mic 5 Z position","normalized_value":0.5028571486473083,"text":"1.760","unit":"m"},{"id":"Mic[5].Azimuth","index":191,"name":"Mic 5 Azimuth","normalized_value":0.75,"text":"+90.0","unit":"°"},{"id":"Mic[5].Elevation","index":192,"name":"Mic 5 Elevation","normalized_value":0.5,"text":"0","unit":"°"},{"id":"Mic[5].Level[1]","index":193,"name":"Mic 5 Level 1","normalized_value":0.512499988079071,"text":"-12","unit":"dB"},{"id":"Mic[5].Delay[1]","index":194,"name":"Mic 5 Delay 1","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[5].Level[2]","index":195,"name":"Mic 5 Level 2","normalized_value":0.512499988079071,"text":"-12","unit":"dB"},{"id":"Mic[5].Delay[2]","index":196,"name":"Mic 5 Delay 2","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[5].Level[3]","index":197,"name":"Mic 5 Level 3","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[5].Delay[3]","index":198,"name":"Mic 5 Delay 3","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[5].Level[4]","index":199,"name":"Mic 5 Level 4","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[5].Delay[4]","index":200,"name":"Mic 5 Delay 4","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Mic[5].Level[5]","index":201,"name":"Mic 5 Level 5","normalized_value":0.0,"text":"Off","unit":"dB"},{"id":"Mic[5].Delay[5]","index":202,"name":"Mic 5 Delay 5","normalized_value":0.5,"text":"0","unit":"ms"},{"id":"Sound Speed","index":203,"name":"Sound Speed","normalized_value":0.5000000596046448,"text":"340","unit":"m/s"},{"id":"Wall distance","index":204,"name":"Wall distance","normalized_value":0.0,"text":"0","unit":"m"},{"id":"Lid","index":205,"name":"Lid","normalized_value":1.0,"text":"On","unit":""}]}

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

dv wrote:
creaktive wrote:
dv wrote:

Same result as budo here. I tried editing a bit the parameters to see if anything would work, but I only managed to crash Pianoteq. So I decided to try getParameters to see what they would look like.

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters()"}' http://localhost:8081/jsonrpc
curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters"}' http://localhost:8081/jsonrpc

That crashed the app too, very weird.

That was with Pianoteq 7.5.4

I reported it to support, pointing them to this thread.

Thanks for checking!
The absence of the {"id":1} bit also causes PianoTeq to crash for me (BTW, this means that JSON-RPC interface port is absolutely unsafe to be exposed to the Internet!). Can you try this command, and share the results (only the parts relevant to head position):

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"getParameters","id":1,"params":{}}' http://localhost:8081/jsonrpc


bunch of JSON not quoted

So the correct syntax seems to be

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","params":{"list":[{"id":"Head Angle","name":"Head Angle","normalized_value":0}]}}' http://localhost:8081/jsonrpc

and that works!!! Flawlessly!! No sound interruptions, no pops or cracks, or any other artifact that I can recognize. The sound continues normally (tried playing a MIDI file, not playing myself).

Changing the head position in the GUI and the sound, with no glitches of any kind. I can hear the sound coming in different direction from my headphones, by running

curl -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"setParameters","params":{"list":[{"id":"Head Angle","name":"Head Angle","normalized_value":0.4}]}}' http://localhost:8081/jsonrpc

(and other numbers too)

FANTASTIC! Thanks so much!

We just need that little bit of glue with the head tracker and we are done, wow!!!!!

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

This whole idea never came to my mind so i tried it the quick and dirty way to get an impression.
I managed to track my headmovement to control PTQs head angle parameter with free software only.

I used opentrack to capture my head turning left and right.
Opentrack can output the head movement as joystick movements.

In order to convert the joystick movements into mididata i used Mjoy.
Mjoys midi output is directed to PTQ via loopbe1, a virtual midicable.

Now when i open PTQs microphone window and switch to binaural i can see the little virtual head turning left and right corresponding to my big real life head.

Now i got VR-PTQ for cheapskates.

But the experience is underwhelming nevertheless.

It seems PTQs head angle parameter isnt meant to be adjusted while playing.
The little hourglass next to the preset name is constantly flashing with every head movement so there's some processing going on.
This results in a rather glitchy and wobbly sound especially with fast head movements.

The VR concept is a nice idea and a fun experiment anyways.

Here i did a poor schematic:

https://i.ibb.co/c2FGLtc/VR-PTQ.jpg

"Very funny, Scotty. Now beam down my clothes."

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Zaskar wrote:

This whole idea never came to my mind so i tried it the quick and dirty way to get an impression.
I managed to track my headmovement to control PTQs head angle parameter with free software only.

I used opentrack to capture my head turning left and right.
Opentrack can output the head movement as joystick movements.

In order to convert the joystick movements into mididata i used Mjoy.
Mjoys midi output is directed to PTQ via loopbe1, a virtual midicable.

Now when i open PTQs microphone window and switch to binaural i can see the little virtual head turning left and right corresponding to my big real life head.

Now i got VR-PTQ for cheapskates.

But the experience is underwhelming nevertheless.

It seems PTQs head angle parameter isnt meant to be adjusted while playing.
The little hourglass next to the preset name is constantly flashing with every head movement so there's some processing going on.
This results in a rather glitchy and wobbly sound especially with fast head movements.

The VR concept is a nice idea and a fun experiment anyways.

Here i did a poor schematic:

https://i.ibb.co/c2FGLtc/VR-PTQ.jpg


Bravo Zaskar!  ”Now when I open PTQs microphone window and switch to binaural i can see the little virtual head turning left and right corresponding to my big real life head”.   This is a fantastic beginning!!!  I have been waiting for this
I wrote these (and more) in earlier threads years ago, and now we are soon there

”-One of the problems with binaural mode is that the perspective always stays the same no matter if the player moves his head from side to side while playing. On real piano or using speakers, this variation is possible. In the future, a multi-dimensional 3d headphone may be developed where the sound perspective varies with head movement.

After all, maybe a binaural recording is the way to come closest to a real piano/Ptqsound in the future? And be a help overcoming different ”problems” with the sound? I think binaural is an unused opportunity. Many people are listening with headphones everywhere, altough most music is mixed for loudspeakers. Binaural mode in Ptq is actually very cool………This is good, because the size and shape of peoples head have some effect on how headphones reproduce the sound (and we have different earcanals and earflaps too). And after recording in binaural, and listening to recording, when moving the head away from piano in different directions, one can get wider sound and reflections from the room, acustic changes. Nice how one can try out the ”roomsize/acustic” a bit, before exporting.

In the future it could be nice to get Ptq binaural sound even more ”alive”, if the head could follow the movements of our own head when playing/recording (ref. to my earlier ”which ear get what” in thread ”Very high-end desktop and Piano modelling”, ……

Hopefully in the near future we can buy headphones that is made especially for using with digital /physically modelled pianos. Headphones that adapt/adjust themselves to the size of different listeners head, earflaps and so on.”

Thank you Zaskar,
Best wishes,

Stig

Pianoteqenthusiast, Organteqenthusiast, Harpteqenthusiast, Harpsichordteqenthusiast, experimenter and Graf/Grimalditeqenthusiast

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Very good Zaskar, I will try it..
I would like use my NX tracker (witch has a good response ) but this solution seems interesting.
I think it is normal that the little hourglass was flashing during movement... it flash everytime we change any parameter. But it is important not hear that...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:

But it is important not hear that...

...that's the catch.

Here's an experiment you can try before you install, configure and finetune all the software.

1. Open the microphone window and switch to binaural.
2. Now press and hold a chord.
3. While the chord sounds, turn that virtual head from left to right using the mouse.
4. Listen carefully and watch the hourglass while wiggling the mouse.

I could be wrong but in my opinion the sound is glitchy.
This effect is even more prominent when you play a recorded piece and make fast mouse/head movements.

Is was aware of that before i fiddled with those programs, but i did it anyways just for giggles.
Seeing that tiny headphone symbol turning when you turn your head for the first time is surreal and was well worth the hassle.

Last edited by Zaskar (14-07-2022 18:56)
"Very funny, Scotty. Now beam down my clothes."

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Zaskar wrote:
YvesTh wrote:

But it is important not hear that...

...that's the catch.

Here's an experiment you can try before you install, configure and finetune all the software.

1. Open the microphone window and switch to binaural.
2. Now press and hold a chord.
3. While the chord sounds, turn that virtual head from left to right using the mouse.
4. Listen carefully and watch the hourglass while wiggling the mouse.

I could be wrong but in my opinion the sound is glitchy.
This effect is even more prominent when you play a recorded piece and make fast mouse/head movements.

It sounds perfect for me, no sound interruption nor flashes in the GUI. Both when using the mouse and when using the JSON interface.

This Pianoteq Pro v 7.5.4 for Linux under Ubuntu 22.04 running on a powerful and reliable, but quite old Intel(R) Pentium(R) CPU G3220 @ 3.00GHz with a performance index of 80.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Yes, the sound seems good for me, to test I've assigned a fader to the head angle and I limited it +-45° i slide the fader without sound problems.
I've just install opentrack but the head of the octopus is very instable I mean... Very different to the movement or the head in NX waves, even with the webcam...

Last edited by YvesTh (14-07-2022 20:21)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

@dv @YvesTh

Ok, then i'm plain wrong.
Maybe i fiddled so long that my brain tricks me in hearing what i expect to hear.

Yes, i limited the head angle as well (-70 to +70).
Yes, the octopus is hard to tame. This is probably the hardest part. Took me half the afternoon.

The thing is, if you manage the octopus, you can even make use of PTQs X,Y and Z coordinates.
This would allow the player to lean sideways, move back and forth and to stand up!

Oh, i forgot to mention that there's a tiny flaw with my makeshift solution.
As i mentioned the tracked data is converted to midi (0-127).
This is a relatively low resolution for delicate head movements. So the head doesn't turn smoothly.
In my case it turns in increments of approx. 1.1 degrees. (140 degrees "field of view" / 128 ≈ 1.1)

Maybe the JSON guys get finer inputs.

Last edited by Zaskar (14-07-2022 21:18)
"Very funny, Scotty. Now beam down my clothes."

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Zaskar wrote:

Yes, the octopus is hard to tame. This is probably the hardest part. Took me half the afternoon.

Hi Zaskar,
What input method are you using for head tracking in opentrack? Webcam ? PointTracker+Led ? I have many many point and I can't tame the octopus. Thanks...

Last edited by YvesTh (15-07-2022 18:58)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

OK I made a PoC using face tracking via webcam: https://sysd.org/pianoteq-pov/
Works in Chrome & Firefox but not Safari (which refuses to call the JSON-RPC interface on localhost due to security concerns).
FWIW, the source code is here.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:

Hi Zaskar,
What input method are you using for head tracking in opentrack? Webcam ? PointTracker+Led ? I have many many point and I can't tame the octopus. Thanks...

Sorry for being so late.

First it was quite frustrating. I tried different resolutions, different light conditions, adjusted all those sliders, tried filters.
I was on the verge of giving up, but then i discovered the aruco marker method in a Youtube video.

Even though it looks silly, the result is decent.
Print the marker in a size of at least 10x10cm. The bigger the better.

When you cut it out leave a bit of a white border (1cm). Glue it on cardboard.

Now for the silly part: Find a way to put it on your head.
I used an old headband and doublesided "tesa powerstrips".

Pray nobody's watching.

There are tutorials on that subject on YT.

"Very funny, Scotty. Now beam down my clothes."

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Hi Zaskar,
Thank you very much for your help. I am currently not at home
and I won't be able to test your method for a couple of weeks.
I will try as soon as I can.

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

So to answer the OP why not the PTQ future, because this is the present. It works fantastically well.

Modartt should give you a $400 coupon for your work, if not more and/or hire you and advertize this as an official feature. It's really awesome!

Modartt are you hearing??

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

dv wrote:

So to answer the OP why not the PTQ future, because this is the present. It works fantastically well.

Modartt should give you a $400 coupon for your work, if not more and/or hire you and advertize this as an official feature. It's really awesome!

Modartt are you hearing??

You tried with the PoC created by creaktive ?
I won't because I am in holidays... I'm impatient to do it...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

YvesTh wrote:
dv wrote:

So to answer the OP why not the PTQ future, because this is the present. It works fantastically well.

Modartt should give you a $400 coupon for your work, if not more and/or hire you and advertize this as an official feature. It's really awesome!

Modartt are you hearing??

You tried with the PoC created by creaktive ?

Yes

YvesTh wrote:

I won't because I am in holidays... I'm impatient to do it...

It's such a treat!

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

https://www.soundonsound.com/reviews/genelec-aural-id

Not sure if this relates?

Warmest regards,

Chris

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

creaktive wrote:

OK I made a PoC using face tracking via webcam: https://sysd.org/pianoteq-pov/
Works in Chrome & Firefox but not Safari (which refuses to call the JSON-RPC interface on localhost due to security concerns).
FWIW, the source code is here.

Hi creaktive,

I've managed to get the face tracking to work on my mobile phone. How do I connect it with Pianoteq on my laptop?

Thank you,

Warmest regards,

Chris

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

creaktive wrote:

OK I made a PoC using face tracking via webcam: https://sysd.org/pianoteq-pov/
Works in Chrome & Firefox but not Safari (which refuses to call the JSON-RPC interface on localhost due to security concerns).
FWIW, the source code is here.

Hi créative,
I just came back from holidays and tried your PoC. By clicking on your link I get the head tracking by webcam, very well. But how to make the link with pianoteq? Do I have to open it first? After?  And how? I know absolutely nothing about json, do I have to install something? Thanks for your help...

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

sigasa wrote:
creaktive wrote:

OK I made a PoC using face tracking via webcam: https://sysd.org/pianoteq-pov/
Works in Chrome & Firefox but not Safari (which refuses to call the JSON-RPC interface on localhost due to security concerns).
FWIW, the source code is here.

Hi creaktive,

I've managed to get the face tracking to work on my mobile phone. How do I connect it with Pianoteq on my laptop?

Thank you,

Warmest regards,

Chris


YvesTh wrote:
creaktive wrote:

OK I made a PoC using face tracking via webcam: https://sysd.org/pianoteq-pov/
Works in Chrome & Firefox but not Safari (which refuses to call the JSON-RPC interface on localhost due to security concerns).
FWIW, the source code is here.

Hi créative,
I just came back from holidays and tried your PoC. By clicking on your link I get the head tracking by webcam, very well. But how to make the link with pianoteq? Do I have to open it first? After?  And how? I know absolutely nothing about json, do I have to install something? Thanks for your help...



You have to start Pianoteq on the command line, with the option

--serve ""

If you use windows I have no idea how to to that. If you use Linux or Mac you simply type

Pianoteq\ 7 --serve ""

in a shell (possibly adding the full qualified path before Pianoteq).

You can do that before or after opening the browser, it does not matter. If you are running on the same machine, you do nothing else, and it should work. If you are running on a different machine (e.g. phone), you have to find what is the IP address of the machine you are running pianoteq into, and changing into that browser field where it says "localhost" replacing with the IP address of your Pianoteq machine. Also, you must be sure that both the router and machine firewalls allow that communication to happen. It might work out of the box, or it may be a can of worms to debug, but you should be able to find lots of information online in places like stackoverflow.

Last edited by dv (29-07-2022 18:30)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

Thank very much dv,
It works... very funny sensation...
I have a latency of the movement when I move my head a little too fast, but my PC is not very powerfull...
And thanks to creaktive for his excellent work...
Do you think it is possible to use a "nx headtracker bluetooth" to send the head movement signal? It seems to be more efficient than by webcam.

Last edited by YvesTh (29-07-2022 21:40)

Re: Binaural, head tracker, virtual reality... why not the PIANOTEQ future

creaktive wrote:

OK I made a PoC using face tracking via webcam: https://sysd.org/pianoteq-pov/
Works in Chrome & Firefox but not Safari (which refuses to call the JSON-RPC interface on localhost due to security concerns).
FWIW, the source code is here.

Hi creaktive,
Thanks again for your work.
Just a question, the head X movement and the head angle seems very close to reality, but the head Y movement is not good for me.
The nose on the webcam or one meter away from the piano give me Y values only from -0.4300 To -0.4400. I can't obtain a position with the head above the keyboard. Perhaps a problem of webcam ? I don't know...