|
ELJA – Electric
Stringed Jazz Pedagogy
Using the Computer as a Pedagogical Tool for Learning
Jazz Bass Improvisation
1 Overview
Jazz improvisation can be a very
complicated or a very simple concept depending on your
method to learning and interacting. Some people are
auditory learners; some visual or otherwise. This
orientation directly affects the method of learning jazz
improvisation. This project allows the user to bridge
the gap between improvisation conceptualization and the
physical stringed instrument. By allowing the
instrument to physically show the improvisational
concepts, the difficulty in connecting the mental to the
physical interface is reduced. This project allows the
immediate utility of beginner and intermediate
improvisation concepts such as chord/scale relation and
common tones; however, future expansion also lends
itself to the generation and analysis of more advanced
concepts such as motifs and "what you didn't play
instead of what you did play."
An electric bass is outfitted with LEDs in
the neck that are controlled by a personal computer.
The user enters into a computer program the tempo, form,
and chords of a jazz tune (or selects a predefined
one). The program then calculates the appropriate
chord/scales for the tune and allows the user to make
any desired corrections. When the user agrees on the
"improvisation map" the program counts off the tempo and
starts the song. One color LED shows the scale for each
chord, while another is user-programmable to functions
such as highlighting certain notes such as 3rds and 7ths
or to show common tones with the next chord.
The music that the user plays is sent back
to the computer to be recorded for playback and
analyzed. Using typical jazz improvisation techniques,
the computer analyzes the music and display information
to the user such as "right" and "wrong" notes, notes
that the user plays too much or little, approximate
calculation of the user's 'style' (i.e. bebop blues vs.
straightforward 12 bar blues) , or suggestions of
artists to listen to based on the user's 'style.' The
possible uses of the feedback element to the computer
are unbounded.
2 Procedure
2.1 Programming
The computer program for inputting
the form of the song will be implemented in C++; there
will be a visual interface that is ‘musician friendly.’
The program will handle all main facets of
implementation such as chord/scale calculation and
correction, timing for proper song playback and
recording implementation, delivery of information to the
retrofitted LEDs in the bass via Parallel Port, input of
audio information for parsing and analysis, and analysis
of previously mentioned utilities.
2.2 LEDs
Two colored LEDs will be used for
chord/scale mapping. The neck of the bass provides for
48 discrete fret positions. It is possible to use only
the 12 chromatic tones and hard wire the duplicates and
octaves of fundamental tones for simplification.
However, in order to allow for future improvements in
algorithm design, all 48 will be utilized. All
positions above the 12th fret are exact
duplicates of the lower frets; therefore, those will be
hardwire-minimized. Using two colors, there needs to be
96 discrete lighting positions. The information for the
LEDs will be delivered using the parallel port. In
order to be able to obtain 96 variables, the information
will be time multiplexed and delivered to logic decoders
using clock pulses to separate information. The decoded
version will be sent to registers to hold the output of
the LED until the clock tells them to reset and obtain
new data. An open collector design will be implemented.
The LEDs utilized are 3mm
flat-top, and are flangeless. This allows retrofitting
that will not interfere with the player’s ability to
play the bass as if it were his or her own. There will
be no obvious feel of physical modification as all wires
will be placed in a ‘ditch’ that will be routed into the
back of the neck. The ditch will be filled and smoothed
to maintain a solid appearance and feel. All
electronics will be placed in a box separate from the
bass with only a pipeline of wires for the LEDs actually
connecting to the bass.
2.3 Audio Delivery
The ¼” output jack of the bass
will be wired in parallel to the computer. The
information will either be 1) digitized using a Cirrus
Logic stand-alone A/D converter and delivered to the
computer simply for the sake of learning this
implementation, or 2) will be sent to the
line-in/microphone input of the preexisting sound card
in the computer. The information will be encoded into a
Wave file with marker information denoting proper timing
for facilitated analysis.
2.4 Audio Analysis
2.4.1 Overview
The wave file must be parsed
according to the tempo of the song and to beat division
such as eighth notes, triplets, etc. Depending on the
tempo of the song, different techniques can be used to
extrapolate frequency information from the file for
analysis. Using a combination of a variety of possibly
adaptable techniques, this information will be sent to
algorithms to help the player improve his or her
technique and style.
2.4.2 Frequency Extraction
A combination of parsing,
transient detection, and pitch detection will be used to
obtain pitch detection.
2.4.2.1 FFT based
frequency detection
Unfortunately, FFT based analysis
of low frequency information is difficult because of the
lower resolution of FFT bins associated with the
logarithmically spaced low pitches. Assuming the tempo
of the song and divisions of the beat are slow and there
is high sampling rate, parsing and windowing large
amounts of sample points results in higher resolution
FFT bins. Enough resolution might be able available to
estimate frequency/pitch information by finding the
fundamental frequency bin and approximating the
frequency by bin division of the sampling rate.
2.4.2.2 Time
Domain frequency detection
If frequency domain pitch
detection is not a valid choice given undesirable
parameters, time domain frequency detection can be
utilized. Counting zero-crossings is an easy and
powerful method of determining frequency under certain
conditions. First, any DC offset must be eliminated.
Next, the signal can be low-pass filtered and normalized
to attenuate high frequency content that may cause
extraneous zero crossings. Since the signal will be a
bass guitar, the filtering can be quite rigorous. By
finding the average amount of zero crossings for a
specific duration of time, the frequency can be
estimated quite well. This method is less
computationally intensive than FFT analysis.
2.4.3 Delivery to algorithm
analysis
After the information is extracted
it is simple to analyze. The information must be
delivered into an analysis function along with the
‘expected’ information. In other words, the parsing of
time information can tell the computer where certain
events ‘should have’ happened. For instance analysis of
the player’s use of chord scale theory can simply be
tested by searching for an ‘incorrect’ note that the
user played during a specific measure, or period of
time, of the song.
2.4.4 Procedural Analysis
This section of the project is the
creative, useful part that allows the computer to help a
player learn jazz improvisation. Previously mentioned
possible implementations include analysis of the
improvisation to determine right and wrong notes
according to chord/scale theory, notes that the user
plays too much or little, approximate calculation of the
user's style, or suggestions of artists to listen to
based on the user's style. By making the design of the
project open ended, many useful analyses can be
formulated.
3 Possible future expansion and utilization
Although this project focuses specifically
on electric bass jazz improvisation, the methods can be
extended to all stringed instruments; furthermore the
procedural analysis can be extrapolated to any
instrument. In addition, the procedural analysis can be
expanded to cover more ways to improve jazz
improvisation.
4 Current progress
This project has been a work in
progress. Each part of the project has been delayed by
gaining all necessary knowledge in each subject matter
required for construction. Now all the knowledge has
been obtained and the construction is underway. The
bass has been obtained and LED holes have been drilled.
The logic circuit for the LEDs has been designed and
parts are ordered. Using C++ to write to the parallel
port in Windows XP is being explored. Frequency and
transient detection are being implemented. Audio
delivery from the bass is being explored. Methods for
analysis algorithms are being developed.
5 Conclusion
Properly implemented, this project
can severely impact the utility of computers in jazz.
The majority of jazz players, gurus, and teachers
dislike computers and despise the idea of computers and
Jazz together. However, if the computer is used a
pedagogical tool, their fears of computers playing jazz
and infiltrating the art of jazz is reduced. I have
described the project to my jazz teachers; they all
believe it is an excellent idea and a step in the right
direction.
This project is a step to bridge types of
learning. It is an attempt to use my knowledge to
ameliorate jazz students’ careers. It is an attempt to
use engineering creatively and to open people’s minds to
the diverse, creative implementations of engineering.
Ultimately, it is a synthesis of my knowledge obtained
at an undergraduate level. |