• alexandros

    Doesn't [tabread4~] apply cubic interpolation? If you store a ramp to a table, you could use that with [line~] to read through it, couldn't you?

    posted in technical issues read more
  • alexandros

    You can check the [serial_print] abstraction from here https://github.com/alexdrymonitis/Arduino_Pd
    If you print your values in the Arduino code properly (see the help sketch), then in Pd you can use this abstraction with a [send] and get your values with a [receive]. Check the exampes, they should be straight forward.

    posted in technical issues read more
  • alexandros

    You can also check the audiolab library (available on deken; Help -> Find externals). It's a collection of vanilla abstractions. Its pitch shifter might be a bit CPU hungry as it is FFT based, but it's pretty good.

    posted in technical issues read more
  • alexandros

    Since your source is a .wav file, why don't you store the file to an array and use [tabplay] or [tabread4~] to read it in a loop? I'm pretty sure that a [vline~] with a long list will be way more CPU hungry, let alone the complexity needed for something like this.

    posted in patch~ read more
  • alexandros

    @porres The main issue that I see with neural networks is the immense amount of data they need to train properly. Apart from being hard to assemble a proper training dataset, there are all these copyright issues and (un)ethical use of data and AI. But in some cases they can be very useful, like controlling lots of parameters with just a couple of knobs (or the mouse pointer position) or messing with sound with variational autoencoders and their latent space, to transform sound in various ways (check the example of this external where the sinewave is turned into a sawtooth - not very clean, but it's just an example), just a couple examples of their use.
    Still, I do believe that AI and NNs are a hype that evenrually will phase out and will be replaced by something else that will become the new thing.

    posted in extra~ read more
  • alexandros

    @spluta I do have my own project which is an external that enables the creation of neural networks, all written in C from scratch, but I've gone as far as autoencoders, struggling to get it to create variational autoencoders. RTNeural though takes advantage of all the development that has been done in Python packages (the go-to language when it comes to AI), so this external is really nice to have!

    posted in extra~ read more
  • alexandros

    This is a great addition to Pd's AI capabilities! I had thought of creating a Pd external based on RTNeural some time ago, but it was too much for me to handle. I'm grateful you took the initiative and did this! Being able to train NNs in Python and run them natively in Pd opens up a lot of possibilities!

    posted in extra~ read more
  • alexandros

    What OS are you using? I guess you're trying to open a .pd file from inside your system, not inside Pd, right? Your system launches a new Pd instance for some reason. Did you try opening your patches from within Pd with Ctrl+O (or Cmd+O on a mac)?

    posted in technical issues read more
  • alexandros

    @elden I don't think it's very popular. I only remember IOhannes mentioning in on Pd's mailing list. It's just a subdomain of Pd's website, deken.puredata.info, and you can search all of deken (Help -> Find externals) in your browser.

    posted in technical issues read more
  • alexandros

    zexy's [oreceive] is also a dynamic receive. Always worth trying stuff yourself though!

    posted in abstract~ read more
  • alexandros

    That's rather ambitious indeed. I don't believe you'll be able to display the actual patch. Even if you want to only display knobs and other widgets, you'll have to code this interface yourself and control Pd, or have Pd control those, by sending values for these widgets via OSC.
    If I understand what you describe, you want to create a graphical user interface to control a Pd patch, right? If this is so, then what I wrote about holds.
    You could try to find some library (it would probably be Python or C++) that creates widgets for OLED displays, and use that together with OSC, but the API you'll use should support OSC communication.

    posted in technical issues read more
  • alexandros

    A 200ms is probably a bit too long for what you need. 20ms should be OK for avoiding clicks.
    For what you want to do, you probably need two buttons, one for starting and one for early stopping. The second one should first bang a "1, 0 20" message sent to a [line~], then bang a [del 20] object, to delay this bang by 20ms, and the [del 20] should bang a [t b b b] (use as many "b" here as you need) to restart the whole process of playing back a file (including banging the "0, 1 200" message).

    posted in technical issues read more
  • alexandros

    @jyg it hasn't been digitally signed, so I guess that's why you get this error. Can't the object be installed with this error? Otherwise you can get the source and compile yourself https://github.com/alexdrymonitis/neuralnet

    posted in technical issues read more
  • alexandros

    It's just an Multi-Layer Perceptron (MLP) - a dense feed-forward neural network. Each neuron sends its output to all neurons in the next layer. Each neuron in the next layer multiplies its of its inputs by a weight. The weighted inputs are summed and added to a bias value, then passed through the activation function of the layer (e.g. a sigmoid function to ensure everything remains between 0 and 1 and don't go to +/- infinity) and passed to all the neurons in the layer after that.
    It's all in the C code. If you want to learn more about this though (in case you don't know), I recommend the "Neural Networks from Scratch in Python" book, which is where I initially translated Python code to C to create this object.

    posted in technical issues read more
  • alexandros

    [neuralnet] does no FFT. You'll have to do all the FFT and IFFT after you get output from [neuralnet]. This object only enables you to create neural networks. What sort of data you'll use and how you'll prepare it is totally up to you.
    From what I understand from your post, you should probably store your FFT spectra, and classify them according to the amplitude you mention. Then feed them together with the classes you have created to [neuralnet]. Does this make any sense?

    posted in technical issues read more
  • alexandros

    If you are talking about evolution, then it's likely you need something like a recursive neural network (RNN), which [neuralnet] can't create (at least not yet). Unless this evolution you mention can be encapsulated in one snapshot. If it's spectral snapshots with a 256 bin resolution, and you need four of these snapshots to classify your data, then a network with 1024 inputs could worh with [neuralnet].
    The MNIST dataset example (example 4) is a classification example. You should follow that to build your network structure (concerning activation functions, loss function, etc.).
    With the current versino of the object you can also build autoencoders, which can be sort of good for compressing data. That being said, you could perhaps use an autoencoder and map the values in the latent space. The next version will hopefully include variational autoencoders (working on this), so that could also be an option.
    As I don't know the structure of your data though, I don't think I can be of more help right now.

    posted in technical issues read more
  • alexandros

    You can also try [neuralnet] which is built for creating (deep) neural networks.

    posted in technical issues read more
  • alexandros

    How are you trying to open the port with [comport]? Did you send the "devices" message to it to see the available ports and their indexes in Pd's console?

    posted in I/O hardware diyread more
  • alexandros

    Which libraries are these? Perhaps you need to first use [declare -lib libname] before trying to create one of its objects. This concerns single binary file libraries like zexy or Gem.

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!