Limiting amplitude on an LFO
Yes there is a split~ object but it is more about cutting a message with several values in it.
I can manage the selection of upper/lower parts of a waveform with <~ or >~ outputting 1 and 0 as gates. It works fine amplifying them separately, but it creates an abrupt breakpoint where the two offsetted parts meet in time. I also managed to get a kind of sine-ish waveform by adding a slew in the square LFO. It is wonky, but I like the sonic result. I also thought about offsetting the CV pitch itself to account for the range threshold. The fact is, the extremes of the full LFO modulation are not so tonal anymore so the accuracy of the main pitch isn't as important as the LFO range at that point if that makes sense.
I also have to try the LFO mixing as you suggested, it should be fun.
Here is the patch so far.
Limiting amplitude on an LFO
Hello,
In the context of a MIDI to CV converter, I am trying to limit independantly the lower and upper points of a waveform. The reason for that is that when I play high pitches, the LFO added to the keyboard pitch makes the final value go over 1, creating a kind of high pitched plateau that I would like to avoid. On the other hand, I would like to allow the lower part of the LFO wave to continue its course, so the waveform would be asymetrical in a way, for example going from -1 to +0.2. I achieved this with different vline~ objects, by setting two $ for posMax and negMax and it works fine. Here is the patch.
Now my issue with hat solution is that it doesn't play smoothly when adjusting the LFO rate, I suppose due to the fact that the different vline~ have to update while playing and they don't like it. Anyway, I am back to square one because playability and modulation possibility for the LFO speed is a must.
My math knowledge is not enough to figure out what kind of equation I should write to mathematically create the waveforms. Or maybe there is another way ? I went through the oscillators creation tutorial by Alexandro Drymonitis but couldn't find a way to adapt his patches so I could control the positive and negative parts of the waveforme independantly.
If anyone could put me in the right direction, it would be great.
Thank you.
saving a sample with a temp-filename so another app can run it?
@esaruoho Live is either working from its own copy of plom.wav stored elsewhere or just assuming the file has not changed for some reason. For the former finding where Live stores its copy and deleting it with [command] before opening the new one might be enough, for the latter perhaps opening a really short audiofile (like 1 sample long) before opening plom.wav will give Live the kick in the ass it need to actually check plom.wav's attributes and see if it is the same file. For both, deleting plom.wav before writing to insure it is a new file could work, Live could be going by file creation time instead of modification time because it assumes you are doing all your editing in Live so modification times will not change, this assumes OSX has creation time (it did years ago) for files but it is simple enough to test, suppose you can also trying running touch
on plom.wav before the open command.
No need to try combinations of these methods, I doubt combining would work, they either work or they do not. But they should be a bit more efficient than reworking names which could be of use for you since you sound like you are already running out of space between blocks.
2022_01_24_14_17_41-A few of the things that I most love about Pure Data
Just thought I'd throw this out there.
Think it might do some people some good to write it down...for new people's sake(?).
-
it's very close to being object oriented. Though I don't know enough about OOP to say exactly why it isn't. Though I do know enough to say it is very close.
-
you can program in it Anywhere. You don't have to be at a computer to write down your code.
-
it thinks like I do: in thought maps.
-
"If you can dream it. Then you can build it."
-
The Community. 2nd only to, if not better than, the only other community I ever found (online) to be as giving, tolerant, and kind: the Puppy Linux community.
Why do you love Pure Data?
Love only,
s
p.s. I pray your day is overflowing with health, joy, and kind feelings.
Wifi signal strength and carrier name converted to midi??
@pdnoob92 Pd can receive data and you can decide how it will then use that data to produce midi..... notes, control messages, program changes etc.
But something needs to send the data to Pd.
There are quite a few apps for analysing Wi-Fi on Phones and computers but they don't usually send data onwards.
Some will export data to a file though....... and that file could then be read into Pd.
This.......
https://github.com/bportaluri/WiFiEsp/blob/master/examples/UdpSendReceive/UdpSendReceive.ino
is written for an Arduiono shield...... more info........ http://yaab-arduino.blogspot.com/p/wifiesp-example-client.html....... but mostly people having problems.
It will? send live data back to a server.
You might be able to code for your hardware?
If you can get messages sent (containing the live Wi-Fi strength data) over a network (tcp/udp) then we can help you decode it to produce live midi messages in Pd.
If you can save a file from an app then parsing it into Pd can be easy or complicated depending on the format, but we can also help with that.
Do you need live data or would a file written earlier from an app (as above) be sufficient?
But some good news........ again for the esp8266 chip........https://reso-nance.org/wiki/materiel/esp8266/communications/accueil
There you have the code to send from the chip and to receive the data in Pd.
OSC messages are fairly simple to handle.
Let me know if you need help with the French text.
David.
Stack overflow when trying to increase the size of a functioning "Game of Life"-patch
@SignalsInNoise Here are some other implementations of the Game of Life:
With data structures:
- https://forum.pdpatchrepo.info/topic/10916/conway-s-game-of-life-implementation-with-data-structures
With ofelia:
- https://forum.pdpatchrepo.info/topic/11826/conways-game-of-life-made-with-ofelia
- https://forum.pdpatchrepo.info/topic/13155/game-of-life-patch-v2-ofelia-v4-offbo-issue-with-standalone-app
- https://forum.pdpatchrepo.info/topic/13181/game-of-life-new-attempt
- https://forum.pdpatchrepo.info/topic/13248/3d-game-of-life
With Ofelia / Emscripten (working in the browser):
Controlling Ableton effects
The most powerful way to control ableton live devices is using Max for Live API, Using it you can comunicate from Pd with Max for Live via OSC messages. It can be ok if you have good patches in Pd and don't want to rewrite all in Max.
The other way is sending MIDI messages to Ableton and manually map each message you are sending from Pd.
If you are in mac, you can use IAC driver.
In Windows, some software to do the same... I don't use Windows so I only remeber one option, which is loopmidi.
Once you solved the comunication bridge of MIDI data with Ableton and Pd I recommend you to use ELSE library, which is at disposal in deken. It comes with some facilities to compose and send midi messages from Pd, and comes with a Live Electronics Tutorial which have a session dedicated to MIDI messages.
Pd vanilla - gate - steady time interval
Hello all,
ATM, in Pd, I am struggling with creating a externally synched LFO receiving a clock from an external source. For instance a sawtooth (phasor~) .
For this LFO to complete its cycle, I need to calculate its frequency, therefore I think I need to know the time interval between 2 received ticks. The LFO also needs to start its cycle when receiving a tick( bang) from the emitter.
It also need to be quite steady : its frequency should not change at every tick.
But the emitter of the clock is of course is not perfect and the clock not completely steady. The time interval between 2 received ticks can change of a few ms.,
I tried averaging the value of the time interval with a running average but this is not satisfactory. The system does not respond well if too many points are taking into account.. leading to a desynch with the incoming clock and a slow respond to real change of the external clock (i.e. 120 -> 130 BPM).
I also wish not to change the average value of the frequency of the LFO every time a tick is received is received, but only when a significant change occurs.
Does any one have a solution for this ?
Thank you for your help.
ELSE 1.0 Beta 30 with live electronics tutorial released (Needs Pd 0.51-1)
ELSE 1.0 Beta 30 with live electronics tutorial is out! This needs Pd 0.51-1 and the highlight is a new abstraction called [batch.rec~] that records your patches into a sound file in batch mode. In this way you can render whatever amount of audio as fast as possible in your computer. This is possible with the new 'fast-forward' message to Pd, available in Pd 0.51-1. The cool thing about this object is that it has multichannel support.
You can download it directly via "Pd => Find Externals", just search for 'else'! Note that the "Live Electronics Tutorial" is part of the package (it relies on the ELSE library). Find the "Live Electronics Tutorial" folder inside the 'else' folder. The tutorial also provides an example on how to use this new 'fast-forward' feature. Check "Vol.1/Introduction-Pd.Quickstart/2.Syntax/4.fast-forward.pd".
Find detailed changelogs at:
ELSE 1.0 beta 29 with live electronics tutorial
ELSE 1.0 beta 29 with live electronics tutorial is out. This library version needs at Pd version 0.51-0 or above! Most importantly, I fixed a bug in [dir] where it couldn't load absolute paths in windows. I also made nice improvements to [keyboard] and included a new GUI object for text input (messbox), which is like an atom box (where you can insert data while in run mode) but for any kind of message.
There's other stuff and breaking changes as usual as this is still a beta project, so check the detailed changelog at https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-beta-29 - where you can download this and earlier versions. You can also get else directly via Pd (in Help => Find Externals). This download also contains the "Live Electronics Tutorial", in a version compatible to this version of ELSE. Find the "Live Electronics Tutorial" folder inside the 'else' folder.
cheers