Sick Beets Team Roles Courtney Angel Kevin Jin Manager - - PowerPoint PPT Presentation

sick beets team roles
SMART_READER_LITE
LIVE PREVIEW

Sick Beets Team Roles Courtney Angel Kevin Jin Manager - - PowerPoint PPT Presentation

Sick Beets Team Roles Courtney Angel Kevin Jin Manager Language System Tester Guru Architect Project Goal Create a language that makes it easy to compose music by rendering MIDI files Language Basics & Control Flow bool if-else


slide-1
SLIDE 1

Sick Beets

slide-2
SLIDE 2

Team Roles

Courtney Manager Angel Language Guru Kevin System Architect Jin Tester

slide-3
SLIDE 3

Project Goal

Create a language that makes it easy to compose music by rendering MIDI files

slide-4
SLIDE 4

Language Basics & Control Flow

bool int float string array if-else for loop while loop

slide-5
SLIDE 5

Language Specifics

Notes Durations Tunes setTempo addLayer print setInstrument render

slide-6
SLIDE 6

Basics of Making Music

Format: i.e. eb6 NoteAccidental Octave-Offset Accidentals: ‘b’ or ‘#’ or ‘’ Octaves: middle C = 5

note duration augment tune

Durations: w: whole h: half q: quarter i: eighth s: sixteenth t: thirty-second * can combine Augment: uses the

  • perator ‘:’

i.e. tune = note(s) : duration(s) Types of Tune Manipulation: ○ concat ‘.’ ○ setTempo ○ setInstrument ○ addLayer

slide-7
SLIDE 7

Mary Had a Little Lamb

1 tune x = [e,d,c,d,e,e,e,r] : i 2 tune y = [d,d,d,r,e,g,g,r] : i 3 tune z = [e,d,d,e,d,c] : i 4 5 tune mary = x.y.x.z 6 tune maryflute = setInstrument(mary, "flute") 7 tune marypiano = setInstrument(mary,"piano") 8 9 render (marypiano.maryflute, "mary.midi")

slide-8
SLIDE 8

Compiler Architecture

slide-9
SLIDE 9

Test Suite

  • ++++++++++++++++++++++++++++++++++++++++++++++++++++ --

52 out of 54 tests passed Failing Tests: test-error 1c1 < 115 \ No newline at end of file

  • > not 115

\ No newline at end of file test-error2 Fatal error: exception Parsing.Parse_error

slide-10
SLIDE 10

Running a Program + Demo

  • 1. Compile the CFugue Library

cd CFugue cmake CMakeLists.txt make cd ..

  • 2. Make the compiler

make

  • 3. Compile the .sb file llvm and run the llvm code

./sb.native < test.sb > test.ll lli test.ll

slide-11
SLIDE 11

Thank You!