Madhav Rao (ECE) The University of Alabama Research Professors – Dr. John. C. Lusth (CS) Madhav Rao March 30 RRA: An audio format for single-source music and lyrics 1/26
Dec 16, 2015
Madhav Rao March 30
Madhav Rao (ECE)
The University of Alabama
Research Professors – Dr. John. C. Lusth (CS)
RRA: An audio format for single-source music and lyrics
1/26
Madhav Rao March 30
WAV Format RRA Format
Source: J .C. Lusth. Songlib: A library for music programming across the computer science curriculum. In American Society for engineering Education, 2007.
2/26
RRA: Readily Readable audio
MP3 Format
Introduction to RRA format for audio
Madhav Rao March 30
RRA format for audio
Source: J. C. Lusth, http://beastie.cs.ua.edu/songlib/
RRAUDIO%%<amplitude1><amplitude2><amplitude3>…………..…………..…………...
Header
Data
3/26
RRAUDIO! Hohner Pocket Pal Harmonica ! D# ! recorded by Becky SmithsampleRate: 44100 bitsPerSample: 24 channels: 1 samples: 44100%%!amplitude begins001-2…………..…………..…………...
Defaultchannels: 1sampleRate: 44100samples: 0bitsPerSamples: 16
Madhav Rao March 30 4/26
RRAUDIOchannels: 1 %%<amplitude0_channel0><amplitude1_channel0><amplitude2_channel0>…………..…………..…………...
RRAUDIOchannels: 2 %%<amplitude0_channel0><amplitude0_channel1><amplitude1_channel0><amplitude1_channel1>…………..…………..…………...
RRAUDIOchannels: 4%%<amplitude0_channel0><amplitude0_channel1><amplitude0_channel2><amplitude0_channel3><amplitude1_channel0><amplitude1_channel1><amplitude1_channel2><amplitude1_channel3>
RRA format for multiple channels: interleaved
Source: J. C. Lusth, http://beastie.cs.ua.edu/songlib/
Madhav Rao March 30
arplay tool: native audio player for RRA files
5/26
Source: http://www.alsa-project.org/
arplay <filename>
arplay <filename1> <filename2> ….. loop
arplay <filename1> <filename2> ….. shuffle
arplay <filename1> <filename2>……
<rra-filters> <filename> | arplay
arplay <filename> scaling <XXX>
Madhav Rao March 30
Drums track developed for crozier song
Drum Bass and Floor
static voiddrumBassFloor() { drum(Q,bassinst,1); drum(Q,floorinst,1); drum(I,bassinst,1); drum(I,bassinst,1); drum(Q,floorinst,1); }
6/26
Madhav Rao March 30
Crash drum
static voidcrashDrum () { drum(I,crashinst,1); }
7/26
Drums track developed for crozier song
Madhav Rao March 30
Drums track developed for crozier song
intmain() { openOutput("drum.rra",0,0); intro(); verse1(); refrainStart(); rest(Q); verse2(); refrain(); bridge(); refrainA(); rest(W+W); ending(); closeOutput(); return 0; }
Crozier drum track
8/26
Madhav Rao March 30
Karaoke system developed in RRA
backwards(1);addComment("!lGood people of this town...");forwards(1);for (i = 0; i < 2; ++i) drumBassFloor();
backwards(1);addComment("!lYou'd do well to gather around...");forwards(1);for (i = 0; i < 2; ++i) drumBassFloor();
9/26
Madhav Rao March 30
Lyrics inserted in drum track of crozier song
000!lGood people of this town...000...............104210251053!lYou’d do well to gather around...103910401072
lyrics inserted in RRA
10/26
Madhav Rao March 30
Lyrics displayed on screen while playing the drum track
11/26
Madhav Rao March 30
arplay program flow
12/26
Lyrics displayed on screen
Samples passed to sound device
Madhav Rao March 30
RRAUDIOSamples: <number-of-samples>%%<amplitude1><amplitude2><amplitude3>…………...!amplify 10…………..…………..…………...
RRA based filters: amplify
Amplified audio track
Original audio track
13/26
test.rra
rraamplify test.rra
Madhav Rao March 30
RRAUDIOSamples: <number-of-samples>%%<amplitude1><amplitude2><amplitude3>…………...!drum snare pattern 8 Quarter length scaling 1.25…………..…………..…………...
RRA based processors: drum fillers
Audio track with added drum track on another channel
Original audio track: mono channel data
14/26
test.rra
rradrum test.rra
Madhav Rao March 30
Pattern 1 Quarter length
Pattern 2 Quarter length
Pattern 4 Quarter length
Pattern 8 Quarter length
15/26
Madhav Rao March 30
Pattern 8 Quarter length Pattern 8 Half length
Pattern 8 Whole length
16/26
Madhav Rao March 30
RRAUDIOSamples: <number-of-samples>%%<amplitude1><amplitude2><amplitude3>…………...!compress 10…………..…………..…………...
RRA based filters: compression
17/26
test.rra
rracompress test.rra
Madhav Rao March 30
RRAUDIOSamples: <number-of-samples>%%<amplitude1><amplitude2><amplitude3>…………...!crossover samples 11025 channels 0 1…………..…………..…………...
RRA based filters: crossover
18/26
test.rra
rracrossover test.rra
Madhav Rao March 30
RRA based multiple filters: crossover, compress, amplify
Original audio track Crossover
Crossover-amplified-compressed
Crossover- amplified
19/26
Madhav Rao March 30
RRA project used in CS150 in Fall 2009
Students were asked to develop code to strip the initial silence.
The project involved: loops, file-operations such as reading and writing, and functions.
Stepwise refinement method was included to complete the project.
Initial silence
Original audio track given to students
Processed audio track
20/26
Madhav Rao March 30
Other RRA projects to students in the future
RRA loop utility for first year programming students
21/26
Original audio track
Looping over 10 times
Madhav Rao March 30
RRA add utility for first year programming students
22/26
Audio track 1 Audio track 2
Interleaved audio in a single track
Madhav Rao March 30
RRA add utility for first year programming students
23/26
Audio track 1 Audio track 2
Interleaved audio in a single track Interleaved audio in a single track with a flair of longer audio
Madhav Rao March 30
Conclusions
24/26
A readily readable audio format for single-source music and lyrics is demonstrated.
A readily readable audio format is used in the University of Alabama to reproduce drums track of a complete song.
A native RRA player is developed (arplay).
An RRA based student project was used in CS150 curriculum in Fall 2009.
Future student projects can be easily incorporated in introductory programming curriculum.
Madhav Rao March 30
Future work
25/26
A web based RRA interface needs to be developed with an inbuilt RRA VIEWER similar to audacity tool.
A real time multimedia tools such as forwards, rewind, slow, fast needs to be developed.
Madhav Rao March 30
Acknowledgements
26/26
Thanks College of Engineering, UA.
Thanks Computer Science Department, UA.
Thanks Dr. Susan. L. Burkett (ECE), UA.