Patching as graphical programming environment

Get Complete Project Material File(s) Now! »

Dealing with sporadic and aperiodic events

In a system with periodic and aperiodic tasks, periodic tasks can interfere with aperiodic tasks, and make them execute too late. There are three main ways of dealing with this interaction between aperiodic and periodic tasks [4]:
Background scheduling. In this approach, aperiodic tasks are scheduled when no periodic tasks are ready to execute. If there are several aperiodic tasks, they are executed in FIFO order. A disadvantage is the huge response time.
Server. A server is a periodic task the purpose of which is to serve aperiodic requests. A server has a period and a granted computation time (server capacity or budget) that it can use before letting other periodic tasks resume execution. In some case, servers can degrade utilization. Slack stealing and joint scheduling. It consists of stealing processing time from the periodic tasks without having them miss deadlines by using laxity, i.e. the temporal difference between the deadline, the ready time and the run time.

Scheduling in interactive multimedia systems

Interactive multimedia systems deal with audio and video streams, where a buffer has to be filled periodically, and with controls that can be aperiodic (a GUI change) or periodic (a low frequency oscillator). The audio and video streams can use different samplerates, and the controls, other rates, that have to be accommodated together, with several priorities. Moreover, audio streams and controls are connected in a dataflow graph, which can also involve spectral processing, granular synthesis using a corpus of sounds stored in a database. How articulating control and processing is one of the challenges of scheduling IMS: control can take too much time and delay audio processing; audio processing often processes by chunks to use the vector instructions of the targeted processor, so that control cannot occur inside such a chunk. We will see that in the following IMS, control indeed happen at the boundaries of a buffer, which entail that control is not sample-accurate.

Patching as graphical programming environment

The Patcher family, with Max/MSP [45], PureData [35], jMax [8], MAX/FTS [37] originally developed
by Miller Puckette at Ircam [36], emphasises visual programming for dataflow processing.
Functions are represented by boxes, placed on a screen called canvas. Objects are connected together with links, and data flows from one object to another through these links. Here, we present more specifically PureData, which is opensource.
In Puredata, actions can be timestamped, for instance the boxes metro, delay, line, or timer. GUI updates are also timestamped. Other incoming events are MIDI events, with notein and OSC. The scheduling in Puredata is block-synchronous, that’s to say controls occurs at boundaries (at the beginning) of an audio processing on a block of 64 samples, at a given samplerate. For an usual samplerate of 44.1 kHz, a scheduling tick lasts for 1.45 ms. Depending on the audio backend,9 the scheduler can be a polling scheduler (see Fig. 2) or use the audio callback of the backend. Samplerate and block size can be changed locally in a patch using the block box.

READ  A tensorial formulation for hyper-graph matching 

Audio processing architecture in Antescofo

Using a scheduling algorithm such as EDF as presented in part I makes it possible to handle more precisely the interaction between audio processing and control in complex scenarios: contrary to the round-robin schedulers of section 2), control and audio can be interrupted, so as to get sampleaccurate control and handle control calculations that delay audio processing too much. Audio is processed in fixed-size buffers. Here, we present a way of practically dealing with variable size buffers.

Table of contents :

I Multimedia scheduling 
1 Real-time scheduling 
1.1 General characteristics
1.2 Common approaches
1.2.1 Rate Monotonic (RM)
1.2.2 Earliest deadline first (EDF)
1.3 Dealing with sporadic and aperiodic events
1.4 Overload
2 Scheduling in interactive multimedia systems 
2.1 Patching as graphical programming environment
2.2 SuperCollider
2.3 ChucK
2.4 Faust
2.5 Challenges in multimedia scheduling
II Antescofo and audio processing 
2.6 The Antescofo language
2.7 Antescofo runtime
2.8 Anth`emes 2
3 Audio processing architecture in Antescofo 
3.1 General structure
4 Accommodating various rates 
4.1 Related work
4.2 Buffer flow
4.2.1 Characterizing buffers
4.2.2 Concatenation of buffers
4.2.3 Type coercion
4.2.4 Buffer flow graph
III Model-based analysis 
5 Paradigms for real-time systems 
5.1 Synchronous languages
5.2 Giotto and xGiotto
5.2.1 Giotto: a time-triggered language
5.2.2 xGiotto: a time and event-triggered language
6 Intermediate representation 
6.1 Syntax
6.2 Variables and clocks
6.3 Semantics
6.4 IR generation from Antescofo programs
7 Schedulability test 
8 Bounds on tempo 
9 Two-player safety game

GET THE COMPLETE PROJECT

Related Posts