Kunquat 0.5.1 was released!

Written for Kunquat by Tomi Jylhä-Ollila on 2012-02-25

This release is about dynamic reaction configurations and inter-application communication. We got rid of the global column and introduced infinite playback mode. We added some interactivity and metadata editing to the tracker application. We introduced event argument expressions and event binding functionality. We made an effort to support bidirectional communication between the composition and its host application. We introduced a new auto-event event category.

We got rid of the global column and introduced infinite playback mode. All events that were previously limited to global column are now valid in all columns. We added a new infinite playback mode in addition to the existing finite playback mode. The infinite mode loops the current subsong and enables a composition to modify its own composition state. In contrast, the finite mode guarantees that the song has a finite length. All compositions can be played in either mode.

We added some interactivity and metadata editing to the tracker application. The tracker now shows current playback location, and a playback cursor. The tracker also shows realtime updates for the composition state. The tracker also supports editing of some metadata, such as the title and authors of a composition.

We introduced event argument expressions and event binding functionality. Event argument expressions provide flexibility in defining event parameters that can depend on variable space. Bind lets the user trigger events based on other events. This can be used to chain common event patterns, or to tie some event sequences to behaviour of the host application.

We made an effort to support bidirectional communication between the composition and its host application. The host application can receive calls from the composition. The application can also receive other types of events if desired. The composition contain a variable space that is accessible to the host application through set events. Parts of the composition may also be disabled or enabled based on the variable space.

We introduced a new auto-event event category. Auto-events can never be triggered by the user. Instead, they are used to access some constantly changing information. The composer binds a reaction for the auto-event, and queries components that produce those types of events. For example, the composition can depend on an auto-event revealing the current force of a note, even though the force information is generally hidden inside a generator.

Read all announcements