• No results found

PART I BACKGROUND AND CONTEXT

4.5. GimmeDaBlues: a case study

4.5.2 Global Structure

The structure of the application can be separated in four main parts, namely the se- quencer, the harmonic structure, the user interface and the instruments.

The sequencer leads the runtime operation of the application, running an ongoing clock that reads through the harmonic contents in real time and triggers the musical events. All the necessary data is sent to the instrument algorithms dynamically. The Pi- ano and the Solo instruments require user input to trigger the events, while the Bass and Drums run automatically.

Fig. 18 GimmeDaBlues: global operation flowchart

7 The inertia measurement accuracy and speed in recent iOS devices have improved significantly.

Starting with the iPhone 5S, they now include a dedicated chip working exclusively for the readings of the inertial motion data.

Clock

Time "Pre-Time" Harmonic Structure

DRUMS BASS PIANO SOLO User Interface

In the above diagram, the “Clock”, “Time” and “Pre-Time” blocks are part of the Sequencer. As it will be explained below, the “Time” and “Pre-Time” correspond to two slightly separated timelines, created to allow the use of anticipated musical events.

The sequencer comprises an internal clock and a reader for the harmonic structure. It creates a timeline that will be played live and distribute a synchronized beat to all the instruments, as well as the current harmony to the trumpet, keyboard and bass.

From the main clock, two distinct synchronization signals are created: the Time and the “Pre-Time”. The Time is the regular tempo that will be perceived during perfor- mance. It drives the bass and drums algorithms. The “Pre-Time” is a slightly anticipated timeline that was created to address the technique of anticipating the beat, very com- monly used by jazz musicians. The “Pre-Time” will read the chord structure, anticipat- ing it by a little less than an eight-note, and sending the corresponding data to the solo and keyboard modules. Using this, if the user plays an anticipated note just before the next bar, it will correctly correspond to a note or chord of the harmony of the next bar.

4.5.3 Harmony

The chord sequence (or chord changes) and scales that constitutes the harmonic contents of the currently selected song is defined in the style sheet template. While the sequencer is running, it reads through the harmonic data and sends the current chord and scale information to the instrument algorithms that use harmonic data (all but the drums). Each instrument then uses this data differently according to it’s own needs, as will be explained below.

The harmony description comprises the chord sequence of the song, plus scale in- formation, that will be used in the solo instrument. The chords are described in the style

sheet as close as possible to the standard chord notation in jazz music, with a funda- mental note and chord type (Example: “C 7”). Although there are different forms to symbolize the same chord type (Levine, 1995, p.ix), any form can be used, as long as both the chord type definition and the chord sequence use the same one. The distribu- tion of the chord information is run in the “pre-time” pipeline in order to allow for chord anticipation.

Fig. 19 Harmony parsing to the instruments.

4.5.4 Interface

As mentioned before, the interface was planned having in mind the idea of simplicity and ease of use, so that the user doesn’t have to read instructions or navigate through several buttons and menus in order to start playing. To accomplish this, all the essential performance controls are laid out in the same screen, in the main window.

The main window is divided in two main areas in the center, plus the volume con- trols for the bass and drums on the left and right edges of the screen (Fig. 17). The main areas on the center are the instrument areas. The upper half is the solo instrument

while the lower half is the keyboard (chord) instrument. It is not expected for the user to play the right keys especially on such a messy keyboard. Specific keys are not im- portant but moving from left to right on the keyboard results on chords or notes from low to high according to the zone pressed.

The instrument selection to include in the application aimed to represent a tradition- al standard jazz group formation and also to address four instruments that have very different characteristics and roles. For each one, a specific algorithm was developed, focusing on idiomatic features and role in the group, but also in the playability and ease of use that were key features in this project.

Along with the core interactive player, some other functionalities were included in the application. These are accessible from a drop-down menu (Fig. 20), by pressing the two-arrow button on the upper-left corner of the main window.

Fig. 20 Drop-down menu.

Pressing the Record button jumps to the main window and starts recording after the countdown. When the player stops the recording, GimmeDaBlues creates a MIDI file that can be named and stored in the Library. This file can later be exported to the computer by using iTunes app view. Once in the computer, the MIDI file can be opened in any DAW, Notation editor or any other MIDI compatible software.

Fig. 21 The Setup menu.