Skip to content

Releases: porres/pd-else

12th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial)

24 Sep 19:19
Compare
Choose a tag to compare

12th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

This library/tutorial pack version needs at least Pd version 0.55-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc12/README.md for more details (also available as a PDF in the download). You can also download ELSE directly via Pd (in Help => Find Externals). You can also download the latest hardcode bleeding edge from github actions for the main platforms.

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc12! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("Release Candidate" phase at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.


RELEASE NOTES:

Hi, it's been almost 8 months without an update and I never took this long!!! So there's a lot of new stuff to cover, because it's not I've been just sleeping around ;)  

The reason for the delay is that I'm trying to pair up with the release cycles of PlugData and we're having trouble syncing up. PlugData 0.9.0 came out recently after a delay of 6 months and we couldn't really sync and pair up then... we had no luck in syncing for a new update now, so now I'm just wrapping it up cause enough is enough, and hopefully in the next plugdata release we can sync and offer the same version. Nonetheless, as usual, I'm always in the middle of adding more things that will just have to wait.

First, as promised by me, support for double precision is now supported and provided!!! Let me know if you have issues... 

And now for the biggest announcement: I'm finally and officially releasing a new pack as a submodule, which is a set of abstractions inspired by EuroRack Modules, so I'm thinking of VCV like things but into the Pd paradigm. Some similar stuff has been made for Pd over the years, most notably and famously "Automatonism", but I'm really proud of what I'm offering. I'm not trying to pretend Pd is a modular rack and I'm taking advantage of being in Pd. I'm naming this submodule "Modular EuroRacks Dancing Along" (M.E.R.D.A) and I've been working on it for a year and a half now (amongst many other things I do). PlugData has been offering this for a while now, by the way. Not really fully in sync though.

MERDA modules are polyphonic, thanks to multichannel connections. There are 20 modules so far and some are quite high level. I'm offering a PLAITS module based on the Mutable Instruments version. I have a 6-Op Phase Modulation module. A "Gendyn" module which is pretty cool. I'm also including an "extra" module that is not really quite a modular thing at all but fits well called "brane", which was a vanilla patch I first wrote like 15 years ago and is a cool granular live sampler and harmonizer. You'll also find the basics, like oscillators, filters, ADSR envelope and stuff I'm still working on. Lastly, a cool thing is that it has a nice presets system that still needs more work but is doing the job so far. 

There are ideas and plans to add hundreds more MERDA modules, let's see when and if I can. People can collaborate and help me and create modules that follow the template by the way ;)

Thanks to Tim Schoen, [play.file~] is now a compiled object instead of an abstraction and it supports MP3, FLAC, WAV, AIF, AAC, OGG & OPUS audio file extensions. A new [sfload] object can import these files into arrays (but still needs lots of more work). There are many other player objects in ELSE that can load and play samples but these don't yet support these new formats (hang in there for the next version update).

Tim also worked on new [pdlink] and [pdlink~] objects, which send control and signal data to/from Pd instances, versions and even forks of Pure Data (it's like [send]/[receive] and [send~]/[receive~], all you need is a symbol, no complicated network or OSC configuration!). And yes, it works via UDP between different computers on the same network. And hell yeah, [pdlink~] has multichannel connections support! By the way, you can also communicate to a [pd~] subprocess. This will be part of ELSE and PlugData of course, and will allow easy communication between PlugData and Pd-Vanilla for instance.

The great pd-lib-build system has been replaced for a 'cmake' build process called 'pd.build' by Pierre Guillot. This simplifies things and had to be done as it all got too complex. Also, the [sfont~] object was a nightmare to build and with several dependencies that was simply hell to manage, now we have a new and much simpler system and NO DEPENDENCIES AT ALL!!! Some very rare file formats with obscure and seldom sound file extensions may not work though... (and I don't care, most and the 'sane' ones will work). The object now also dumps all preset information with a new message and backwards compatibility broke a bit :(

I'm now back to offering a modified version of [pdlua] as part of ELSE, which has recently seen major upgrades by Tim to support graphics and signals! This is currently needed in ELSE to provide a new version of [circle] that needed to be rewritten in lua so it'd look the same in PlugData. Ideally I'd hope I could only offer compiled GUI objects, but... the lua loader works by just loading the ELSE library, no need for anything "else". I'm not providing the actual [pdlua] and [pdluax] objects as they are not necessary, and this is basically the only modification. 

Since PlugData provides support for externals in lua, if you load ELSE you can make use of stuff made for PlugData with lua without the need to install [pdlua] in Pd-Vanilla. For next, we're working on a [lua] object that will allow inline scripting and will also work for audio signals (again, wait for the next version)! Also for the next version, I'm saving Ben Wesch's nice 3d oscilloscope made in lua (it'll be called [scope3d~]). There's a lot going on with the lua development, which is very exciting.

As for more actual new objects I'm including, we have [vcf2~] and [damp.osc~]. The first is a complex one pole resonant filter that provides a damping oscillation for a ringing time you can set, the next is an oscillator based on it. There's also the new [velvet~] object, a cool and multichannel velvet noise generator that you can also adjust to morph into white noise.

I wasn't able to add multichannel capabilities to many existing objects in ELSE in this one, just a couple of them ([cosine~] and [pimp~]). Total number of objects that are multichannel aware now are: 92! This is almost a third of the number of audio objects in ELSE. I think that a bit over half might be a reasonably desired target. More multichannel support for existing objects to come in the next releases.

Total number of objects in the ELSE library is now 551!

As for the Live Electronics tutorial, as usual, there are new examples for new objects, and I made a good revision of the advanced filter section, where I added many examples to better explain how [slop~] works, with equivalent [fexpr~] implementations.

Total number of examples in the Live Electronics Tutorial is now 528!

There are more details of course, and breaking changes as usual, but these are the highlights! For a full changelog, check https://github.com/porres/pd-else/releases/tag/v.1.0-rc12

Unfortunately, ELSE RC12 is not yet fully merged, paired up and 100% synced in PlugData. Hopefully it will all be there and working fine soon in its next update. PlugData is now at version 0.9.1, reaching the 1.0 version soon. Since ELSE is currently so tightly synced to the development of PlugData, the idea is to finally offer a final 1.0 version of ELSE when PlugData 1.0 is out. Hence, it's getting closer than ever :)

Please support me on Patreon https://www.patreon.com/porres
You can follow me on instagram as well if you like... I'm always posting Pd development stuff over there https://www.instagram.com/alexandre.torres.porres/

cheers


CHANGELOG:

LIBRARY:

Breaking changes:

  • [oscope~] renamed to [scope~]
  • [plaits~] changed inlet order of modulation inputs and some method/flags name. If a MIDI pitch of 0 or less input is given, it becomes a '0hz'.
  • [gbman~] changed signal output range, it is now filtered to remove DC and rescaled to a sane -1 to 1 audio range.
  • [dust~] and [dust2~] go now up to the sample rate and become white noise (removed restriction that forced actual impulses, that is, no conscutive non zero values)
  • [cmul~] object removed (this was only used in the old conv~ abstraction to try and reduce a bit the terrible CPU load)
  • [findfile] object removed (use vanilla's [file which] now that it has been updated in Pd 0.55-0)
  • [voices] swapped retrig modes 0 and 1, 'voices' renamed to 'n', now it always changes voice number by default as in [poly] (this was already happening unintentionally as a bug when one voice was already taken). The 'split' mode was removed (just use [route], will you?)
  • [voices~] was also affected by changes ...
Read more

11th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

05 Feb 18:06
Compare
Choose a tag to compare

11th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

This library/tutorial pack version needs at least Pd version 0.54-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc11/README.md for more details (also available as a PDF in the download). You can also download ELSE directly via Pd (in Help => Find Externals). You can also download the latest hardcode bleeding edge from github actions for the main platforms.

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc11! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("Release Candidate" phase at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.


CHANGELOG:

LIBRARY:

Breaking changes:

  • [pan8~] removed, use the new [pan~] object now
  • [autofade~] and [autofade2~], changed inlet order, gate is now the rightmost, for consistency. Removed status output cause that was kinda really stupid. Fade-in/out work better now by the way.
  • [xgate2~], [xselect2~] big redesign, almost new objects, also changed inlet order for consistency and stuff
  • [rec.file~] also changed inlet order, removed 1st control input, for consistency and stuff as well, no more toggle input though
  • [tabwriter~] changed inlet order, gate is now the rightmost, for consistency. Changed some flags.
  • [mtx~] removed dump outlet, 'fade' renamed to 'ramp', gain input is now not just on and off
  • [mtx.ctl] changed output for export message
  • [note2pitch] and [pitch2note] renamed to [note2midi] and [midi2note]
  • [note2dur] renamed to [notedur2ratio]
  • [canvas.file] renamed to [findfile] (this object will quite likely be removed anyway as soon as Pd's [file which] is updated in Pd, so forget about it already...)
  • [noisegate~] added release time in ms
  • [wavetable~] and [bl.wavetable~] removed 'offset' and 'size'
  • [conv~] swapped args order

Enhancements/fixes/other changes:

  • [plaits~] added attenuverters and sig modulation inputs, making it fully functional at last, documentation revised.
  • fix crash of some objects in arm mac: [lfnoise~], [dust~], [dust2~], [rand.f~], [rand.i~], [pgm.in] and [ptouch.in] (these last two got fix by unkown reasons).
  • [midi.learn] fixed (it wasn't working at all)
  • [xfade~] and [xfade.mc~] added linear crossfading
  • [xgate2~] added spread parameter and allow crossfading to silence when out of range
  • [xselect2~] has a new spread parameter and is now either circular or crossfades to silence when out of range.
  • [xgate.mc~] can now also route more than one channel and can now set number of out channels as a message as well
  • [xselect.mc~] can now also set -n flag as a message
  • [spread~] and [spread.mc~] added spread parameter
  • [mtx~] added gain value so you can connect knobs, added print message.
  • [mtx.ctl] and [drum.seq] fixed embed bugs
  • [knob] fixed flags issues, a tcl/tk error and outline is now on by default
  • [numbox~] fixed 'init' value in properties
  • [rand.f~] fixed range bug
  • [sine~], [impulse~], added 'set' message to set a single frequency channel
  • [autotune], [autotune2], [retune], added support for lists
  • [note2midi] and [midi2note] added support for quarter tones
  • [keyboard] added 'show' and 'play' methods
  • [chance~] now has a list method and a 2nd inlet for 1 arg and it all works like [chance] now
  • [wavetable~] added slice parameter and inlet for crossfading between slices.
  • [gendyn~] added signal input for center freq in hz, added 'bw' and 'cents' methods.
  • [op] added support for lists in 2nd inlet
  • [openfile] fixed bug not opening files in the current folder
  • [sequencer], set message now works when [sequencer] is initialized without arguments, and sequence defults to 0 now.
  • [crusher~] added support for signal input in secondary inlets
  • [quantizer~], [fold~] and [wrap2~] added signal support (and also multichannel support) for secondary inlets
  • [tabwriter~] added index mode to set index to record to with a signal
  • [midi.in] fixed ext message/flag
  • fixed memory leak and allocation in several objects
  • [bend.out], [ctl.out], [note.out], [pgm.out], [ptouch.out], [touch.out], [midi.out], added '-ext' flag/message
  • added MC awareness and capabilities to [fader~], [pan2~], [pan4~], [mix2~], [balance~] and [mix4~]
  • 10 new objects: [wt2d~], [pan~], [pan.mc~], [autofade.mc~], [autofade2.mc~], [xgate2.mc~], [xselect2.mc~], [mtx.mc~], [abs.pd~] and [sendmidi]

Objects count: total of 527 (285 signal objects [82 of which are MC aware] and 242 control objects)!

  • 307 coded objects (200 signal objects / 107 control objects)
  • 220 abstractions (85 signal objects / 135 control objects)

TUTORIAL:

  • New examples and revisions to add the new objects, features and breaking changes in ELSE.
  • New chapter on Wavetable Synthesis (with wavetable scanning, vector synthesis and stuff).
  • Revision and improvement of panning/routing section. Explanation about 'spread' in routing objects.
  • Total number of examples is now 515!

10th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

08 Nov 04:44
Compare
Choose a tag to compare

10th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

This library/tutorial pack version needs at least Pd version 0.54-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc10/README.md for more details (also available as a PDF in the download). You can also download ELSE directly via Pd (in Help => Find Externals). You can also download the latest hardcode bleeding edge from github actions for the main platforms.

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc10! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.


CHANGELOG:

LIBRARY:

Breaking changes:

  • [pmosc~] renamed to [pm~], mod freq is now 'ratio' of carrier
  • [rms~], [mov.rms~] and [peak~], new 'lin' method instead of old ones, -lin flag instead of -db and now default is 'db'
  • [fbsine~] default now is filter on
  • [conv~] is now a compiled object that behaves differently (taking arrays instead of IR audio files)
  • [plaits~]: changed behaviour of trigger mode, now it needs to be active to get audio trigger impulses, there's not a bang input anymore. Also, now you need to use a new 'level' method or flag to activate the rightmost input.
  • [pluck~] first 2 inlets inlets swapped back again (yikes), bang trigger and 'gate' message removed, I hope I finally get this right, no other object wen theough so many braeaking changes.
  • [adsr~] and [envgen~]: added a new second inlet to retrigger the envelope with impulses.
  • deleted [osc.mc~], [imp.mc~], [stepnoise.mc~] and [rampnoise.mc~], use [sine~] and [imp~] for multichannel now and hang on for the others.
  • [note.in]/[note.out] big redesign, changed behaviour of '-rel' flag and added '-both' flag, it now also listens to and send data connected MIDI devices.
  • [touch.in], [ptouch.in], [bend.in], [pgm.in], [touch.out], [ptouch.out], [bend.out], [pgm.out] now also listens to and send data to connected MIDI devices.

Enhancements/fixes/other changes:

  • fixed some errors in the object browser plugin
  • [adsr~] fixed 'lin' message
  • [maxpeak~] added 'lin' method
  • [loadbanger] added '-fin' flag
  • [knob] and [numbox~] allow min value greater than max, renamed min/max to lower/upper
  • Improved peak metering for [meter~], meter2~], [meter4~] and [meter8~]
  • Added MC support to [sine~], [impulse~], [cosine~], [fbsine~], [pm~] and [adsr~].
  • Added internal wavetable lookup instead of trig functions for [sine~], [cosine~], [fbsine~], [pm~], [sin~] and more stuff (improves efficiency and accuracy).
  • [mono] fixed flush and clear messages.
  • [pm~] added a ratio flag.
  • [conv~] is now a compiled object, which is way more efficient, and the old version wasn't working at all for ages anyway.
  • [gain~], [gain2~] added MIDI 'learn' and 'forget' features.
  • [out~] can now take mc input but sums it up.
  • [keypress] fixed toggle flag and a bug where it'd zero the output if another key was pressed.
  • [keymap] fixed initialization, added toggle mode to deal with hardware restrictions for polyphony.
  • [note] fixed 'set' message at loadbang.
  • [midi.in] and midi.out] added noteoff support
  • [pluck~] added new list mode to connect directly to a note on message and support for midi pitch input
  • [plaits~]: added new list mode to connect directly to a note on/off messages, fixed some wrong information and improved the documentation considerably
  • [impulse~]: added 'midi' support and soft sync.
  • [note.in]/[note.out], [touch.in], [ptouch.in], [bend.in], [pgm.in], [midi.in], added 'ext' message and flag to force only listening to external input.
  • 12 new objects: [list.inc], [list.seq], [dispatch], [var], [mono~], [nop~], [send2~], [fm~], [pm2~], [pm4~], [pm6~] and [circuit~].

Objects count: total of 518 (277 signal objects [70 of which are MC aware] and 241 control objects)!

  • 299 coded objects (192 signal objects / 107 control objects)
  • 219 abstractions (85 signal objects / 134 control objects)

TUTORIAL:

  • New examples and revisions to add the new objects and breaking changes in ELSE.
  • Total number of examples is now 508!

9th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

01 Sep 17:14
Compare
Choose a tag to compare

9th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

This library/tutorial pack version needs at least Pd version 0.54-0 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc9/README.md for more details (also available as a PDF in the download). You can also download ELSE directly via Pd (in Help => Find Externals). You can also download the latest hardcode bleeding edge from github actions for the main platforms.

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc9! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.


CHANGELOG:

LIBRARY:

Breaking changes:

  • [voices] has been rather drastically redesigned! The "-list" flag was removed as this is now the default mode, use "-split" flag for the old default mode. The retrigger modes were also swapped (the default now is the old "mode 1" (now mode 0). Old mode 0 is now mode 2)! The secondary inlets were removed and it now takes only list messages.
  • [out1~] removed, use [out.mc~] instead now.
  • [pluck~] float input is now in the 0-127 range.
  • [oscbank~], [oscbank2~], [bpbank~], [resonbank~] and [resonbank2~] removed args for setting the size, list input sets number of oscillators and filters currently.
  • [touch.in] and [touch.out], poly flag removed, use the new [ptouch.in] and [ptouch.out] objects now
  • [note.in] and [note.out], "-rel" flag now has a swapped order of output and [note.in] now outputs lists
  • [makenote2] extra Note On parameters are now clipped and not output
  • [order] only takes list messages now (no more "anythings") and is a compiled object now (which doesn't break anything but hey, that changed).
  • [sin~] doesn't take float input anymore; [crusher~], [quantizer~], [fold~] and [wrap2~] no more signal inputs for secondary inlets, only floats.
  • [knob] 'init' message removed, now you have 'load' (a bit similar)... and now this value is not the 'arc start' anymore.
  • [numbox~] 'init' message removed, now you have 'load' (a bit similar).
  • [function], [slider2d], [circle], [gain~], [gain2~] and [multi.vsl] got 'init' removed and 'savestate' included instead (a bit similar).
  • [plaits~] removed "voct" setting, default for harmonics, timbre and morph is now 0.5.

Enhancements/fixes/other changes:

  • Improved license by now offering a text with multiple licenses
  • The object browser has been fixed for Pd 0.54-0! There's also an extra object browser entry for Vanilla objects as well (hopefully this one gets integrated into Vanilla itself). Also, fixed loading abstractions with loadbangs
  • Added MC (multichannel connection) support for some objects (very few gained it out of the box for being abstractions, lke [gain~]), they are: [ceil~], [floor~], [rint~], [trunc~], [sin~], [cents2ratio~], [ratio2cents~], [db2lin~], [lin2db~] (now a compiled object), [gain~], [samps2ms~], [ms2samps~], [mag~], [pol2car~]/[car2pol~] (now compiled objects), [bitnormal~], [op~], [sig2float~], [float2sig~] (now an abstraction), [rescale~], [fold~], [wrap2~], [quantizer~], [dust~], [dust2~], [oscbank~], [oscbank2~], [bpbank~], [resonbank~], [resonbank2~], [slew~], [slew2~], [glide~], [glide2~], [lag~], [lag2~], [rand.i~], [rand.f~], [meter2~], [meter4~], [meter8~] and [xgate~].
  • [knob] and [numbox~], use alt+click instead of double click to restore initial value
  • [knob] fixed loading send and receive names with dollar signs. Added 'start' message to set arc start independently
  • [decay2~] and [resonant2~] fixed cases where NaN was output.
  • [resonbank2~], fixed it cas this was actually just like [resonbank~], damn... also added new methods.
  • added "not" operation (!) to [op] and [op~].
  • [adsr~] and [asr~] fixed 2nd outlet in log mode, added "gate" message.
  • [pluck~] added "gate" message.
  • [stepnoise~], [rampnoise~] and [lfnoise~] fixed seed flag
  • [stepnoise~] and [rampnoise~] fixed loading hz argument when there's a 'seed' flag.
  • [rescale] and [rescale~] fixed bug when first argument is higher then the second
  • [slider2d] and [circle], fixed "init", shipping for macs and "-range" flag.
  • [rand.f] and [rand.i] can now output lists as well.
  • [makenote2] now allows more complex note off messages with extra arguments.
  • [voices] fixed some issues with the "release time" and repeated or new notes. The list input is now more flexible and can take arbitrary Note On and Note Off information lists as given by [makenote2]. Anything messages now allowed and routed to allocated voices if the pitch matches the first element.
  • [display]: added '-noflash' flag.
  • [receiver] added a first optional depth argument to expand dollar signs in receive names according to the parent's dollar values. With this it makes it easier to send values to receive symbols in a parent patch.
  • fix [ctl.in] control number filtering
  • [giga.rev~] fixes a crash with room size = 0
  • [plaits~] fixed some crashing bugs. Added 8 new synthesis modes based on firmware 1.2! Improved and updated the help file including a new manual.
  • [dir] can now expand "~" as the "HOME" directory.
  • [keymap] fixed 'oct' message and added arg to set 'oct'
  • 33 new objects: [osc.mc~], [imp.mc~], [rampnoise.mc~], [stepnoise.mc~] (these first 4 might be deleted soon), [keypress], [remove], [equal], [nchs~], [get~], [pick~], [repeat~], [sum~], [merge~], [unmerge~], [slice~], [sigs~], [out.mc~], [rotate.mc~], [spread.mc~], [xfade.mc~], [select~], [xselect.mc~], [xgate.mc~], [phaseseq~], [oscnoise~], [sender], [ptouch.in], [ptouch.out], [midi.in], [midi.out], [synth~], [voices~] and [sfz~].

Objects count: total of 509 (273 signal objects and 236 control objects)!

  • 291 coded objects (186 signal objects / 105 control objects)
  • 218 abstractions (87 signal objects / 131 control objects)

TUTORIAL:

  • Revision of Quickstart chapter with new info on MC connections.
  • New examples and revisions to add the new objects in ELSE. Total number of examples is now 509!

8th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

16 May 17:47
Compare
Choose a tag to compare

8th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

Objects count: total of 477 (248 signal objects and 230 control objects)!

  • 268 coded objects (166 signal objects / 102 control objects)
  • 209 abstractions (82 signal objects / 127 control objects)

This library/tutorial pack version needs at least Pd version 0.53-2 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc8/README.md for more details (also available as a PDF in the download). You can also download ELSE directly via Pd (in Help => Find Externals). You can also download the latest hardcode bleeding edge from github actions for the main platforms.

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc8! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.


CHANGELOG:

LIBRARY:

Breaking changes:

  • [rdelay~] renamed to [revdelay~]
  • [rescale]/[rescale~] drastic changes have been made to these objects, kind of a new one altogether, changed arguments, flags and now it always only has 2 inlets.
  • [hz2rad]/[rad2hz] removed argument, set and bang method.
  • [canvas.name] no more '-w' flag as it is now the default and only option.
  • [numbox~] 'set' method renamed to 'init', input values are now clipped to min/max range

Enhancements/fixes:

  • There's now a browser tcl/tk plugin for browsing ELSE's object and adding them to your patch when right clicking anywhere on a patch. In order for it to work, the 'else' folder needs to be added to the search paths in Preferences-->Path.
  • Added "github actions" to compile for 64 bits linux, windows and mac (no apple silicon yet). This means people can easily download a build for the latest hardcore bleeding edge version on the master repository.
  • [else] Fixed the warning to say that the Live-Electronics-Tutorial is part of the downloaded package. The object was also simplified to not print info all the time and the argument was removed.
  • [rad2hz] fixed result output.
  • [rescale]/[rescale~] fixed clip mode when range is inverted, added log mode.
  • [dir] open message without a symbol opens the directory where the binary resides
  • [fbdelay~] fixed regression bug from rc5 where this was blowing up
  • [openfile] now opens files from search paths, not only in the patch's directory
  • [numbox~] implemented a new double click feature that sets to the 'init' value and fixed a zooming issue.
  • [keyboard] fixed zooming issues.
  • [button] added toggle/bang mode, bang/float/set messages.
  • [note] fixed setting receive name from properties and loading receive flag.
  • [plaits~] fixed parameter's out of range issues and added a binary that actually works for M1.
  • [sfont~] fixed compilation and binary for Linux Manjaro.
  • [graph~]/[spectrograph~] do not allow mouse clicks on arrays no more.
  • [canvas.mouse] A third argument allows output even in edit mode.
  • [ramp~] fixed crash when min is higher than max.
  • [note2pitch] fixed regression bug from rc7 where output was just wrong most of the times.
  • 2 new objects for a total of 477: [knob] (yay, finally a knob) and [filterdelay~].

TUTORIAL:

  • new example about [filterdelay~]
  • Total number of examples is now 500!!!

7th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

03 Mar 00:23
caf2fdf
Compare
Choose a tag to compare

7th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

Objects count: total of 475 (247 signal and 228 control objects)!

This library/tutorial pack version needs at least Pd version 0.53-2 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc6/README.md for more details and an object list (separated into categories)! The readme is also available as a PDF in the download. You can also download ELSE directly via Pd (in Help => Find Externals).

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc7! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.

See also Plugdata, a fork of Pd that runs as a plugin and comes with ELSE: https://github.com/plugdata-team/plugdata


CHANGELOG:

LIBRARY:

Breaking changes:

  • [adsr~]/[asr~] default values now are 10 10 1 10 for [adsr~] and '10 10' for [asr~], default is now 'log', and log message flag now removed for a new 'lin' method. Float input is now in the MIDI velocity range.
  • Removed [pdlua]/[pdluax], I couldn't do anything good with it or change its design, ideally I could include a new lua scripting object with a similar design than ofelia's

Enhancements/fixes:

  • fixed output range for rand.i / rand.i~
  • [midi.learn] added 'teach' message
  • [canvas.active] a new -name now reports window name.
  • [(bl.)wavetable~], fixed linear interpolation / added size/offset messages so you can select portions of a wavetable.
  • added midi frequency input and soft sync to: [pimp~], [sine~], [cosine~], [bl.saw~], [bl.saw2~], [bl.vsaw~], [bl.square~], [bl.tri~], [blip~], [bl.osc~], [wavetable~] and [bl.wavetable~] - added only midi frequency input to [bl.imp~] and [bl.imp2~].
  • [else] 2nd and 3rd outlet that tells us the Pd and Pd-fork version
  • [note2pitch] fixed symbol input for negative octaves
  • [tabplayer~] fixed bang output
  • [mtx.ctl] fixed many thingies like arguments management and resizing
  • [numbox~] fixed bugs in handling settings via properties windows.
  • [detect~] fixed bpm output.
  • [bicoeff] fixed initialization and dim message/args; allow saving changes; plus more improvements under the hood.
  • 4 new objects for a total of 475: [beat~], [plaits~], [keycode] and [keymap].

TUTORIAL:

  • Updates for new else stuff like soft sync in oscillators, exponential FM using built in midi pitch in oscillators, an example for the [beat~] object. Also, new pd 0.54 stuff not yet released (I know), like [send~] being able to deal with block size of 1!
  • New subsection on 'CV' in chapter 18
  • Total number of examples is now 498

6th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

10 Jan 14:25
Compare
Choose a tag to compare

6th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

Objects count: total of 473 (245 signal and 228 control objects)!

This library/tutorial pack version needs at least Pd version 0.53-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc6/README.md for more details and an object list (separated into categories)! The readme is also available as a PDF in the download. You can also download ELSE directly via Pd (in Help => Find Externals).

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc6! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.

See also ELSE compiled to run inside Camomile so you can build VSTs: https://github.com/porres/Camomile-ELSE/releases


CHANGELOG:

LIBRARY:

Breaking changes:

  • [scales] - removed 3rd outlet (no more 'cents' output), 2nd outlet also removed (a new message changes the mode to output midi pitches instead).
  • [pipe2], this is now a compiled object and you there's no more 'clear'/'flush' messages.
  • deleted [gui] object (never liked it and it was a request by someone who's not really using it)

Enhancements/fixes:

  • [pipe2] fixed time management bug.
  • [eqdiv] fixed loading arguments.
  • [resonbank~]: added 'decayall'/'ampall' messages/flags.
  • 8 new objects for a total of 473: [sclae2freq], [osc.route], [osc.parse], [osc.format], [osc.send], [osc.receive], [pdlua] and [pdluax] (these aren't really part of ELSE but were included [version 0.11.1]).

TUTORIAL:

  • Updated OSC section, total number of examples is now 494.

5th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

17 Dec 16:11
Compare
Choose a tag to compare

5th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

Objects count: total of 466 (245 signal and 221 control objects)!

This library/tutorial pack version needs at least Pd version 0.53-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc5/README.md for more details and an object list (separated into categories)! The readme is also available as a PDF in the download. You can also download ELSE directly via Pd (in Help => Find Externals).

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc5! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.

See also ELSE compiled to run inside Camomile so you can build VSTs: https://github.com/porres/Camomile-ELSE/releases


CHANGELOG:

LIBRARY:

Breaking changes:

  • newly included [rand.d] renamed to [rand.dist]
  • [oscope~]: removed 'drawstyle' mode.
  • [messbox] renamed 'size' message to 'dim', removed undocumented resizing handle (wasn't working well either)
  • [table~] object removed, use [tabreader~] instead which is basically the same thing.
  • [tabplayer~]/[wavetable~]/[del~]/[ffdelay~]/[fbdelay~]/[shaper~] changed default interpolator to spline.

Enhancements/fixes:

  • [numbox~] fixed loading properties window.
  • [keyboard] fixed display in GOP.
  • [oscope~] fixed resizing with handle.
  • [pic]/[pad]/[button]/[keyboard] fixed zooming issues.
  • [messbox]/[bicoeff] added zoom.
  • [rand.i]/[rand.i~] fixed range for negative values.
  • [rand.hist] fixed list input when not in unrepeated mode and clear message.
  • [tabgen] removed stupid cyclone dependency & allow commands as args.
  • [wavetable~] new interpolation modes.
  • [scala] fix loading certain files.
  • [spread] now takes lists, which allows 'keyboard split'.
  • 3 new objects for a total of 466: [tabreader], [tabreader~] and [gendyn~].

TUTORIAL:

  • new examples for newly added objects and a rewritten section with more interpolation modes from tabreader/tabreader~
  • new chapter (21) on "Basic-Signal-Analysis"
  • new chapter (38) for "stochastic synthesis" (this one is basically nothing now but the plan is to improve it with a patch implementation of gendyn~ not to mention add other chapters in this part of "advanced synthesis")
  • Total number of examples is now 492

4th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial)

12 Oct 22:32
Compare
Choose a tag to compare

4th Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial)

Objects count: total of 464 (244 signal and 220 control objects)!

This library/tutorial pack version needs at least Pd version 0.52-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc3/README.md for more details and an object list (separated into categories)! The readme is also available as a PDF in the download. You can also download ELSE directly via Pd (in Help => Find Externals).

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc4! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.

See also ELSE compiled to run inside Camomile so you can build VSTs: https://github.com/porres/Camomile-ELSE/releases


CHANGELOG:

LIBRARY:

Breaking changes:

  • swapped rightmost inlets for [polymetro] and [polymetro~] (they were in a different order than the arguments)
  • [rand.f]/[rand.f~]/[rand.i]/[rand.i~] - changed and simplified arguments to just take min/max values (also fixed issues/bugs in loading arguments in some of them).
  • [rand.seq] removed, use now the new [rand.hist] object instead, which is quite similar (in a sense it's like the object has been renamed)
  • [chance] removed index mode (use [rand.hist] instead).

Enhancements/fixes:

  • [button]: fixed drawing outlet when zoomed
  • [wrap2]/[fold]: fixed repeated output.
  • [swap2]: fixed left input.
  • [xmod~]: fixed '-pm' flag.
  • [canvas.file]: takes now anythings (this also fixes 'open' message to [play.file~])
  • [oscope~]: fixed zooming and resizing issues plus other minor cosmetic details. Added outline. Added undo.
  • [numbox~]: fixed zooming bugs.
  • fixed [limit] input for float and symbol (by consequence fixing granulator abstractions like [grain.synth~]).
  • [stepnoise~] fixed loading frequency argument as a float (not an int).
  • [note]: We finally have a decent properties window (thanks to Tim Schoen)!!! Fixed some issues with zooming. Fixed flags. Fixed saving parameters. Added outline parameter. Added width parameter (this was only set before via dragging the handle in edit mode). Improved drawing the handle. Fixed resizing when max width wasn't set. Added undo.
  • 6 new objects for a total of 464: [datetime], [rand.d], [rand.u], [rand.hist], [histogram] and [tabgen].

TUTORIAL:

  • new examples and updates for new objects: [rand.d], [rand.u], [rand.hist], [histogram] and [tabgen]. Total number of examples is now 481!
  • 20-Stochastic section revised

3rd Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

23 Aug 02:53
Compare
Choose a tag to compare

3rd Release Candidate of ELSE 1.0-0 (with Live Electronics Tutorial):

Objects count: total of 459 (244 signal and 215 control objects)!

This library/tutorial pack version needs at least Pd version 0.52-1 or above!

See downloads below in the "assets" tab and check the readme https://github.com/porres/pd-else/blob/v1.0-rc3/README.md for more details and an object list (separated into categories)! The readme is also available as a PDF in the download. You can also download ELSE directly via Pd (in Help => Find Externals).

When you download via Pd you also get ELSE with the "Live Electronics Tutorial" directly via Pd. Just find the 'Live-Electronics-Tutorial' folder inside the 'else' folder! The "Live Electronics Tutorial" follows the same version of the library, it is compatible to the same version of ELSE and it has its own repository, available in: https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-rc3! This tutorial heavily uses the objects from the ELSE library and it's a nice counterpart to it. The last experimental version of ELSE and the tutorial is always downloadable as a single package directly from within Pure Data. Other earlier experimental versions reside in this repository of the ELSE library.

Note that the ELSE library is still in an experimental stage ("release candidate" stage at this point), this means some changes may occur to some of the objects and backwards compatibility is not guaranteed for future releases until the final stable release is made available.

See also ELSE compiled to run inside Camomile so you can build VSTs: https://github.com/porres/Camomile-ELSE/releases


CHANGELOG:

LIBRARY:

Breaking changes:

  • [bl.sine~] removed, but you can use [bl.wavetable~] with a sine ave table.
  • [display~] removed, use [numbox~] now (new object).
  • [clipnoise~] removed, use [white~] now (new object) with the '-clip' flag.
  • [bicoeff] renamed to [bicoeff2] since [bicoeff] is now a new GUI object.
  • Replaced some band limited oscillators abstractions for compiled objects that are backwards compatible, more efficient, but hey, they sound different and produce different waveforms. They are: [bl.tri~], [bl.square~], [bl.saw~], [bl.saw2~] and [bl.vsaw~].
  • [sysrt.out] added new 2nd "tick" outlet.
  • rint/floor/ceil: removed 2nd inlet and bang/set methods
  • free.rev~: decay parameter is now mapped differently internally
  • Objects with random number generators now have a unique seed based on system time, this is more of an improvement than a breaking change. The pseudo random generator algorithm has also been unified. Now all objects have a 'seed' method and a seed flag. I lost track which objects break in this change. Some objects did not even have this and now have. These objects are: brown, brown~, chance, chance~, drunkard, drunkard~, dust~, dust2~, gray~, lfnoise, lfnoise~, markov, perlin, pink~, rampnoise, rampnoise~, rand.f, rand.f~, rand.i, rand.i~, rand.list, rand.seq, randpulse, randpulse~, randpulse2, randpulse~, stepnoise, stepnoise~, tempo, tempo~, white~
  • All random generators now have a '-seed' flag instead of an argument.
  • [pinknoise~] was actually renamed to [pink~], design has also changed.
  • [db2lin]: argument is now minimum value.
  • [lin2db]: argument and bang method is now removed, minimum value is now -inf.
  • [lin2db~]: minimum value is now -inf.

Enhancements/fixes:

  • [note]: many improvements/fixes, specially in resizing and justification.
  • added "tick" to sysrt.in / sysrt.out.
  • fixed [swap2] for list input.
  • fixed behaviour for special list cases in all objects with list methods (like an empty list being a bang message).
  • added inlet for last value in [lastvalue~]
  • [brown~]: added step value parameter and signal trigger input.
  • [downsample~]: added bang input for sync.
  • [spread]: added new mode for "<=".
  • fixed anything input for [merge].
  • [free.rev~]: an infinite decay time is now possible.
  • [play.file~]: fixed arg loading.
  • [db2lin]/[db2lin~]: added new minimum value to correspond do 0 amplitude.
  • [biplot]: now has a prettier red and thicker plot line.
  • Added seed to [rand.seq], [perlin~] and improved seeding for all the other random generating objects.
  • [trighold~]: added clear message.
  • Objects with pseudo random number generators have been improved (see breaking changes above). The tempo, tempo~ and markov objects now also have a seed parameter.
  • 13 new objects for a total of 459: [brown], [white~], [numbox~], [bl.osc~], [blip~], [bitnormal~], [bicoeff], [makenote2], [route2], [delete], [replace], [chrono] and [scala].

TUTORIAL:

  • updates to include some of the new objects: [bicoeff] (still very experimental and not quite acceptable), [brown], [numbox~], [white~], [blip~], [bl.osc~], [makenote2] and [scala]
  • Revision of bandlimited oscillators and noise chapters (12 & 13)
  • Fixed major theoretical flaw where an impulse is a sum of cosines, not of sines.
  • Revision of phase distortion example in waveshaping section
  • Total number of examples is now 477.