Dear list,
here's a new pre-release for the AoO multichannel audio streaming
library. In the last two months, the library has been seen many
improvements and has been used successfully in our Virtual Rehearsal
Room project (see vrr.iem.at <https://vrr.iem.at/>).
Binaries for all common platforms (Windows, macOS, Linux, ARM boards)
are available on Deken (search for "aoo"). The source code can be found
here: https://git.iem.at/cm/aoo
See the help patches (aoo_send~-help.pd, aoo_receive~-help.pd,
aoo_server.pd) for usage instructions.
If you want to stream between different home networks (without port
forwarding), you can use [aoo_client] and connect to our public AoO
server at the IEM (hostname: vrr.iem.at, port: 7077). You can easily set
up your own AoO server by running a Pd patch containing [aoo_server
<port>] on your web server.
---
Selected features:
# create audio networks of any topology with arbitrary ad-hoc connections
# [aoo_send~] / [aoo_receive~] take a port number and ID, so multiple
objects (within a single Pd instance) can operate on the same port.
Additionally, you can have multiple objects across different Pd
instances (using different port numbers).
# [aoo_send~] can stream to several destinations simultaneously;
# [aoo_receive~] can receive several AoO streams simultaneously, summing
the signals
# AoO is connectionless: streams can start/stop at any time, enabling a
"message-based audio" approach.
# AoO sinks can "invite" sources, i.e. ask them to send audio. The source
may follow the invitation or decline it.
# AoO sinks and sources can operate at different blocksizes and samplerates
# the streaming format can be set independently for each source; currently
only PCM (uncompressed) and Opus (compressed) are implemented, but this
can be easily extended with the AoO codec plugin API.
# audio encoding/decoding is multithreaded
# adjustable resending mechanism for dropped packets
# adjustable jitter buffer size.
# [aoo_server] / [aoo_client] implement the UDP hole punching technique to
establish peer2peer connections between different home networks.
# AoO is actually a C++ library with a C interface, so it can be used in
apps or embedded devices (like the ESP32). An implementation for
Supercollider is already planned.
---
For questions, bug reports or feature requests, please open an issue at
https://git.iem.at/cm/aoo/-/issues. We're very happy about any kind of
feedback!
Christof
*Cyclone 0.5-0 is out now, june 10th (at least in parts of Europe it's
already 10th!)*
Cyclone 0.5-0 needs at least Pd 0.51-0, details on installing cyclone, news
and downloads at
https://github.com/porres/pd-cyclone/releases/tag/cyclone_0.5-0
You can also download it directly from Pd via menu "Help => Find
Externals". The only binary still missing is raspberry pi, give it a day or
so until it's up in the repository and in deken...
The most important thing in this release is that [comment], the last object
still waiting for updates, has received its deserved attention and now has
many new functionalities from newer versions of Max. It is still not fully
compliant to Max6+ versions, but it had been warned that this object would
be an exception when upgrading to Max7. All it misses though is some silly
but fancy looking "bubble" style, and I hope people won't mind. On the
other hand, we got now 'fontface', 'underline', 'bgcolor'
and 'textjustification'. t now also correctly loads font names with spaces.
There are still more things to be done to this object, but in theory and
practice *that goal we set back in february 2016 (4 years and 4 months ago)
to update objects in cyclone to Max 7 is finally
completed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*
Cyclone's development has slowed a lot, but it's still alive, there are
plans to eventually include a few new things from Max 8 that affects some
of the cyclone objects.
Some more has been done as well for this cyclone 0.5 release, like zooming
for scope~ and comment. When created as an object, the cyclone binary now
outputs the version so you can make sure your patches have the right
version of cyclone. One other important thing is that now we're supporting
back the aliases for Upper Case letters in order to be able to load older
patches. We had a problem in 0.3 where symlinks for Linux weren't working
and decided to drop it for 0.4, now this is fixed and it's back! See all
details below.
Full Changelog:
- Re-added support for capital letters aliases - this is for backwards
compatibility and now the objects print an error telling the user to change
to the new name. The affected objects are: cyclone/append (*); bucket;
cyclone/clip (*); decode; histo; mousestate; peak; cyclone/table (*);
togedge; trough; uzi; cyclone/clip~ (*); cyclone/line~ (*); scope~;
cyclone/snapshot~ (*)
(*) these classes need the 'cyclone/' prefix to avoid name clashes with
vanilla internals - see help file for more information.
-
When loaded as an object, the 'cyclone' library now also outputs the
version number. You can use this to make sure your patch has the right
version.
-
Fixed some type formats for [sprintf] and updated the documentation.
-
Fixed a bug with [zl delace] in windows where the 2nd outlet wasn't
working
-
Fixed a bug in [active] where right click would deactivate in linux
-
Added a few new message methods/attributes to [number~], thanks to the
new inlet~ 'fwd' feature from Pd 0.51 (namely bang, list, set, ft1,
interval, minimum, maximum, bgcolor, textcolor).
-
[scope~]:
- Added zoom support and now the patch properly asks if you want to save
changes when parameters change.
- Fixed a regression bug in scope~ where it wouldn't draw if loaded
in a patch with DSP on
-
[comment]:
- Added zoom support and now the patch properly asks if you want to save
changes when parameters change.
- Visual change where it now shows its inlet while in edit mode (like
it happens in Max)
- Fixed a bug in [comment] where it couldn't load font names that had
spaces (such as "DejaVu Sans Mono") and made the default font
"DejaVu Sans
Mono" like in Pd. But this only works well in Pd 0.51-0 or
later! Note that
although Pd ships with Deja Vu Sans Mono, it still doesn't offer
italic and
italic+bold variants. With this change all cyclone documentation has been
revised to only contain DejaVu Sans Mono fonts in all cyclone/comment
objects. This fixes an issue where it would load different fonts in
different systems if it didn't have the actual same font installed.
- Updated [comment] to add missing Max 5 parameters (added
'fontface', 'underline' and 'bgcolor' methods/attributes, plus an extra
'bg' method/attribute to suppress background)
- Also added 'textjustification' from Max6.
*ELSE 1.0-0 beta-28 has been released on june 8th, 2020! *
Now the library comes with a compatible and up to date version of my Live
Electronics tutorial that relies on the same version of the ELSE library.
Finally these two intertwined projects are being merged into a single pack.
Find downloads here, where you can also all previous versions of the
library https://github.com/porres/pd-else/releases/tag/v1.0-0-beta-28
The release is also finally available via deken and the downloads have been
tested. Now you'll see a "*else_and_live_electronics_tutorial*" single
download. After downloading it, you'll find two separate folders, the '
*else*' folder with the ELSE library and a "*live-electronics-tutorial*"
folder with examples that rely on the ELSE library. The tutorial needs the
ELSE library anyway, so it makes sense to get it with the library, but you
may only want the ELSE library and not the tutorial for some reason, just
delete it then, sorry. If that's annoying or you have other suggestions,
any feedback on this new standard is welcome! Let me know how you feel
about this.
Release notes:
*The library and the tutorial need at least Pd Vanilla version 0.51-0 or
above!*
- Tutorial:
The update of the Live Electronics Tutorial includes a big revision, fixing
many untranslated from portuguese bits, typos and other bug fixes and minor
improvements. It also has changes to comply with the latest updates of
ELSE. Lastly, it was also updated to mention new functionalities from Pd
0.51-0, like the new inlet~ functionality that can forward control
messages. The tutorial now has the same version of the ELSE library, so it
jumped from beta 17 to beta 28.
- Library:
The ELSE library now has 371 objects (228 signal and 143 control objects)! The
way to load the library has changed, you need to use [declare -lib] now!
You can still use -path, but the official way to load it now is as a
library (or also via Startup). A new [else] object outputs the library
version, and you can use it to make sure your patches have the right
version of ELSE.
There's a huge break of compatibility in this version that I've been giving
a heads up already in the last two releases. The new version of Pd has a
new functionality for the inlet~ object that can forward control messages.
Hence, I removed the right inlet of many abstractions that were there just
to get control messages, This affects 29 objects! The new ability of the
inlet~ to also receive default values also improves the functionality of 11
objects! Other improvements I wish to highlight are many updates and fixes
to the [keyboard] and the [pic] object. For a full changelog, see below...
-------------------------------------- ELSE 1.0-0 beta 28 CHANGELOG:
-------------------------------------- *Breaking changes: *- With the new
feature of inlet~ where it can take control messages (as of Pd 0.51),
several objects had their inlet messages changed. 29 objects affected:
[bin.shift~], [bpbank], [compress~], [conv~], [drunkard~], [duck~],
[free.rev~], [freeze~], [gain~], [gain2~], [graph~], [mix2~], [mix4~],
[mono.rev~], [oscbank~], [out~], [out1~], [out4~], [out8~], [phaser~],
[plate.rev~], [pvoc.freeze~], [pvoc.live~], [resonbank~], [resonbank2~],
[spectrograph~], [stereo.rev~], [stretch.shift~] & [vocoder~] -
[savechange] object deleted (using something based on [canvas.setname] for
what that other object did now). *Improvements/fixes: *- The ELSE library
now is accompanied by the Live Electronics Tutorial by Alexandre Torres
Porres as a single download combo. - The ELSE library now should be loaded
as a binary pack because of a new "else" binary. This allows the ELSE
library to be loaded as a regular lib, via Startup, or using [declare -lib
else]. The binary can also be loaded as an object, which outputs version
and information about the library. - With the new feature of inlet~ where
it can take arguments, several objects got improvements. 11 objects
affected: [allpass.filt~], [bl.imp~], [bl.imp2~], [bl.saw~], [bl.saw2~],
[bl.sine~], [bl.square~], [bl.tri~], [bl.vsaw~], [bl.wavetable~] &
[crusher~]. - [keyboard]: many improvements to the code (basically a
rewrite from scratch). Implemented zooming. Finally implemented the toggle
mode and added a flush message. Improved/fixed the way it was detecting the
click on the right keys. Fixed clicking in Graph on Parent. Now the object
asks you if you want to save changes after changing parameters from
messages, plus other minor fixes. - [slider2d] and [cricle] are now usable
in an abstraction or GOP subpatch, but only as deep as only one layer of
encapsulation. - [avg]: fixed "clear" message. - [nyquist~]: wasn't
creating in linux. - [graph~]: added an outlet for the input signal come
out to. - [dir]: fixed a bug where it printed an annoying error on windows.
- [canvas.vis]: fixed bug when it didn't report it being invisible when the
window was closed, added an inlet to query for visibility with a bang. -
[pic]: added "set" and "size" methods - included an example on how to use
[canvas.zoom] for emulating a zoom. - fixed peak estimation for [peak~],
[vu~], [meter~], [meter2~], [meter4~] and [meter8~]. - Now [spectrograph~],
[graph~], [range.hsl], [drum.seq], [mtx.ctl] and [button] will properly ask
if you want to save changes on parent patch. - 6 new objects for a total of
371: [else], [canvas.bounds], [canvas.pos], [canvas.gop], [canvas.zoom] &
[canvas.setname].
Dear list,
I would like to announce our VRR streaming concerts, a cooperation
between the IEM Graz and the PPCM (performance practice of contemporary
music) studies at the University of Arts Graz, led by members of the
Klangforum Wien.
During the last 6 weeks we have been rehearsing in our Virtual Rehearsal
Room (VRR), which has been built entirely in Pd, using the AoO (audio
over OSC) external for high quality and low latency audio streaming. The
students are playing in their living rooms in different cities across 4
countries (Austria, Slovenia, Serbia and Norway). We will now present
the final results in two live concerts, featuring 8 pieces for 3—7
players by John Cage, Anestis Logothetis, Roman Haubenstock-Ramati,
Winfried Ritsch and Peter Ablinger.
Concert I: Friday, June 5, 2020, 18:00 CEST (16:00 UTC)
Concert II: Saturday, June 6, 2020, 18:00 CEST (16:00 UTC)
Location and info: https://vrr.iem.at/concerts/
Best,
Christof
Sorry for cross-posting,
I'd like to share with you a crowdfunding campaign I have started for
the 3dPdModular system. Some of you already know it (was: 3dPd), many
don't. It's a hardware modular synthesizer system running on a single
Raspberry Pi, programmed in Pd.
It looks much like an analog modular synthesizer, but offers a variety
of features not present in analog systems, such as cross-fading between
patches, module cloning, saving patches on a phone app, and more.
The campaign will run for a month. You can find it here
https://gogetfunding.com/3dpdmodular/. The synth's website is this
https://3dpdmodular.cc/.
Please share with anyone interested.
I'm glad to announce the next year's edition of the Vortex Music Journal
dedicated to Pure Data. This volume will be released in 2021 - the year Pd
becomes 25 years old, hence the theme: “A quarter of century of Pd: past,
present and future”. Ask me questions if you have. Check info below (please
share).
Vortex Music Journal | v.9 n.1 "A quarter of century of Pd: past, present
and future"
Submission Deadline: December 15th, 2020.
Guest Editor: Dr. Alexandre Torres Porres
Link: http://vortex.unespar.edu.br/call_v9_n1.pdf
<http://vortex.unespar.edu.br/call_v9_n1.pdf?fbclid=IwAR0vudfHxzsBBctIFm-EHj…>
Cheers
Alexandre Torres Porres