• jon_oz

    Hi folks,

    I'm a total noob in Unity and am going a bit bonkers trying to figure out how to get it to play with PD. I've tried experimenting with a few different Unity packages (eg Magicolo uPD & libpd4unity from melodrive) but even after following the various instructions I get some kind of compiler error and/or have no idea where to put all the different files. I think there's an issue with me using a x64 version of Unity (2019.3.7) with PD packages that were written for older x86 Unity versions... but I have no idea what "recompiling for x64 architecture" involves.

    Before I condemn myself to years of study into computer science, does anyone know of any ready-made solutions or up-to-date guides for Unity x64 versions that will help someone like me get PD + Unity talking to each other? (Extra special appreciation if you have any tips for minimising audio latency on Android builds...)

    My project:
    I'm developing a game (ok... "artwork") for the Oculus Quest (which runs Android). In this "artwork", the user interacts with 3D virtual objects, which causes them to send data to a PD patch, which makes bleeps and does some kind of mathematical juju to feed modified data back to Unity, causing other objects in the virtual world to do different stuff. I'm fine with doing the PD side of things, and am getting the hang of making the interactive environment in Unity. It's just setting up the Unity backend that's killing me...

    Cheers,
    Jon

    posted in libpd / webpd read more
  • jon_oz

    Hi all,

    I'm the proud new custodian of a Raspberry Pi 2, two sets of 12v 5050 SMD RGB light strips, and a live music party in outback Australia in a couple of weeks.

    I'd like to use the Raspberry Pi to make the LED strips respond to the live music. I figure the easiest way for me to do this would be to make a puredata patch, running on the Raspberry, to analyze the live sound. That part I think I can do...

    But I'm not quite sure how to get puredata talking to my LED strip lights via the pins on the Raspberry Pi, yet. Has anyone got any suggestions?

    [EDIT: Just to clarify, it's the software side of things downstream of PD that I'm stuck on. I can manage the hardware interfacing, I hope...]

    Cheers,
    Jon

    posted in I/O hardware diyread more
  • jon_oz

    actually, this is a sneaky 2-part question:

    1.

    i'm using pddroidparty on a galaxy s2 phone (android) and would just like to make a box to display symbols in a large font - very similar to the [taplist] object in droidparty-abstractions. you can see how this object works by running the taplist patch in droidparty-tests.

    first i did a really basic re-patching of the [taplist] abstraction to display symbols sent to a [receive] object, rather than reading them from a pre-defined list. this worked fine on my pc (almost - see question 2...). but on android there was nothing displayed - no box, no text - but the numbers in the standard numberbox kept ticking over, suggesting that there was still communication between the [taplist] object and the test patch.

    thinking i was missing something, i did a dummy test: i simply copied the [taplist] object and pasted the copy into the same directory - "/droidparty-abstractions" - renaming it "taplist2". then in the "/droidparty-tests/taplist" directory i copied the droidparty_main test patch, pasting the copy into a new directory called "/droidparty-tests/taplist-test". the only thing i changed on the droidparty_main.pd patch was to change the name of the object from [taplist ...] to [taplist2 ...]. when i ran this patch on android the same thing happened - everything seems to run, but there's a blank white piece of screen where there should be a text box.

    this has got me totally stumped. can anyone explain why an identical clone of the same abstraction would not work?? i've attached my [taplist2] abstraction so you can see it's identical to [taplist]. the droidparty_main.pd test patch is to follow...

    2.

    i'm thinking my problem no. 1 might stem from my lack of understanding of what's going on in the [taplist] object - specifically, where does the gui rectangle come from, what determines the font size of the symbols displayed in the gui box, and what on earth are the "donecanvasdialog" and "dirty" messages doing?? can anyone explain what the arguments after these messages relate to?

    more perplexing - the [taplist] object only works properly on android. on my pc, it just shows up as a rectangle in which there is a standard (working) symbol box placed over a gui bang object.

    perhaps if someone can help me understand what's going on there a bit better, i might understand why copying this abstraction causes it to stop working....?

    thanks! and sorry for such a lengthy post...

    jon

    http://www.pdpatchrepo.info/hurleur/taplist2.pd

    posted in technical issues read more
  • jon_oz

    hi all-

    i'm writing a patch to use with pddroidparty (android o/s) so need to find a vanilla solution for this problem... (and sorry if it's been discussed before somewhere else...?)

    the patch uses [sigmund~] to analyse an audio input signal, taking a sample set of about 100 floats from [sigmund~]'s frequency output and storing them in a list. this list contains some noise (eg, very low or very high 'junk' frequencies) so i want to take the median value of the list as my result, rather than an average.

    [median] won't work, nor can i use [list-sort] to manually find the median value - is there a vanilla workaround??

    just thought i'd see if another solution is available before i drive myself nuts trying to make patch to run an insertion sort algorithm on my list, then pick the median value...

    cheers,

    jon.

    posted in technical issues read more
  • jon_oz

    hi all -

    i need to convert a frequency (Hz) to a pitch number in equal temperament. if i were using 440Hz tuning, this would be easy - i'd just use [ftom].

    but i need this patch to work with ANY reference pitch, not just A4=440Hz.

    the formula to do this is (i think!):

    p = 12.Log2(f/R)

    where p = note pitch number (A4 = 0)
    f = frequency (Hz)
    R = reference pitch (eg, A4 = 442 Hz)

    the problem here is that i have no idea how to do a binary logarithm (log2) calculation in pd.

    anyone have any ideas how to do this??

    cheers,
    jon.

    posted in technical issues read more
  • jon_oz

    so, i'm driving myself bonkers trying to resolve this.

    i run PD on an XO (see laptop.org) under ubuntu intrepid 8.10.

    i want to add a function to my patch to date/time-stamp files as they are saved from my patch. so i used aptitude to install pd-zexy from the old-releases repository, hoping that would allow me to use zexy's [date] and

    posted in technical issues read more
  • jon_oz

    sorry if this is an obvious one - i'm not sure what my problem is called. i'm still a newbie after about 2 years of pd-ing... :)

    i've made a patch that contains numerous instances (copies) of a sub-patch called [pd loopmachine].

    when i open up and edit [pd loopmachine], my changes only seem to affect that particular instance of the subpatch. if i then open up any of the other instances of [pd loopmachine], they will not have changed.

    does this mean i need to delete all the old versions of [pd loopmachine] and replace them with copies of the newly edited sub-patch? or is there a way to have each instance of [pd loopmachine] automatically update itself to reflect the changes?

    thanks!

    jon

    posted in technical issues read more
  • jon_oz

    so. since i can't afford a fancy loopstation pedal, i'm making one in pd and taking advantage of my low-latency soundcard.

    i've made a set of midi trigger pedal buttons - 8 channels, two buttons each channel (one for "record", one to toggle "play" or "silent"). you stomp on the "record" button on the first track and start playing music, then when you're done you hit the button again and the track starts playing back on loop. every subsequent track records in sync with the first loop. you can alter the volume of each of the 8 loop tracks, or stop and start them at will.

    i use the [tabwrite~] object to record each loop, then play them back using [tabread]s controlled by [line~]s.

    despite driving myself bonkers trying to program the operation of the button interface, so far everything's shaping up well. but the biggest annoyance is the 'pop' that you get when a loop of a constant but unsteady sound (ie, a single sustained violin note, recorded badly) jumps back to the zero position to start playing again - due to a difference in amplitude between the end of the loop and the start.

    could anyone suggest a way that i could automatically alter the end of each recorded array so that over the final few milliseconds the amplitude is smoothed (or 'faded') to approach the amplitude at the exact start of the loop? i'm guessing this might eliminate the jump in amplitude that causes the 'pop' effect - let me know if you think i'm wrong :)

    err, hope this is understandable.

    cheers,

    jon.

    posted in technical issues read more
  • jon_oz

    i use a .bat file script (windows vista) to load my pd patches using a specific configuration of audio devices.

    so far, i haven't been able to find a command line option which sets the "use callbacks" option in the audio devices configuration.

    does such an option exist? using callbacks (whatever they are...) seems to cut my latency in half, so being able to turn on this option would be great.

    cheers,

    jon.

    posted in technical issues read more
  • jon_oz

    hi all,

    i've made a pre-recorded 8-channel sound installation for an exhibition in an art gallery. i sequenced it on protools in a friend's studio, but now i need to find a way to play it back in the gallery using PD on my computer (which doesn't have protools...). i know there are easier ways to do this, but i don't own any sequencing software myself!

    i also would like the playback to start automatically, so that all i need to tell the gallery staff to do is turn on the computer (i suspect not all the staff are 100% computer literate).

    is anyone able to help me with this? my 2 issues are:

    1. the sound is saved on my hard disc as 8 .wav files of exactly the same length (about 1 hour duration). i need to play them simultaneously on a continuous loop through my multichannel sound card. would [readsf~] be the best choice? i think there's too much data to play from RAM. are there any example patches out there that i could modify for an 8-channel environment?

    2. having my patch start automatically and begin playing the sound files when the computer is turned on. i have no idea how to do this... my computer runs windows vista (blergh!). anyone??

    thanks!

    jon.

    posted in technical issues read more
  • jon_oz

    Hi all,

    Anyone ever successfully used a ProFire 2626 with PD?

    http://www.m-audio.com/products/en_us/ProFire2626.html

    I'm thinking about buying one - I do 8+ channel live DSP performance/installations using PD, so it sounds perfect for me. I've used a Presonus FP10 before with no real issues. This looks similar but better quality...

    Love to hear comments if anyone's familiar with this interface.

    Cheers,

    Jon.

    posted in I/O hardware diyread more
  • jon_oz

    just wondering if there's any effective way of opening max/msp patches in pd, or a program that will convert the files...?

    posted in technical issues read more
  • jon_oz

    oops! don't know why that didn't work.
    try this instead:

    http://www.pdpatchrepo.info/hurleur/droidparty_main.pd

    posted in technical issues read more
  • jon_oz

    ...and here's the main test patch:

    posted in technical issues read more
  • jon_oz

    @pamelapopo said:

    Are you talking about Chris' [loadsave] abstraction

    hmmm... i was just looking at the loadsave test patch. haven't really looked at the abstraction behind it yet... one obvious stumbling point could be forgetting to include the creation argument in the [loadsave] object...?

    probably best if you attach your patch for testing.

    posted in tutorials read more
  • jon_oz

    @pamelapopo - it seems to work for me. can you explain the problem more?

    i got it to work by moving the slider to one value (a), then pressing save to save value (a) in a file. then move the slider to another value (b), press load and select the file you just created. after loading the file, the slider is set back to the saved value (a).

    posted in tutorials read more
  • jon_oz

    did i ever mention how amazing i think this forum is?

    thanks everyone - problem solved. i took the list-sort abstraction and vanillified it by sub-patching all the abstractions, and presto! it works in pddroidparty.
    thanks!

    working test patch attached.

    http://www.pdpatchrepo.info/hurleur/droidparty_main.pd

    posted in technical issues read more
  • jon_oz

    @Jwif said:

    I think this could get tricky

    damn straight... *sigh*

    but thanks a lot for the link - that looks at least a bit easier to handle than insertion sorting. i think...

    posted in technical issues read more
  • jon_oz

    oh... sorry jwif. you beat me by a few seconds :)

    posted in technical issues read more
  • jon_oz

    thanks maelstorm.

    hmmm.

    in my old version of pd vanilla (sorry, don't have it here just now - can confirm version later...), the [list-sort] object is not recognised.

    i've also made a test patch (attached) to run in pddroidparty - the unsorted list elements get displayed, but all those downstream of the [list-sort] object don't appear - which suggests to me that [list-sort] isn't part of pddroidparty's vocabulary - vanilla or otherwise.

    the patch works fine on my pc in pd-extended.

    any ideas, anyone?

    http://www.pdpatchrepo.info/hurleur/droidparty_main.pd

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!