Welcome to Froot Loops Homepage

Are you ready to get loopy? Get ready for the opportunity to create your own loops!

Vision

A fun, useful tool for aspiring loop pedal artists and anyone else who likes making recordings on recordings, to be able to record and manipulate loops in real time without the use of a loop pedal.

The Idea stemmed from listening to artists such as Mike Love , Jhameel and Theresa Andersson and being blown away at their ability to become a one man band thanks to looping technology.

This project is also a really cool double entendre, because not only are the you creating loops in the general shape of fruit, but the loops are actually loops of delicious, audio that you can bite into with your cochlea. So you are in fact creating loops shaped like loops.

Motivation

As a solo artist it was my original motivation to come up with a simpler system that was more user friendly for aspiring loop artists to perform live acoustic music with real-time looping capabilities.

This motivation in turn with the fact that my grandmother told me that I had to eat more fruit during the summer time, as well as the deeply embedded love for the taste of Froot Loops and the aesthetic of toucans, I decided to make a fun and easy way in which to provide real time audio looping capabilities to the masses while still enjoying the looping process itself. Use it in your performances, use it in your room, in your kithcen, while eating fruit loops, while surfing facebook and basically in any other situation you can think of. Restroom Looping is not recommended... and frankly would be kind of sketch.

Experience Design

The design of the project is quite simple. At the most basic level there is a recording element and a playback element, triggered by a specific key commands. see instructions. The recording mechanism uses RtAudio and takes in real time input from the microphone and copies it into a buffer that can then be triggered for playback later. The playback mechanism takes the recorded buffer and reads through it circularly, putting through those values to the speakers through the output buffer in RtAudio.

All of the succesive recorded buffers are children of the main input-output buffer whose values are the ones that are copied into the successive recorded buffers. It is essential that this buffer is visualized and available so that singing and other shinanigans can occure concurrently with the loops. Otherwise you wouldn't be able to play with your loops. That would be sad.

In terms of the visualizing of the loops themselves I used opengl to create a circlular real-time waveform visulization of the output. The circles are selectable and deletable.

To help you in the syncrhonzation of different loops, the loops are set to a specific length of 4 seconds with a cursor that helps you know where you are in time. This could be improved upon to become the length of the first buffer when it records. But for now its fixed. You know that you are recording when your main froot loop turns pink. You know you are finished recording when it turns back to blue.

Milestones

Milestone 1

    Understand the concept of building a loop pedal
    Make at least one loop in pseudo code
    Implement psuedo code in C++

Milestone 2

    Visualize the main audio loop as a circle
    Create successive recorded loops to be recorded and playedback in realtime
    Visualize those loops
    Ability to interact with differnt loops including deleting from existence

Milestone 3

    Create a cursor so that you can track your playback and recording in real-time and synchronize your own loops.
    Make the colors of the loops change when interacted with. Change color of main loop when recording an done recording.
    Make a loopy and fruity composition to show off the looping capabilities.

Future Goals

Some good goals would to be able to mute the loops vs. just deleting them. It would be good as well to find a way to trigger the recording and playback processes with something other than keyboard functions. Being able to have the first recorded buffer become the length of the rest of the buffers would be amazing to. Right now it is fixed... but it would be great not being fixed. It would be nice to work on the graphics a lot more, maybe actually creating real 3-d fruit like on fruit ninja that drop from an animated tree that shakes when you are recording and stops when it plays back. Also it would be nice to add effects such as reverb, distortion and other things to independent loops. Another great feature wold be to have a universal clocking mechanism that allowed you to see where you were in synchronization with the other loops. One whose length would be set according to the length of the first recorded buffer. Making things print out that you have selected it, or that you are now recording or playing back or muted in the graphics would be nice as well.

Contributors

I would like to thank Jorge Herrera who helped with the implementation of the RecordBuffer class and numerous consultations as I have ben going through this process of learning c++ while making a final project.

I would like to thank Cliff Crosland who helped with the recording and playback and loop deleting mechanism and was there to help me understand how I could actually say what I wanted to the computer.

I would like to thank Mayank Sanganeria who helped with the cursor development.

I would like to thank Alex Lin who helped me with the loop selecting and deleting mechanism

The css design for the website was open source from http://freecsstemplates.org/

Thank you Professor Ge Wang for having expectations higher than my abilities.. please have mercy.