Fork me on GitHub

Recent news

Happy New Website

The Jamoma website has just had a total makeover, and we hope that it will be a lot easier to find the information you need from now on.

Getting to the downloads should be straight-forward, and we have improved the descriptions of Jamoma for Max and the Jamoma C++ libraries. Additionally Jamoma for PureData is starting to make a presence at the site. In the near future we will expand the site further with a set of screencasts on how to use Jamoma with Max. We believe that Jamoma is pretty awesome, and hopefully the new website helps making Jamoma more accessible to the community.

If you discover any issue on the new site, please leave a comment for us here so that we can fix it. Thanks!

Art + Music + Technology podcast series

For more than two years Darwin Gross has been producing the podcast series Art + Music + Technology. Each podcast is an interview with an artist, musician, designer or creative, discussing their work in general, and also touching upon how Max and other tools integrate into their workflow and artistic thinking. Early on Darwin interviewed Nathan Wolek, and this week he has interviewed yet another Jamoma developer, Trond Lossius.

Trond talks about his preference for collaborative processes, and how this is reflected in audiovisual artistic projects as well as the development of Jamoma. He discuss his fascination with sound, space and place, and how his initial encounter with Max helped carve a new and more meaningful artistic direciton that he has continued to pursue since the late 1990s.

Ximena Alarcón

The artist and researcher Ximena Alarcón from CRISAP (Creative Research in Sound Arts Practice) visits BEK in week 7. Friday February 19 she will give an artist talk, presenting her artistic practise, and also discuss her ongoing work on ‘Sound Matters: a framework for the creative use and re-use of sound’.

For the remaining of the week she will be working with Trond Lossius on how to create interfaces for accessing archives of sound, such as archives of field or speech recordings. Together they will explore the possibility of utilising Jamoma for this, in preparation for further research relating to the “Sound Matters” framework.

Ximena Alarcón

Ximena Alarcón is an artist who engages in listening to migratory spaces, connecting this to individual and collective memories. Her practice involves deep listening, sonic improvisation, and the creation of screen-based interfaces for relational listening that expand our sense of belonging and place. She is interested in creating telematic performances, derived from listening in interstitial spaces, such as dreams, underground transportation, and the ‘in-between’ space in the context of migration. She completed a PhD in Music, Technology and Innovation, from De Montfort University, and received a Leverhulme Early Career Fellowship 2007-2009, which led to the creation of ‘Sounding Underground’. She gained a Deep Listening Teaching Certificate in 2012, and is currently a tutor for the Deep Listening Training Program at the Rensselaer Polytechnic Institute. Since 2011 she has been Research Fellow at Creative Research in Sound Arts Practice (CRiSAP), based at the London College of Communication, where she has developed ‘Networked Migrations’. In 2015 she launched with Cathy Lane the first stage of a JISC funded project ‘Sound Matters: a framework for the creative use and re-use of sound’, which explores the creation of interfaces for interrogation and relational playback of Field Recordings and Speech.

Her visit to BEK is funded by an Erasmus grant.

Music Moves

The fourMs lab at the University of Oslo is now offering the free online course Music Moves: Why Does Music Make You Move?. At the end of the promo video, some Jamoma modules can be spotted.

We have recently moved the forums from SourceForge to Google Groups. The web site has been updated accordingly, and now embeds the developer forum and user forum.

For anyone needing to access the old archives, they can still be found here:

A new alpha release of Jamoma package for Max has been posted in the download section of the site. This new release (0.6.0-a46) includes all of the development that has happened over the past 6 months.

Ramping and dataspace

One important change with this version is j.parameter, j.message and j.return now supports using dataspace units and rampings at the same time. Check out the help file for j.parameter for further details.

We posted a new alpha release of Jamoma package for Max in the download section of the site. Release 0.6.0-a42 is likely to be the last before Jamoma fully goes beta and we are quite excited about it !

equalizer's views

Quite a number of changes happened since we last announced a release here, so be sure to give it a test and let us know what you think !

While Jamoma 0.6 has been used in a number of projects so far, please remember that this is still an alpha version, so please fully test your work before using it in a production.

Part of the Jamoma team will be in Athens for the 2014 joined Sound and Music Computing/International Computer Music Conference edition. Pascal Baltazar, Théo De La Hogue, Trond Lossius and Nathan Wolek will be presenting the paper “Model-view-controller separation in Max using Jamoma” on Wednesday, 17 september. They will also conduct a workshop on Monday, 15 September, from 9h to 9h50.

If you want to see in action what we’ve been dealing with for the last years or if you just want to meet the team, you are more than welcome to come and join the audience.

ICMC paper header

While we’re promoting Jamoma work, please note that some of them will also present some other works they’re involved into. Pascal Baltazar and Théo De La Hogue will conduct a workshop on the interactive intermedia sequencer i-score. Trond Lossius will also present the paper “The SpatDIF library – concepts and practical applications in audio software” written with Jan Schacher and Chikashi Miyama and the “ATK reaper: ambisonic toolkit as JSFX plugins” paper, written with Joseph Anderson.

If that does not sound enough, there will surely be a lot of other interesting stuff at this SMC/ICMC edition. See you there !

The Jamoma core team is currently meeting in Bergen for a dense and, as always, very productive workshop.

The main topic of this workshop is to finalize the specifications and to achieve a consolidated version of Jamoma 0.6.

Thus, now is the time for making bold changes !

One of them is about the order of inlets and outlets for Jamoma 0.6 models (and modules) in Max:

Since the first version of Jade, the convention in Jamoma has been to use the leftmost inlets and outlets to control a module’s behavior via Max messages and retrieve its activity.
This has become less relevant in Jamoma 0.6, which relies much less on the use of Max messages to control the behavior of models. Most of this control can now be done remotely with the use of j.receive/j.send, j.remote and friends.

The model’s output can also be monitored remotely by using [j.receive /model_name:activity/out] (or its input via :activity/in).

Furthermore, this way of patching is also somehow contradictory to patching conventions in Max, where signal connections (and most connections, actually) are starting from the leftmost inlets/outlets.

Let’s see how things have been done until now:

The Classic way of patching Jamoma models

And now what we are proposing:

The New way of patching Jamoma models

An important change, beyond changing the order of inlets and outlets, is that from now on, will now manage signal input (or jitter matrices) as well as routing control messages to j.model. Sending control messages to j.model will keep on working (and will remain necessary for models without signal inputs).
Following the now well established convention in Max of a dumpout, all inner activity is now output from the rightmost outlet.

There are several other arguments in favor to this move, that we have been discussing today (and previous times too):

- There have been some first experiments (and working prototypes) of developing models directly as Max externals (noise~.model.mxo and allpass1~.model.mxo are such examples). Since these objects are hardcoded in C, they must have their signal outlets leftmost (in other words, it is not possible to put a control inlet/outlet to the left of a signal inlet/outlet)

- The main argument in favor of keeping the control inlet/outlet leftmost was that it would remain at the same place, even if the number of channels of a module changes. Now that we typically rely on Jamoma Audio Graph multi-channel cables to manage multi-channel audio, this is no longer a problem. Also, even in the case of MSP-based audio models, the number of audio inlets/outlets (and also of other types of inlets/outlets, see future blog post) can now be automatically retrieved by observing the instance lists of the in/out subnodes of a model…

All models of the distribution have now been changed in order to implement this change.
They will be available in the next Jamoma 0.6 release (or via the dev branch of the repository).

Update 01/10/1014
Note that some changes here have been postponed to some future release:
- random-generated auto-name has not been implemented. Hence you are still responsible for naming your models or modules. When duplicating a model for example, Jamoma will register it in the namespace using ithe provided name followed by a “.1” instance number.
- j.parameter remains j.parameter for now.

Here are some changes that we have decided on so far in the workshop:

Naming of model, view and module instances

We have decided that when a user creates a model, view or module and does not explicitly provide a name for the instance, we’ll add a unique (random-generated) name. This name will be consistent; that is it will be saved with the patch and recalled the next time the patch is opened. This will for instance resolve some problems that can be experienced when opening help patches for models, and experiencing that the models of the help patch ends up conflicting with the module names used in the users own patchers.

Reorganising inlets and outlets

Up until now we have reserved the leftmost inlet and outlet of models for OSC communication. This is about to change. In audio and video (Jitter) models we will now use the leftmost inlet for signals in the same way as for regular MSP and Jitter externals. OSC messages can also be passed to this inlet, so behaviour will become much more consistent with how regular externals behave. We will make AudioGraph externals behave similarly.

OSC messages returned from the model will be passed out from the rightmost outlet, in a similar way to the dumpout outlet of Jitter objects.

j.parameter will be renamed j.attribute

This change will make it much easier to document models using the Max refpage system. If the Max auto-completion system could be extended to serve abstraction with refpages in the same way as for externals, it would become tremendously useful, as our j.parameters could basically be considered attributes with added abilities.

AudioGraph externals for Max will be renamed

We will substitute the sign for =. This makes life much easier for us when compiling for Windows, and also resolves the problem that many do not know how to type ≈ on their keyboards.

Graph externals for Max will be renamed

We will substitute the # sign for -.

Surround sound models will be renamed

Rather than long and cumbersom names such as sur.dbap.model, we’ll use dbap=.model

Naming convention: under_score rather than camelCase

The majority of developers feel that under_score is more readable than camelCase. In addition it seems to be more consistent with what other developers do in Max.

We also recommend that the first part of names should identify the context that the message is addressing, so that as little reading as possible is required to understand what this message is all about. As an example speaker_count is preferable to number_of_speakers.

More to come!

Copyright © 2003-2016 by the contributing authors. Terms and privacy
This site is generously hosted by BEK.