On-air light, trouble receiving int via OSC
@jbaker It seems that maybe data can be requested from the X32 with an osc formatted message starting /formatsubscribe .... for specific parameters... and permanently? or just for a limited time...... and are future button presses on the console also (or only) returned...?
/web in the address.... can this be replaced with "IP:port"... ?
Complete and (so far) incomprehensible osc info here....... https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://tostibroeders.nl/wp-content/uploads/2020/02/X32-OSC.pdf&ved=2ahUKEwjq9e_w2JqMAxXCdqQEHXAeISkQFnoECB8QAQ&usg=AOvVaw2xQyrtSBeKrEBddafvVqiG
It would be great if you can find the return port number for osc on the X32.
It seems that on/off (enum) and 1/0 (integer) are interchangeable, but it is not clear (yet...!) whether they are part of the message header or data following the header.
all parameters must be big‐endian and 4‐byte aligned/padded, as per OSC specification.
padding is done with null bytes.
float parameters must be in range 0.0 – 1.0, e.g.:
0.0 0x00000000 (big-endian)
0.5 0x3f000000 (big-endian)
1.0 0x3f800000 (big-endian)
integer and float parameters are signed 32‐bit values.
strings must be null‐terminated.
enum parameters can be sent as strings or integers (see below).
boolean parameters will map to enum type {OFF, ON} (or OSC integer {0, 1})
blobs (arbitrary binary data) follow specific rules depending on the section they apply to (see later in this document)
Too much reading for me today...... maybe later...
David.
Controlling PD over internet
@rph-r For a local network it is easy.
Using @Jameslo's example above you would [connect 192.168.1.50 8000( of course replacing the IP with that of your installation computer.
You should always give your computers a static address in this situation.
Also your remote computer will have no problems accessing an already existing server on the remote IP if it is listening for access requests.
But you can access the installation computer directly from your remote computer if the router in the installation building is set to allow a "hole" to be punched through its firewall and the port to be re-routed to your installation computer.
That is not so difficult to set up, but they would need to allow you to change their router settings.
David.
Loop Station in Pure Data?
@atux check out patchstorage, https://patchstorage.com/platform/pd-vanilla/?search_query=loop&tax_platform=pd-vanilla&tax_post_tag=&orderby=modified&wpas_id=search_form&wpas_submit=1 ,
tho there's about a dozen hardware/software listings on https://patchstorage.com that work using pure data patches - the most popular being ones that run on the organelle https://patchstorage.com/platform/organelle/?search_query=loop&tax_platform=organelle&tax_post_tag=&orderby=modified&wpas_id=search_form&wpas_submit=1
the .pd patch format is fairly portable especially if they are made with vanilla abstractions. so minor modifications (like changing to dac~ to hear the audio out with an organelle patch)
but if they use compiled externals the console will complain and you have to track them down and install them, and cross your fingers, in either order, usually using "find externals"
Pd compiled for double-precision floats and Windows
@jameslo
https://en.wikipedia.org/wiki/Floating-point_arithmetic#Representable_numbers,_conversion_and_rounding
"[...] Any rational with a denominator that has a prime factor other than 2 will have an infinite binary expansion. This means that numbers that appear to be short and exact when written in decimal format may need to be approximated when converted to binary floating-point. For example, the decimal number 0.1 is not representable in binary floating-point of any finite precision; the exact binary representation would have a "1100" sequence continuing endlessly:
e = −4; s = 1100110011001100110011001100110011...,
where, as previously, s is the significand and e is the exponent.
When rounded to 24 bits this becomes
e = −4; s = 110011001100110011001101,
which is actually 0.100000001490116119384765625 in decimal. [...]"
And as being said here about SC and Arduino, and on the mailling-list on Max or JSON: Pd is not the only user-friendly (scripting/patching) language/environment that had to deal with this.
Althought backward-compabillity is the most precious thing
and long-term maintaince would become more complicated if PD single and double would differ in such an elementary part, my vote goes for more Pd64 developement, if I had a voice.
But for now, it seems like there are several easy experimental improvements, already doable when self-compiling Pd64!?
%.14lg mentioned by @katjav
https://lists.puredata.info/pipermail/pd-list/2012-04/095940.html
or that
http://sourceforge.net/tracker/?func=detail&aid=2952880&group_id=55736&atid=478072
Also we could have a look (for %.14lg ) in the code of Katja's Pd-double, and Pd-Spagetties is double, too. (dev stopped, I never tried this)
@jancsika Is Purr-Data double now? https://forum.pdpatchrepo.info/topic/11494/purr-data-double-precision I don't know if or how they care about printing and saving.
Higher order filter in PD extended
@kyro By non-linear I was referring to things like [pow~] getting stuck in the feedback loop, not a correct terminology but one I fall back on with synths because it was a common term in the synth diy community 20 years ago to refer to anything that is not the normal distortion/filtering type stuff in a filters feedback loop.
@manuels The magic of the moog (as in minimoog) is primarily in the output amp which affects the entire filter and is why the ARP version sounds so different, they 'fixed' it and lost the characteristic flavor of the mini's filter. The output amp on the mini's filter does not have anywhere high enough of an impedance to deal with the ladder which drags down frequency response and distorts things, feedback loop comes off output amp so nothing in the filter is untouched by the output amps flaws and it is more the heart of the filter than the ladder. Later Moog ladders are closer to the ARP version, output amp has a high enough impedance and we loose most of the mini's character but we get a decent response in the upper registers in trade.
Most of the classic VCFs are just cascaded 6db filters with a feedback loop for resonance and is my standard, the various 'proper' filters created in the digital world are lacking in many ways to my ears. The cascaded nature of many circuits in the analog world is part of what the digital world is missing, in a 4 pole filter that means we at least have input amp, 4 filter stages, output stage and feedback each giving their own distrotion and frequency characteristic. The filter stages we try and balance and get them to cancel out any quirks to work together but they still have an individual character and input, output and feedback have a very strong character which gives us a rather dynamic result when everything is combined.
And since analog feedback is basically delayless (which in digital land is of course impossibe)
Check my thread on feedback which actually came about because of trying to get a decent filter executed in pd, getting closer.
Having issues with audio preferences and PD freezing up
@Dizzy-Dizzy No, the externals problem is rare....... the last time was around the end of 2017 when after years of striving towards a 64-bit binary it finally happened.
Audio stayed as 32-bit floating point, but some OS's were going 64-bit only so it had to happen.
It took a couple of years for helpful people to re-compile the externals for all the OS's.
https://github.com/pure-data/pd-lib-builder/issues/40 and Lucarda did a lot of that work.
This time the audio has experimental 64-bit double precision, and multichannel support etc..
It has been a long time coming..... https://www.katjaas.nl/doubleprecision/doubleprecision.html
And that could have broken some externals despite Miller always striving for backwards compatibility.
Does the console say that the externals cannot be found?..... in which case you should check that the externals are still in a Pd standard path, or add the path to File, Preferences, Path in the Pd top menu.
Or does the console say that they are found and then you still get a "cannot create"?
In that case you could try sending Pd a compatibility setting from your patch........ https://forum.pdpatchrepo.info/topic/13887/general-backwards-compatibility/4 to set compatibility to a version that you know will work.
Pd 0.54 might have taken too great a leap, but 0.52.3 might work with a compatibility 0.52 setting.
David.
Using TouchOSC to draw into a 16 step array? communication back'n'forth? Show Array content in TouchOSC?
@whale-av said:
@esaruoho This being a new thread I had forgotten that you were using a wired USB connection.
Yes, that means that you are limited to midi only.
Is that really true? I used to use TouchOSC on an Android tablet. I could connect USB to the computer, and then on the tablet, open a tethered network connection, and this would assign a new IP address to the computer. Then I could use the IP address in TouchOSC and it 100% worked for OSC.
Unfortunately that feature has been removed from the Android versions on my current devices (but these are skinned Android forks, not "real" Android, so the feature might still exist). For iOS: https://support.apple.com/en-gb/guide/iphone/iph45447ca6/ios
Connect a Mac or PC to your Personal Hotspot
You can use Wi-Fi, a USB cable, or Bluetooth to connect a Mac or PC to your Personal Hotspot. Do one of the following:
...
Use USB: Connect iPhone and your computer with a cable. If you receive an alert that says Trust this Computer?, tap Trust. In your computer’s network preferences, choose iPhone, then configure the network settings.
...
After that, the Mac should have an IP address that directly connected to the mobile, through the cable. There's no reason at this point TouchOSC would be prevented from sending and receiving OSC messages (while allowing MIDI...? that doesn't make any sense).
"just not sure how to get PD and TouchOSC to talk to eachother so that this would work."
The first thing I teach in my class about getting data from an external device is: print out the data so that you understand what's coming in.
This goes for MIDI, OSC, Arduino, computer vision packages -- you can't do much of anything without knowing the format of the messages coming in.
You should get print outs something like:
print: list 1 fader1 0.777236
The specific keyword and number of arguments will be different for the multi-slider, but you can find that out by reading the console window.
The real message coming from TouchOSC is like /1/fader1 0.777236
. [oscparse] splits the command path /1/fader1
into separate symbols. ([mrpeach/unpackOSC] doesn't do that -- from this object, you would get print: /1/fader1 0.777236
.)
At this point, with [oscparse], you will run into the problem whale-av mentioned: 1
in the printed message is a symbol, but if you try to match it using [route 1], it will fail because [route] will be looking for a number. That's the workaround I posted: [oscparse] --> [fudiformat] --> [fudiparse] --> ...
Then the other detail is that you need to drop the list
type tag before routing.
And [route] will give you the argument values, now split into one dataflow pathway per control.
hjh
How to use Enttec DMX Usb Pro with PD on Raspberry Pi
@60hz I don't think I have ever seen so much information for a cheap chip...!
https://www.google.co.uk/url?esrc=s&q=&rct=j&sa=U&url=https://ftdichip.com/wp-content/uploads/2020/08/DS_FT232R.pdf&ved=2ahUKEwjTp7iV_8f9AhWSSKQEHdRNAG4QFnoECAYQAg&usg=AOvVaw1OtJDl14e0NRZCxEHMWxyg
..... links to a PDF.
Appendix A has links that tell you how to assign it to a comport....... AN 107
But..... I have to go out.... and there is A LOT to read.
Have fun....
David.
Analyse frequencies from mic input
Is the following possible:
Connecting dialectic mic to pd like that one or that one (does it need to pass through arduino? how can I first convert the analog signal to digital signal?
After receiving the signal in pd - is it possible to analyze the signal based on frequency and/or intensity ? so if the signal is at bandwidth x (between range of frequencies) it will trigger audio file x, if the signal is in bandwidth y it will trigger audio file y and so on
Is the above possible?
Thanks for any advising