Stride

A language for sound synthesis, processing, and interaction design

The Stride Language

Stride is a domain-specific programming language for real-time sound synthesis, processing, and interaction design. It abstracts hardware and software architectures, simplifying the process of software/hardware integration while giving the user control over the code generation process. These abstractions are defined in Stride systems which represent the inner workings of the target hardware and software, exposing them in a simple and consistent manner across platforms.

Stride enables its user to declare the frequency at which Stride expressions are evaluated and provide the user with the ability to control and fine tune the quality of the sounds they seek. Stride also enables its user to control where expressions get evaluated and computed. This type of control is essential to optimizing code running on a resource constrained system such as a microcontroller. A user of Stride can also design interaction using Stride Reaction, an abstraction to handle asynchronous events.

Although Stride is a textual language inheriting concepts from Unit Generator languages, its basic construct is the streaming operator which makes it conceptually similar to dataflow languages. Stride is not a dynamic unit generator graph manager, but rather a code generator. Additionally, Stride is designed to facilitate both low-level signal processing algorithms and high-level constructs using the same syntax.

Stride is designed around the declarative and dataflow paradigms. The language only has two constructs: block declarations and stream expressions. Stride allows both push and pull programming, achieved by controlling the rate of the signal block, which is the fundamental building block of the language. Stride borrows some of the best features of other programming languages like multichannel expansion, single operator interfacing, multiple control rates, and per sample processing. Stride is also a self documenting language.

Stride is licensed under the terms of the 3-clause BSD license. Copyright © 2017. The Regents of the University of California. All rights reserved.

The Designers

AndrÉs Cabrera

Software Developer

Joseph Tilbian

Software Developer

Try Stride

Stride source is available on

GitHub

Stride installers can be found at

Downloads Page

Documentation

Follow the link to view Stride's documentation.

Visit Documentation Page

Publications

J. Tilbian and A. Cabrera. Stride: A declarative and reactive language for sound synthesis and beyond. In Proceedings of the 2016 International Computer Music Conference, Utrecht, 2016.

J. Tilbian and A. Cabrera. Stride for Interactive Musical Instrument Design. In Proceedings of the 2017 International Conference on New Interfaces for Musical Expression, Copenhagen, 2017.

J. Tilbian, A. Cabrera, S. Martin, and L. Olczyk. Stride on Saturn M7 for Interactive Musical Instrument Design. In Proceedings of the 2017 International Conference on New Interfaces for Musical Expression, Copenhagen, 2017.

Contact Us

Feel free to email us to leave feedback or just say hello!

Join our mailing list or follow us on social media to receive Stride announcements.