-
lo94
@seb-harmonik.ar Thanks for the concise explanation, that's extremely useful, definitely keeping this thread bookmarked for a while while still getting my head wrapped around all this
-
lo94
@seb-harmonik.ar Ahhh thank you! So when a library is compiled to a .dll, the compiled .dll itself needs to have the tilde symbol? Just trying to figure out how PureData actually loads/parses all of this
-
lo94
@seb-harmonik.ar Okay so I managed to get it compiling using the pd-lib-builder! Thank you
However, I am encountering an error that perhaps you could help with. I added the directory of the external to my PD path, and added the library to load on PD startup in the startup menu. However, when attempting to load the library it throws the following error:
load_object: Symbol "es5encoder_setup" not found
I see that the
main.cpp
file for this encoder does contain aes5encoder_tilde_setup
method, but not aes5encoder_setup
method. I am assuming this required for external libraries? I'm wondering if maybe this was a change in more recent builds of PD, as this external appears to have been last updated about 9 years ago. -
lo94
@seb-harmonik.ar Oh awesome, I had no idea this existed. Thanks for the tip, if this works reliably seems like a great tool
Awesome thanks. Looks like he has some pretty cool externals on there as well that I'll have to snag.
-
lo94
@seb-harmonik.ar I noticed that as well. Is this something that automake could potentially handle? I recall compiling an external a while back that used that, but I don't know how usable such a tool is for compiling PD externals.
Ahh that makes sense. Thanks for the explanation, when I was hearing static my instinct was it would have some sort of limitation similar to a static function.
-
lo94
Hello all,
I have recently stumbled into some problems compiling PD externals. I figured I would post here, it's a two part question
Compiling on/for Windows:
The first, and likely easier question, is I am trying to compile this external for the ES-5 encoder provided by Expert Sleepers for their DC coupled Eurorack interface:
https://github.com/expertsleepersltd/externals/tree/master/pd/es5encoder~However, when I attempted to run the makefile I am encountering numerous errors that lead me to believe my environment isn't setup for compiling PD externals. Is there somewhere that outlines how to compile an external like this where there is limited/no documentation in the README? I don't know how generic of a process it is and if it's fairly standardized.
Second question:
I have a library that I would like to use with PDParty (iemmatrix) and I need to compile this into a static library to be able to use it on iOS. Is compiling to a static library drastically different than to a dynamic one? Are there limitations design wise that particular libraries might be incompatible with?Sorry if the wording here is confusing at all. I haven't dealt much with compiling libraries for different platforms so I am a bit lost on some of the basics.
Any help, as always, is greatly appreciated
-
lo94
Oh wow, thanks for the in depth response. I didn't know that about getting CV out through standard audio outputs. Luckily this seems to be quite a bit easier. I am running the Expert Sleepers ES-9 audio interface, and it seems to be as simple as simple sending a float value to the [dac~] output. I was able to just implement a simple algorithm to convert from MIDI note to V/Oct. I'll post the abstraction once I clean things up a bit, maybe someone will find it of use.
The tracking seems fairly accurate, I tested the full range (have Mordax Data, which has a voltage monitor). I haven't tested all the outputs yet though, so I'm sure some calibration may be necessary.
-
lo94
Hey everyone
Was curious if anybody here has much experience with working with DC coupled audio interfaces. I have some modular gear and some sequencers that output MIDI that I was looking to convert the MIDI notes to CV and then output to the audio interfaces. Has anybody had any experience and success doing this?
Thanks in advance
-
lo94
Hey all,
Been trying to figure out if it is possible to use a library such as iemmatrix with PDParty (iOS). I was looking into compiling the source myself, as it seems that when you install this library from PureData it detects what system you are on and gives you specific library files (dll on win, dylib on Mac, etc) unlike other libraries I have installed which seem to just dump compiled binaries for multiple system configurations. I'm assuming I will have to build this library myself somehow (or find a way to fetch the appropriate compiled library from wherever PureData externals fetches from) in order for it to be compatible.
Has anybody dealt with this much? I am not very familiar with iOS development so I am shooting in the dark a bit here.
Thanks in advance!
-
lo94
@lo94 Replying cause I figured it out, I didn't see that there was [mtx_transpose] which makes it really easy
Simply transpose the matrix, then either reverse the rows or columns depending on the desired direction -
lo94
Was curious if anybody here using the iemmatrix external has found an easy way to rotate a matrix? Not rotating the values themselves but rather rotating the position of the values. For example so this matrix:
1 2 3
4 5 6
7 8 9becomes this matrix after a 90 degree clockwise rotation:
7 4 1
8 5 2
9 6 3Thanks in advance!
-
lo94
Thanks for the replies. I will have to spend some time staring at this as I am relatively new to the world of sysex. I've sent sysex messages for simple cases like program changes, but with this one I have a rather large file as I realized a workaround to a potential limitation with my MIDI Controller (Novation SL25 MK1) with templates (limited number) and PureData is that PureData could basically just send the giant template sysex file to the controller based on MIDI messages. These templates are stored in temp memory, so basically all my custom PureData patches don't need to actually be saved within the synth, and I can save the template storage for my hardware synths. Essentially just pass the template file to the synth as needed from PureData, which automatically loads it up in temp memory when it receives it
I think I understand what you're saying but because of the formatting of the template file I'm having a hard time applying it to this use case (as I'm used to relatively short sysex messages like the one shown in the forum thread, where this one is massive). I attached the file in case it would be useful/relevant to see
-
lo94
@ddw_music I'll give this a shot. Thanks, didn't even know about that object
-
lo94
Hey all,
Sorry for overflowing these threads with questions haha. Been posting a lot lolWas curious if there's an easy way to send an entire .syx file via midi. When looking through the forums for answers I mostly found questions pertaining to sending individual sysex messages, but I'm looking to simply route a .syx file like MIDIOX or similar software would. Would I have to parse the message somehow or is there a ready made abstraction for this sort of thing?
As always, thanks in advance
-
lo94
@Balwyn .... thank... you... so... much lol
I had no idea this was a thing
Doesn't help so much with [select] but definitely does with patching many controls into a float's cold inlet and such
-
lo94
@ddw_music Funny thing is, I did this for every other use case but broke it just for this. The issue is more that it's part of a larger system. I didn't want radio buttons, went with toggles instead, but only one within that row of toggles can be on at a time. I have a fairly good idea of how I'll rework it. It's mostly that in this case, a change in value should always trigger an update to the other toggles within the change. Likely I'll just add a second receive channel within my control abstraction for handling cases like this. Then I can keep it compartmentalized where the primary receive channel simply updates the values and the secondary receive channel will both send an update to the values and then output a bang if there's extra logic needed.
-
lo94
@ddw_music I'm sure there is haha. I just started PD about a week ago and am definitely more of a traditional programmer. I'm much less adept when it comes to visual programming. Even when I do use visual programming in something like Unity/Unreal it winds up being more of a triggering state machine than anything else.
-
lo94
@whale-av Ahh okay, this is a clever solution. I hadn't thought of using spigot in regards to a global receiver like that. Definitely need to implement this in some of my abstractions.
Although this seems to limit you to custom abstractions. I was wondering if PD actually keeps track of the currently selected objects when in edit mode, that somehow we might be able to peek behind the curtain at. I'm assuming that PD must have this information stored somewhere/somehow, it's more a matter of if it's made accessible somehow.
-
lo94
@whale-av Ah okay. This seems useful. I will likely try to see if I can rig something up to make dynamic patching easier in the coming weeks. Do you happen to know if PD has any sort of event handling capabilities that allow you to send messages to currently selected objects? If so, I can't imagine rigging something up would be tremendously complicated
EDIT: Ah yeah I'm aware of the $0 adding the parent patch. That was my intention, so it can communicate with the parent patches $0 send/receive events
-
lo94
@whale-av I'll take a look into clone. That might help me out. I basically have a bunch of control objects that all use the same abstraction for sending/receiving to a central patch storage DB. I create these instances through dynamic patching as well as the slider objects themselves. Basically just did this so I didn't need to individually create each slider for say, a 64 step sequencer. Obviously the downside to this is you wind up with lots of objects very quickly and a need to connect them in a variety of ways.
I'm reading about clone but does this sound like something that clone could potentially simplify?
Thank you for the reference, I'll have to experiment with that a bit tomorrow so see what its capabilities/limitations are. Much appreciated as always!
EDIT: I included an image of what I've been doing so far. The [control-guts] abstraction is created in an editor I threw together, along with its associated GUI object which is initialized according to the values passed in from my editor. Obviously, all use cases don't match (for instance, on this drum machine the trigger/probability sliders for each step will be used differently than the toggles which set the last step). Between this and manually editing the textfiles with VIM, I've been able to get pretty decent efficiency, but being I'm new to PureData I wonder if there is a way to handle such things more efficiently.