-
JCPedroza
@seb-harmonik.ar said:
I think that's purposeful. just change it to [import sfruit].
It works now! Many thanks.
-
JCPedroza
@LandonPD said:
Let's see if you can solve your problem with these files.
I can't make that work, and the import-disabled object can't be created.
-
JCPedroza
@LandonPD said:
Just type vmetro into an object box, or use the search functionality (in the Help menu). You can also find it by searching for "fractional".
"couldn't create" error using PD extended 0.43.4 on Mac.
-
JCPedroza
@seb-harmonik.ar said:
in the pd extended library sfruit there is the vmetro abstraction, it is a metro that can go lower than 1 ms delay by simply using the [delay] object in a loop with itself
This one?
https://raw.githubusercontent.com/pd-l2ork/pd/master/abstractions/sfruit/sfruit/vmetro.pd
Didn't found it for extended, only for l2ork. Can't get it to run on extended.
-
JCPedroza
Seems that [metro] can go up to 1000Hz (1ms). What options do we have if we want to generate bangs at a higher rate?
I've tried using [phasor~], but I can't find an implementation that works better than [metro]. I've tried these:
The float at the top is how far they went before I stopped noticing a change. As you can see metro is outperforming the phasor~ implementations (i'm probably doing something very wrong though). They are being used to trigger a [vline~] object, which I want to use to generate waveforms. The bangs control the frequency of this:
Is there a way to send bangs at higher rates than 1000Hz? Or is there another way other than bangs to control the change frequency of a [vline~]?
-
JCPedroza
It's because you are performing integer division, in which 3/5=0. Use [expr 3.0/5] instead, that will output 0.6.
I thought everything defaulted to float in PD. Seems that I'm wrong, or the [expr] object is an exception.
-
JCPedroza
Two other suggestions were given in the mailing list that are better than my solution.
One improves mine by simplifying it and using vanilla objects only, and the other took a completely different approach using [bag].
You can find all solutions at https://github.com/JCPedroza/puredata/tree/master/midi/listOfMIDINoteOn (to get a patch click the file, click "raw", then save as)
-
JCPedroza
I finally solved this.
Used a combination of [list-extend], [list-find], [list-delete] for the list dynamics and [notein] for MIDI input. The patch first separates the MIDI note messages by velocity (0 velocity is note-off). If note-on then it adds the note to the list, if note-off it removes the note from the list.
When the patch receives a bang, it outputs the list with all the keys (MIDI notes) that are being pressed.
You can get the patch at: http://pdpatchrepo.info/patches/patch/163
There are two important subpatches. [pd on_off_route] routes the MIDI-note-on notes to one side, and MIDI-note-off notes to the other. [pd list-deletevalue] deletes a value from a given list, outputs the list unchanged if the value was not found.
It surely can be improved. Let me know if you find something.
Thanks everyone for your time and help, I really appreciate it.
-
JCPedroza
I need to populate a list with the MIDI notes that are being pressed, and remove the note from the list when the key is released.
One idea is to use [notein], and if the velocity is> 0 then add the note to the list, and if the velocity == 0 then remove the note from the list. But I have no idea of how to implement this.
I think I need [list-extend], [list-find], and [list-delete], but I just can't figure out an implementation.
How can I do this?
EDIT: solved the problem and have a working patch. See my reply below for details.
-
JCPedroza
I'm trying to implement amount control to amplitude modulation similar to the amount control of frequency modulation. The more amount, the more amplitude variation. The problem is that I can't figure out how to implement it correctly.
Here is a simple amplitude modulation patch: http://i.imgur.com/gsVDyw1.png
The idea is that when no amount is applied, no modulation can be heard, and as the amount is raised the modulation becomes more prominent, and when the amount is at the max the carrier's amplitude is being modulated all the way to zero amp.
But how do I do that? Here is a patch where there is a control for the amplitude of the modulator: http://i.imgur.com/DJIIfQs.png
The problem here is that, as we are multiplying both signals, the control also lowers and raises the amplitude of the carrier. So when the "amount" is zero, there is no signal. That "amount" control ends up modifying the amplitude of the carrier too. It's not so much of an amount control, and ends up being a volume control for the carrier too.
How can an amount control for amplitude modulation be implemented? At the lowest amount there is no modulation, and as the amount rises the modulation becomes more intense. Is there a way to do this?