• cuinjune

    @cipp0 It should be technically possible to create multiple windows in a standalone OF app with ofxOfelia addon by using OF's multi-window trick: https://blog.openframeworks.cc/post/133404337264/openframeworks-090-multi-window-and-ofmainloop But I imagine it won't be an easy task. I think implementing the GUIs in OF and C++ (without Ofelia) for the second window would be easier.

    If you really want to do this, you can also consider drawing the GUIs using Tcl/TK, or using an external that allows you draw images on a Pd canvas to mimic the knob.

    posted in pixel# read more
  • cuinjune

    @cipp0 Hi, that is not possible with Ofelia because you can create only one global OF window per Pd instance. Ofelia is not designed to be used for creating multiple windows applications.

    posted in pixel# read more
  • cuinjune

    @gmoon Hi, in case you have trouble installing Ofelia through Deken, you can also download the compiled external binaries from https://github.com/cuinjune/Ofelia/releases

    posted in technical issues read more
  • cuinjune

    PdWebParty now supports Sliders(vsl, hsl) and Radio Buttons(vradio, hradio).

    Changes:

    • Added Sliders(vsl, hsl) and Radio Buttons(vradio, hradio).
    • Supports reading hex color from the patch content or receiver.
    • Changed comment font size to match Pd-0.51-3 or higher.

    You can try the app from https://pdwebparty.herokuapp.com/

    For more information, visit https://github.com/cuinjune/PdWebParty

    pdwebparty-screenshots.png

    posted in news read more
  • cuinjune

    @ddw_music Hi, Can you upload a simplified patch that doesn't work? Does it happen when you require a variable name using "$1" symbol?

    posted in pixel# read more
  • cuinjune

    @miguellacorte FYI, I built the alpha version of the app I mentioned above, so check it out: https://github.com/cuinjune/PdWebParty

    posted in technical issues read more
  • cuinjune

    Hi everyone,

    I would like to share my recent work PdWebParty which is a web app that allows you to run Pd patches in a web browser and share them with a web link. As the name implies, it is inspired by PdDroidParty and PdParty.

    You can try the app from https://pdwebparty.herokuapp.com/

    For more information, visit https://github.com/cuinjune/PdWebParty

    Currently, the app only supports Bang(bng), Toggle(tgl), Canvas(cnv), and Comment but other GUI objects will be added soon.

    Thanks!

    screenshots.png

    posted in news read more
  • cuinjune

    @miguellacorte Yes, I tried WebPD a while ago but as I recall there were quite a few vanilla objects that are not supported, but it might be your option if your project can be done with the objects it supports. And it will be easier to setup than the projects I mentioned above.

    posted in technical issues read more
  • cuinjune

    Hi, I think you can take a look at https://mathr.co.uk/empd/ to compile Pd to Javascript and Web Assembly.

    There's also Purr Data on the Web:


    but it's in alpha stage and still in development so I would say it's not really ready to be used. But you can try the demo and learn about it from https://git.purrdata.net/jwilkes/purr-data/-/tree/emscripten/emscripten/project/purr-data

    I'm planning to build something like PdParty / PdDroidParty for the web browser in a few weeks.
    It will allow the user to drag and drop a patch onto the webpage to load the patch and share the patch using the URL with the patch data appended. If this is successfully done, I will post it here and you could probably use it for your project. But you will still need to use Javascript to gather such data and use it as an input for a patch.

    posted in technical issues read more
  • cuinjune

    @cuinjune Nevermind, I got an answer to my question from @alexandros
    He said I simply need to add [declare -path ofelia/abs] to patches so the listener objects can be created as abstractions.

    posted in pixel# read more
  • cuinjune

    This patch should work as expected: ofelia.movie.pd

    The problem is in [ofelia.movie]'s M.pointer(p) and M.bang() functions.

    You need to call videoplayer:unbind() to unbind the video texture after it is being bound to the cube.

    But return videoplayer; will output a value and end the function immediately so you need to use the Ofelia's built-in ofOutlet() class to output a value without ending the function.

    So you can create an outlet variable with local outlet = ofOutlet(this);

    And then use it in these functions to output a value:

    function M.pointer(p);
    videoplayer:update();
    videoplayer:bind();
    outlet:outletPointer(0, videoplayer);
    videoplayer:unbind();
    end;
    
    function M.bang();
    videoplayer:update();
    videoplayer:bind();
    outlet:outletPointer(0, videoplayer);
    videoplayer:unbind();
    end;
    

    The first argument of outletPointer() specifies the index of outlet, and the second is the value to output.

    Now, whenever it binds the video texture to a cube (or other shapes), it will unbind it.

    I hope this helps.

    posted in pixel# read more
  • cuinjune

    @60hz Hi, I just found this. Thanks for the amazing work!
    I tried your patches and they work fine with Ofelia v3 but not with the latest v4.

    Do you have one that works with v4? If not, do I need to just replace the listener objects (e.g. [ofDraw]) with the abstractions in v4? Any tips on how I can make your abstractions also work in v4?

    posted in pixel# read more
  • cuinjune

    Hi, Ofelia v4.0.0 is now available on Deken.

    Changes:

    • removed all embedded objects
    • updated Pd source files to Pd-0.51-0
    • removed ofxJSON, ofxJsonSettings, ofxOsc, ofxReverb, and ofxZipPass addons
    • rebuilt using openFrameworks 0.11.0
    • updated abstractions and examples

    For more information, visit https://github.com/cuinjune/Ofelia
    Thanks!

    Logo.png
    Iteration.png
    GLSL.png

    posted in news read more
  • cuinjune

    @cuinjune Adding the [vline~] at the end produced a clean square waveform sound. Thank you!

    answer.png

    posted in technical issues read more
  • cuinjune

    Hi, I have a silly question.

    Let's say I'm receiving 1 and -1 alternately from outside of Pd which changes fast. (e.g. 2ms)

    How can I reliably translate them to audio in Pd so I can hear the square waveform sound?

    test.png

    posted in technical issues read more
  • cuinjune

    @Jona Hi man, sorry for the late reply and thanks for sharing your GUI work and example you ported.

    I'm glad you found out the way to make your abstractions work.

    However, in my chrome browser, the audio was glitchy so I changed const int ticksPerBuffer = 8; to const int ticksPerBuffer = 32; and now it seems to work fine. I also updated this in Ofelia Github repo: https://github.com/cuinjune/Ofelia/commit/b4b0b11872574eb1046e3b15cc9011982559ad42

    Could you please update the ofelia3_toggle_slider_osc_lis_abstractions.zip patch in your original post and also, rebuild the project using const int ticksPerBuffer = 32; and update files in http://puredata.handmadeproductions.de/?

    I'm not sure if I can make MIDI work in the browser or not. I will have to try different things or ask people around.

    posted in abstract~ read more
  • cuinjune

    You can now run Ofelia patches in your web browser using Emscripten.

    Here are the instructions if you're interested: https://github.com/cuinjune/ofxOfelia#running-the-emscripten-example-in-a-web-browser


    GitHub repo: https://github.com/cuinjune/ofxOfelia
    User group: https://www.facebook.com/groups/ofeliausers


    Emscripten.png

    posted in news read more
  • cuinjune

    Hi, Ofelia v3.0.1 is now available on Deken.

    Changes:

    • Added more examples (3d, drawing, math..)
    • Fixed type checking issue in "ofxOfeliaPdBindings.i"
    • Fixed bug when outputting a table with a string key using ofOutlet()
    • ofArray's array elements can be accessed using square brackets

    Thanks!
    screenshot.png

    posted in news read more
  • cuinjune

    Here's the patch: test.pd

    Screen Shot 2019-08-25 at 4.24.49 PM.png

    posted in technical issues read more
  • cuinjune

    @Jona Yes, M is just an alias for ofelia module table.

    The actual full script that runs in Lua when you create [ofelia define foo] object is like the following:

     local name = "foo"
     package.preload[name] = nil
     package.loaded[name] = nil
     package.preload[name] = function(this)
     local ofelia = {}
     local M = ofelia
    -- Your written script will be here. 
     return M
     end
    

    And sending the 'bang' message to this object will run the following script:

    local m = require("foo")
    if type(m.bang) == "function" then
      return m:bang() -- the object will output the returned value through its outlet
    end
    

    I added M since it's easier to write and the script can be shorter. Also, M is commonly used in Lua as a variable name for a module table.

    Therefore, you should not reassign anything to M or ofelia in almost any case since it can be problematic.

    posted in patch~ read more
Internal error.

Oops! Looks like something went wrong!