mouse position and app superpositions
@pluxite In linux and probably OSX you can use ggee's shell external to run xdotool getmouselocation
, just bang it with a metro. It's output is not fun to parse and limitations of ggee/shell mean it will be easier to just write a simple bash script like eval $(xdotool getmouselocation --shell), echo $X $Y
, call this script (using the full path) instead of the command itself and you get a simple list of xy coordinates. xdotool can also do other fun things like send mouse or keyboard commands to other windows or screens.
Edit: Not sure what I was thinking, the heat must be getting to me, much simpler. Separating two commands with a comma fails with ggee/shell since it sends them too quickly, the first command is not done when the second arrives and it also opens a new shell for the second command so even with a delay the $X and $Y variables will not be set in this new shell. Simple solution is just to replace the comma with &&, now it is a single command, the echo command is only executed if the first succeeds.
Contribute to better Pd Documentation
@porres said in Contribute to better Pd Documentation:
On the other hand. If you want a new tutorial like the FLOSS one for 'vanilla' as part of its official documentation, then we need to work on it from scratch, and there'll be no need for a FLOSS version that lives in flossmanuals.net! And I think that can easily be included as part of the Pd Vanilla distribution and its online documentation.
So, went to have a look as to what would it take to make the FLOSS tutorials ported to vanilla... and... well, it seems that despite using Extended, some of the examples are pretty much 'vanilla friendly' (no externals). These can be easily ported then...
But where are the authors these days? I know Derek Holzer is one, but he was just recently sayin on the facebook group that the FLOSS manuals is old should be forgotten himself... If we were to update it in the web, who would do it? And could we revise it and change it and take or put stuff?
Well, I'm thinking about copying the basic tutorials here into a new one, fully vanilla, to be downloadable via deken. But... I guess it'll be kinda "based on this", because I have a few issues with some of the things we have here.
For instance, [phasor~] is described as an osccllator, and it is not one in the sense you can plug it in and listen to it as it has a DC Offset. I will suggest that we even change the description in the help object from 'sawtooth' generator to 'phase ramp' generator. Oscillators need to go from -1 to 1. The square oscillator there is also a pulse train instead. And these are not band limited oscillators (so pretty bad and aliased ones) and we should say that...
Also, in ampplitude modulation, I don;t think it's a good classical example to modulate it to a phasor~ signal, an [osc~] should be much better. And the 'tremolo' effect should also have a 'depth' parameter so it can be called an actual tremolo. A tremolo is not just amplitude modulation with a low frequency.
So if I were to design a new and quick, simple, new tutorial for newcomers, I know I'd change a lot of things... so the problem I have with it is not that it's just old and outdated, but also with the content, which I think can be greatly improved.
I created a new issue on github https://github.com/pure-data/pure-data/issues/1331#issuecomment-850893517
Sending and receiving information to other devices (iphones even?)
Hello all,
I am on to my next wish. To be able to send messages to other devices via my patch on my computer. I see the netsend and netreceive. Is that the way to do it? If so, I assume I need Pd on all other devices? Then I need to have them all on the same network?
Is there another way? I was thinking you might be able to use shell and make a script, but shell often seems to add digital artifacts when a sound is playing. Is there another way?
Essentially, I want to:
1: Inform performers when to change what they are doing.
2: Provide the performers an opportunity to tell the system simple directions.
However, all sound will be generated from the patch and this is without a performer manning the computer.
I hope this makes sense. Help.
Too many bangs or wrong note on onset for granular synth
@whale-av Aha, thanks! I think I'm moving forward a bit here! But also a bit backwards.
So, I got out of the "last pitch" issue, that's great. Here is what I achieved so far: granular_20.zip. I'm throwing in one of the samples I'm using to demonstrate why I'm going backwards.
First, though, I get clicking between notes when the [legato-mrn]
patch does its job (it's more noticeable with quieter samples and I'm sure it also happens with staccato notes but I haven't been able to hear it. Anyway, I figured I'd put another [vline~]
right after the grainSpeed bit but I'm getting some horrible zipping noise (which I suspect is just a slower version of the clicks).
Second issue, higher notes start later in the sample, so basically the higher you go, the closer to the end of the sample you start playing from. I think this is related to the way I'm modifying the output of the grainData [vline~]
. I'll play around with it a bit more but if anyone can spot an obvious solution, I'll be forever grateful at this point
(no pressure, but I'm hoping to use this one in a video that should be out in about 48 hours, so… and I'll also try to make this polyphonic, by cloning the
granular
patch, let's hope I don't kill my PD!)
EDIT: Ok, scratch the second issue, I had a day-long brain freeze that thawed only now. The first issue persists but now that I have it running polyphonically it's not even that bad.
Extraneous high frequency noise in parametric peaking filters (iemlib para_bp2~ and biquad~)
I'm working on a building a parametric EQ in Pd, and was following the model in this post, which at first appears to work really well using para_bp2~ from iemlib.
However, what I've noticed is that whenever the center frequency of a filter is set relatively low and the q approaches an octave bandwidth or so, I'm getting a lot of extraneous high frequency noise even with a gain of 0 whenever a low frequency tone is sent in to the filter. So, everything sounds well until you send a sine sweep through it and you'll notice a lot of noise when the tone is below 40 Hz or so, but again only when the center frequency of the filter is set relatively low as well.
Here is an example with very common values found on the bottom filter of a 10-band graphic EQ (31Hz, Q of 1.41), and you can hear the issue. This same issue seems to persist when using coefficients for biquad~ as well although I haven't tried that exensively.
I thought it might be aliasing caused by some ultrasonics the filter is producing for some reason, but oversampling and filtering doesn't seem to change matters much.
Anyone have any thoughts on this? Thanks for your help!
Batch - Processing audio faster than realtime
@Spacechild1 Yeah, I had completely forgotten that x5 was the release notes, been far too long since I actually read the manual. As for reporting issues, I just could not see how a changelog could be forgotten for 12 years and assumed it was on purpose, all my other issues turn out to be issues with me or already known issues like the GUI getting slow when many GUI objects are about. Only issue I have found that I believe is unreported is that under certain situations pd might put in multiple identical #connect messages, as shown here https://forum.pdpatchrepo.info/topic/12507/bang-issues/4 but I have not been able to reproduce it or even figure out if pd was actually the cause so it seems premature to report it. Perhaps not?
NoxSiren - Modular synthesizer system <- [v15]
NoxSiren is a modular synthesizer system where the punishment of failure is the beginning of a new invention.
--DOWNLOAD-- NoxSiren for :
-
Pure Data :
NoxSiren v15.rar
NoxSiren v14.rar -
Purr Data :
NoxSiren v15.rar
NoxSiren v14.rar
--DOWNLOAD-- ORCA for :
- x64, OSX, Linux :
https://hundredrabbits.itch.io/orca
In order to connect NoxSiren system to ORCA system you also need a virtual loopback MIDI-ports:
--DOWNLOAD-- loopMIDI for :
- Windows 7 up to Windows 10, 32 and 64 bit :
https://www.tobias-erichsen.de/software/loopmidi.html
#-= Cyber Notes [v15] =-#
- added BORG-IMPLANT module.
- introduction to special modules.
- more system testing.
#-= Special Modules [v15] =-#
- BORG-IMPLANT (connects ORCA MIDI system to NoxSiren system)
#-= Current Modules [v15] =-#
- VCO (voltage-controlled-oscillator)
- VCO2 (advance voltage-controlled-oscillator)
- WAVEBANK (additive synthesis oscillator)
- ADSR (Attack-Decay-Sustain-Release envelope)
- C-ADSR (Curved Attack-Decay-Sustain-Release envelope)
- CICADAS (128 steps-Euclidean rhythm generator)
- CICADAS-2 (advance 128-steps polymorphic-Euclidean rhythm generator)
- COMPRESSOR (lookahead mono compressor unit)
- DUAL-COMPRESSOR (2-channel lookahead mono compressor unit)
- STEREO-COMPRESSOR (lookahead stereo compressor unit)
- MONO-KEYS (virtual 1-voice monophonic MIDI keyboard)
- POLY-KEYS-2 (virtual 2-voice polyphonic MIDI keyboard)
- POLY-KEYS-3 (virtual 3-voice polyphonic MIDI keyboard)
- POLY-KEYS-4 (virtual 4-voice polyphonic MIDI keyboard)
- POLY-KEYS-5 (virtual 5-voice polyphonic MIDI keyboard)
- POLY-KEYS-6 (virtual 6-voice polyphonic MIDI keyboard)
- BATTERY (simple manual triggered machine for drumming.)
- REVERB (reverb unit with lowpass control)
- STEREO-REVERB (stereo reverb unit with lowpass control)
- RESIN (advanced rain effect/texture generator)
- NOISE (generates black,brown,red and orange noise)
- NOISE2 (generates yellow,blue,pink and white noise)
- COBALT (6-stage polyrhythm generator)
- SHAPER (basic shaper unit)
- FOLDER (basic wave folding unit)
- STEREO-FOLDER (stereo wave folding unit)
- DUAL-FOLDER (advance wave folding unit)
- POLARIZER (transform a signal into bi-polar, uni-polar, inverted or inverted uni-polar form)
- CLOCK (generates a BPM clock signal for sequencing other modules)
- CLOCKDIVIDER (a clock divider with even division of clock signal)
- CLOCKDIVIDER2 (a clock divider with odd division of clock signal)
- DELAY-UNIT (delay unit)
- STEREO-DELAY (stereo delay unit)
- CHORUS (chorus unit)
- STEREO-CHORUS (stereo chorus unit)
- SEQ (advance 16-step/trigger sequencer)
- KICK (synthesize kick unit)
- KICK2 (synthesize flavor of KICK module)
- KICK3 (synthesize flavor of KICK module)
- SNARE (synthesize snare unit)
- CLAP (synthesize clap unit)
- CYMBAL (synthesize cymbal unit)
- RAND (RNG generator for other modules parameters)
- FMOD (feedback modulation unit)
- AM (amplitude modulation unit)
- RM (ring modulation unit)
- LFO (low-frequency-oscillator)
- LFO2 (advance low-frequency-oscillator)
- COMBINATOR (combine two waves)
- COMBINATOR2 (combine three waves)
- COMBINATOR3 (combine four waves)
- STRING (Karplus-Strong string synthesis unit)
- STRING2 (advance Karplus-Strong string synthesis unit)
- DETUNER (parametric 4-channel detuner unit)
- CRUSHER (basic audio resolution unit)
- STEREO-CRUSHER (basic stereo audio resolution unit)
- DUAL-CRUSHER (advance audio resolution unit)
- FILTER (basic filter)
- VCF (voltage-controlled-filter)
- MAR (Moog-analog-resonant filter)
- VCA (voltage-controlled-amplifier)
- DUAL-VCA (advance voltage-controlled-amplifier)
- FMUX (multiplexer with fast A/D internal envelope)
- MMUX (multiplexer with medium A/D internal envelope)
- SMUX (multiplexer with slow A/D internal envelope)
- FDMX (demultiplexer with fast A/D internal envelope)
- MDMX (demultiplexer with medium A/D internal envelope)
- SDMX (demultiplexer with slow A/D internal envelope)
- MIXER (mix 1-4 possible waves)
- SCOPE (oscilloscope analyzer)
- MASTER (fancy DAC~)
- BOX (useless decorative module)
NoxSiren integrated modules menu system.
Purr Data GSoC Projects, 2.15.1
Hi all,
Purr Data 2.15.1 has been released.
We had some build issues and Albert graciously stepped up to help merge the relevant patches and posted the release on github quite quickly:
https://github.com/agraef/purr-data/releases
If you're on Gnu/Linux, do use the OBS repos that he set up. He's posted a very clear guide, and if you use it you'll get Purr updated automatically any time you update the system.
As always, report issues here:
https://git.purrdata.net/jwilkes/purr-data/-/issues
With that out of the way, I'd like to highlight the work our students did for Google Summer of Code Projects that wrapped up over a month ago.
Patch Private Abstractions
This was a feature created by Guillem Bartrina. (Actually, one of several features he added as part of his GSoC project this summer. I'll try to post about his other additions later.) It allows the user to create and use abstractions which get saved in the parent patch. Abstraction names are local to the patch which contains them, which makes for a quite workable and flexible namespacing system that's easy to use and understand.
This is a very tricky feature to design and get right, and Guillem did an excellent job considering various corner cases and optimal UX. Notice in the video that he added a few features which are useful generally for abstractions, too:
- a notification when the user has an unsaved abstraction somewhere in the running instance
- another notification when the user has two or more unsaved abstractions in the running instance. This is quite a handy feature for normal abstractions, too, as it can save you from the headache of overwriting important changes when you're working after midnight on your last cup of coffee!
There are also some helper classes that give some options to ensure that the user doesn't lose data.
Purr Data Webapp
This was another ambitious project with frontend work by Hugo Neves de Carvalho and backend, API, and merging work by Zack Lee.
This project runs the core of Purr Data and a surprisingly large number of all the externals it ships in a webpage. The front end can load, save, close, and "vis" multiple patches and run them from the same backend engine.
Thanks to the way Zack leveraged the emscripten file system, you can even save abstractions and call them from a new patch!
The patch private abstractions have already been merged into Purr Data, and we're currently working on upstreaming the webapp changes into Purr Data as well.
Why does Pd look so much worse on linux/windows than in macOS?
@ingox Apple has gotten fairly aggravating regarding all this in recent years, part of why I gave them up about a decade ago. I still have to deal with them fairly often since my parents use Apple and I am the one that they call everytime something goes wrong. One of the really irritating things is OSX can not mount a hard drive with even a minor issue and a key piece of their HFS+ spec is proprietary, the open source HFS+ spec lacks that so the open source tools can not generally fix even minor filesystem or journal problems on an HFS+ partition. Thankfully linux can almost always mount the drive and copy most, if not all of the data off, reformat and all is well, but it is a headache. Still less of a headache than getting my parents to use linux.
@ddw_music said:
That issue is not caused by the screen grabber. It's the normal appearance of Pd for ages. See the 2nd "Modulation index" --> [*~]. (This is a png -- there are no jpg compression artifacts. This is how it really looks on my screen, in the Pd window.)
Ingox and I already confirmed that, this is a driver issue or possibly your distro's TK, if you are running linux on an apple machine, I would bet it is driver, I have never come across this issue in any linux, all my wires come out as shown in the screen grab of my redraw of Ingox's patch, nice crisp single pixel lines. This is most certainly not an issue with PureData.
This website makes my CPU melt (Mac)..
@Roomy I suspect a Java issue.
I had this same problem a few years ago in Windows Internet Explorer.
It "went away" and so I think it is a browser issue rather than a site issue.
There are a lot of people suffering the same issue in 64-bit Chrome on all OS's.
You could try rolling back to Chrome ver.75, unless you have less than 2Gb of hard drive free which apparently can also cause this issue......
https://support.google.com/chrome/thread/11026607?hl=en
David.