changeset 503:04212032c779 prerelease

Removed empty example folders after name change
author Robert Jack <robert.h.jack@gmail.com>
date Wed, 22 Jun 2016 01:17:57 +0100
parents ff6e9199c444
children b6eb94378ca9
files examples/06-Sensors/mpr121/I2C_MPR121.cpp examples/06-Sensors/mpr121/I2C_MPR121.h examples/06-Sensors/mpr121/render.cpp examples/07-DataLogging/basic-writeFile/main.cpp examples/07-DataLogging/basic-writeFile/render.cpp examples/07-DataLogging/loggingSensors/main.cpp examples/07-DataLogging/loggingSensors/render.cpp
diffstat 7 files changed, 0 insertions(+), 832 deletions(-) [+]
line wrap: on
line diff
--- a/examples/06-Sensors/mpr121/I2C_MPR121.cpp	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
- * I2C_MPR121.cpp
- *
- *  Created on: Oct 14, 2013
- *      Author: Victor Zappi
- */
-
-
-#include "I2C_MPR121.h"
-
-I2C_MPR121::I2C_MPR121() {
-
-}
-
-boolean I2C_MPR121::begin(uint8_t bus, uint8_t i2caddr) {
-  _i2c_address = i2caddr;
-	
-  if(initI2C_RW(bus, i2caddr, 0) > 0)
-	  return false;
-
-  // soft reset
-  writeRegister(MPR121_SOFTRESET, 0x63);
-  usleep(1000);
-  //delay(1);
-  for (uint8_t i=0; i<0x7F; i++) {
-  //  Serial.print("$"); Serial.print(i, HEX); 
-  //  Serial.print(": 0x"); Serial.println(readRegister8(i));
-  }
-  
-
-  writeRegister(MPR121_ECR, 0x0);
-
-  uint8_t c = readRegister8(MPR121_CONFIG2);
-  
-  if (c != 0x24) {
-	  rt_printf("MPR121 read 0x%x instead of 0x24\n", c);
-	  return false;
-  }
-
-  setThresholds(12, 6);
-  writeRegister(MPR121_MHDR, 0x01);
-  writeRegister(MPR121_NHDR, 0x01);
-  writeRegister(MPR121_NCLR, 0x0E);
-  writeRegister(MPR121_FDLR, 0x00);
-
-  writeRegister(MPR121_MHDF, 0x01);
-  writeRegister(MPR121_NHDF, 0x05);
-  writeRegister(MPR121_NCLF, 0x01);
-  writeRegister(MPR121_FDLF, 0x00);
-
-  writeRegister(MPR121_NHDT, 0x00);
-  writeRegister(MPR121_NCLT, 0x00);
-  writeRegister(MPR121_FDLT, 0x00);
-
-  writeRegister(MPR121_DEBOUNCE, 0);
-  writeRegister(MPR121_CONFIG1, 0x10); // default, 16uA charge current
-  writeRegister(MPR121_CONFIG2, 0x20); // 0.5uS encoding, 1ms period
-
-//  writeRegister(MPR121_AUTOCONFIG0, 0x8F);
-
-//  writeRegister(MPR121_UPLIMIT, 150);
-//  writeRegister(MPR121_TARGETLIMIT, 100); // should be ~400 (100 shifted)
-//  writeRegister(MPR121_LOWLIMIT, 50);
-  // enable all electrodes
-  writeRegister(MPR121_ECR, 0x8F);  // start with first 5 bits of baseline tracking
-
-  return true;
-}
-
-void I2C_MPR121::setThresholds(uint8_t touch, uint8_t release) {
-  for (uint8_t i=0; i<12; i++) {
-    writeRegister(MPR121_TOUCHTH_0 + 2*i, touch);
-    writeRegister(MPR121_RELEASETH_0 + 2*i, release);
-  }
-}
-
-uint16_t  I2C_MPR121::filteredData(uint8_t t) {
-  if (t > 12) return 0;
-  return readRegister16(MPR121_FILTDATA_0L + t*2);
-}
-
-uint16_t  I2C_MPR121::baselineData(uint8_t t) {
-  if (t > 12) return 0;
-  uint16_t bl = readRegister8(MPR121_BASELINE_0 + t);
-  return (bl << 2);
-}
-
-uint16_t  I2C_MPR121::touched(void) {
-  uint16_t t = readRegister16(MPR121_TOUCHSTATUS_L);
-  return t & 0x0FFF;
-}
-
-/*********************************************************************/
-
-
-uint8_t I2C_MPR121::readRegister8(uint8_t reg) {
-    unsigned char inbuf, outbuf;
-    struct i2c_rdwr_ioctl_data packets;
-    struct i2c_msg messages[2];
-
-    /*
-     * In order to read a register, we first do a "dummy write" by writing
-     * 0 bytes to the register we want to read from.  This is similar to
-     * the packet in set_i2c_register, except it's 1 byte rather than 2.
-     */
-    outbuf = reg;
-    messages[0].addr  = 0x5A;
-    messages[0].flags = 0;
-    messages[0].len   = sizeof(outbuf);
-    messages[0].buf   = &outbuf;
-
-    /* The data will get returned in this structure */
-    messages[1].addr  = 0x5A;
-    messages[1].flags = I2C_M_RD/* | I2C_M_NOSTART*/;
-    messages[1].len   = sizeof(inbuf);
-    messages[1].buf   = &inbuf;
-
-    /* Send the request to the kernel and get the result back */
-    packets.msgs      = messages;
-    packets.nmsgs     = 2;
-    if(ioctl(i2C_file, I2C_RDWR, &packets) < 0) {
-        rt_printf("Unable to send data");
-        return 0;
-    }
-
-    return inbuf;
-}
-
-uint16_t I2C_MPR121::readRegister16(uint8_t reg) {
-    unsigned char inbuf[2], outbuf;
-    struct i2c_rdwr_ioctl_data packets;
-    struct i2c_msg messages[2];
-
-    /*
-     * In order to read a register, we first do a "dummy write" by writing
-     * 0 bytes to the register we want to read from.  This is similar to
-     * the packet in set_i2c_register, except it's 1 byte rather than 2.
-     */
-    outbuf = reg;
-    messages[0].addr  = _i2c_address;
-    messages[0].flags = 0;
-    messages[0].len   = sizeof(outbuf);
-    messages[0].buf   = &outbuf;
-
-    /* The data will get returned in this structure */
-    messages[1].addr  = _i2c_address;
-    messages[1].flags = I2C_M_RD/* | I2C_M_NOSTART*/;
-    messages[1].len   = sizeof(inbuf);
-    messages[1].buf   = inbuf;
-
-    /* Send the request to the kernel and get the result back */
-    packets.msgs      = messages;
-    packets.nmsgs     = 2;
-    if(ioctl(i2C_file, I2C_RDWR, &packets) < 0) {
-        rt_printf("Unable to send data");
-        return 0;
-    }
-
-    return (uint16_t)inbuf[0] | (((uint16_t)inbuf[1]) << 8);
-}
-
-/**************************************************************************/
-/*!
-    @brief  Writes 8-bits to the specified destination register
-*/
-/**************************************************************************/
-void I2C_MPR121::writeRegister(uint8_t reg, uint8_t value) {
-	uint8_t buf[2] = { reg, value };
-
-	if(write(i2C_file, buf, 2) != 2)
-	{
-		cout << "Failed to write register " << (int)reg << " on MPR121\n";
-		return;
-	}
-}
-
--- a/examples/06-Sensors/mpr121/I2C_MPR121.h	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * MPR121 Bela demo
- * 
- * Andrew McPherson
- * Based on Adafruit library by Limor Fried/Ladyada
- */
-
-#ifndef I2CTK_H_
-#define I2CTK_H_
-
-#include <I2c.h>
-#include "Utilities.h"
-
-typedef bool boolean;
-
-#define MPR121_I2CADDR_DEFAULT 0x5A
-
-#define MPR121_TOUCHSTATUS_L 0x00
-#define MPR121_TOUCHSTATUS_H 0x01
-#define MPR121_FILTDATA_0L  0x04
-#define MPR121_FILTDATA_0H  0x05
-#define MPR121_BASELINE_0   0x1E
-#define MPR121_MHDR         0x2B
-#define MPR121_NHDR         0x2C
-#define MPR121_NCLR         0x2D
-#define MPR121_FDLR         0x2E
-#define MPR121_MHDF         0x2F
-#define MPR121_NHDF         0x30
-#define MPR121_NCLF         0x31
-#define MPR121_FDLF         0x32
-#define MPR121_NHDT         0x33
-#define MPR121_NCLT         0x34
-#define MPR121_FDLT         0x35
-
-#define MPR121_TOUCHTH_0    0x41
-#define MPR121_RELEASETH_0    0x42
-#define MPR121_DEBOUNCE 0x5B
-#define MPR121_CONFIG1 0x5C
-#define MPR121_CONFIG2 0x5D
-#define MPR121_CHARGECURR_0 0x5F
-#define MPR121_CHARGETIME_1 0x6C
-#define MPR121_ECR 0x5E
-#define MPR121_AUTOCONFIG0 0x7B
-#define MPR121_AUTOCONFIG1 0x7C
-#define MPR121_UPLIMIT   0x7D
-#define MPR121_LOWLIMIT  0x7E
-#define MPR121_TARGETLIMIT  0x7F
-
-#define MPR121_GPIODIR  0x76
-#define MPR121_GPIOEN  0x77
-#define MPR121_GPIOSET  0x78
-#define MPR121_GPIOCLR  0x79
-#define MPR121_GPIOTOGGLE  0x7A
-
-#define MPR121_SOFTRESET 0x80
-
-class I2C_MPR121 : public I2c
-{
-public:
-	// Hardware I2C
-	I2C_MPR121();
-
-	boolean begin(uint8_t bus = 1, uint8_t i2caddr = MPR121_I2CADDR_DEFAULT);
-
-	uint16_t filteredData(uint8_t t);
-	uint16_t  baselineData(uint8_t t);
-
-	uint8_t readRegister8(uint8_t reg);
-	uint16_t readRegister16(uint8_t reg);
-	void writeRegister(uint8_t reg, uint8_t value);
-	uint16_t touched(void);
- 
- 	void setThresholds(uint8_t touch, uint8_t release);
-	
-	int readI2C() { return 0; } // Unused
-	
-private:
-	int _i2c_address;
-};
-
-
-#endif /* I2CTK_H_ */
--- a/examples/06-Sensors/mpr121/render.cpp	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
- ____  _____ _        _    
-| __ )| ____| |      / \   
-|  _ \|  _| | |     / _ \  
-| |_) | |___| |___ / ___ \ 
-|____/|_____|_____/_/   \_\
-
-The platform for ultra-low latency audio and sensor processing
-
-http://bela.io
-
-A project of the Augmented Instruments Laboratory within the
-Centre for Digital Music at Queen Mary University of London.
-http://www.eecs.qmul.ac.uk/~andrewm
-
-(c) 2016 Augmented Instruments Laboratory: Andrew McPherson,
-  Astrid Bin, Liam Donovan, Christian Heinrichs, Robert Jack,
-  Giulio Moro, Laurel Pardue, Victor Zappi. All rights reserved.
-
-The Bela software is distributed under the GNU Lesser General Public License
-(LGPL 3.0), available here: https://www.gnu.org/licenses/lgpl-3.0.txt
-*/
-
-
-#include <Bela.h>
-#include <cmath>
-#include <rtdk.h>
-#include "I2C_MPR121.h"
-
-// How many pins there are
-#define NUM_TOUCH_PINS 12
-
-// Define this to print data to terminal
-#undef DEBUG_MPR121
-
-// Change this to change how often the MPR121 is read (in Hz)
-int readInterval = 50;
-
-// Change this threshold to set the minimum amount of touch
-int threshold = 40;
-
-// This array holds the continuous sensor values
-int sensorValue[NUM_TOUCH_PINS];
-
-// ---- test code stuff -- can be deleted for your example ----
-
-// 12 notes of a C major scale...
-float gFrequencies[NUM_TOUCH_PINS] = {261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88, 523.25, 587.33, 659.25, 698.25, 783.99};
-
-// This is internal stuff for the demo
-float gNormFrequencies[NUM_TOUCH_PINS];
-float gPhases[NUM_TOUCH_PINS] = {0};
-
-// ---- internal stuff -- do not change -----
-
-I2C_MPR121 mpr121;			// Object to handle MPR121 sensing
-AuxiliaryTask i2cTask;		// Auxiliary task to read I2C
-
-int readCount = 0;			// How long until we read again...
-int readIntervalSamples = 0; // How many samples between reads
-
-void readMPR121();
-
-// setup() is called once before the audio rendering starts.
-// Use it to perform any initialisation and allocation which is dependent
-// on the period size or sample rate.
-//
-// userData holds an opaque pointer to a data structure that was passed
-// in from the call to initAudio().
-//
-// Return true on success; returning false halts the program.
-
-bool setup(BelaContext *context, void *userData)
-{
-	if(!mpr121.begin(1, 0x5A)) {
-		rt_printf("Error initialising MPR121\n");
-		return false;
-	}
-	
-	i2cTask = Bela_createAuxiliaryTask(readMPR121, 50, "bela-mpr121");
-	readIntervalSamples = context->audioSampleRate / readInterval;
-	
-	for(int i = 0; i < NUM_TOUCH_PINS; i++) {
-		gNormFrequencies[i] = 2.0 * M_PI * gFrequencies[i] / context->audioSampleRate;
-	}
-	
-	return true;
-}
-
-// render() is called regularly at the highest priority by the audio engine.
-// Input and output are given from the audio hardware and the other
-// ADCs and DACs (if available). If only audio is available, numAnalogFrames
-// will be 0.
-
-void render(BelaContext *context, void *userData)
-{
-	for(int n = 0; n < context->audioFrames; n++) {
-		// Keep this code: it schedules the touch sensor readings
-		if(++readCount >= readIntervalSamples) {
-			readCount = 0;
-			Bela_scheduleAuxiliaryTask(i2cTask);
-		}
-		
-		float sample = 0.0;
-		
-		// This code can be replaced with your favourite audio code
-		for(int i = 0; i < NUM_TOUCH_PINS; i++) {
-			float amplitude = sensorValue[i] / 400.0;
-			
-			// Prevent clipping
-			if(amplitude > 0.5)
-				amplitude = 0.5;
-			
-			sample += amplitude * sinf(gPhases[i]);
-			gPhases[i] += gNormFrequencies[i];
-			if(gPhases[i] > 2.0 * M_PI)
-				gPhases[i] -= 2.0 * M_PI;
-		}
-		
-		for(int ch = 0; ch < context->audioChannels; ch++)
-			context->audioOut[context->audioChannels * n + ch] = sample;
-	}
-}
-
-// cleanup() is called once at the end, after the audio has stopped.
-// Release any resources that were allocated in setup().
-
-void cleanup(BelaContext *context, void *userData)
-{
-	// Nothing to do here
-}
-
-
-// Auxiliary task to read the I2C board
-void readMPR121()
-{
-	for(int i = 0; i < NUM_TOUCH_PINS; i++) {
-		sensorValue[i] = -(mpr121.filteredData(i) - mpr121.baselineData(i));
-		sensorValue[i] -= threshold;
-		if(sensorValue[i] < 0)
-			sensorValue[i] = 0;
-#ifdef DEBUG_MPR121
-		rt_printf("%d ", sensorValue[i]);
-#endif
-	}
-#ifdef DEBUG_MPR121
-	rt_printf("\n");
-#endif
-	
-	// You can use this to read binary on/off touch state more easily
-	//rt_printf("Touched: %x\n", mpr121.touched());
-}
-
-/* ------------ Project Explantation ------------ */
-
-/**
-\example 06-capacitive-touch
-
-Capacitive touch sensing with MPR121
----------------------------
-
-This sketch allows you to hook up an MPR121 capactive touch sensing device
-to Bela, for example the SparkFun Capacitive Touch Sensor Breakout - MPR121.
-The breakout board gives you 12 electrode connections.
-
-To get this working with Bela you need to connect the breakout board to the I2C
-terminal on the Bela board. See the Pin guide for details of which pin is which.
-
-The sensor data will then be available for you to use in the array 
-`sensorValue[NUM_TOUCH_PINS]`.
-*/
--- a/examples/07-DataLogging/basic-writeFile/main.cpp	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- ____  _____ _        _    
-| __ )| ____| |      / \   
-|  _ \|  _| | |     / _ \  
-| |_) | |___| |___ / ___ \ 
-|____/|_____|_____/_/   \_\
-
-The platform for ultra-low latency audio and sensor processing
-
-http://bela.io
-
-A project of the Augmented Instruments Laboratory within the
-Centre for Digital Music at Queen Mary University of London.
-http://www.eecs.qmul.ac.uk/~andrewm
-
-(c) 2016 Augmented Instruments Laboratory: Andrew McPherson,
-  Astrid Bin, Liam Donovan, Christian Heinrichs, Robert Jack,
-  Giulio Moro, Laurel Pardue, Victor Zappi. All rights reserved.
-
-The Bela software is distributed under the GNU Lesser General Public License
-(LGPL 3.0), available here: https://www.gnu.org/licenses/lgpl-3.0.txt
-*/
-
-
-#include <unistd.h>
-#include <iostream>
-#include <cstdlib>
-#include <libgen.h>
-#include <signal.h>
-#include <getopt.h>
-#include <Bela.h>
-
-using namespace std;
-
-// Handle Ctrl-C by requesting that the audio rendering stop
-void interrupt_handler(int var)
-{
-	gShouldStop = true;
-}
-
-// Print usage information
-void usage(const char * processName)
-{
-	cerr << "Usage: " << processName << " [options]" << endl;
-
-	Bela_usage();
-
-	cerr << "   --frequency [-f] frequency: Set the frequency of the oscillator\n";
-	cerr << "   --help [-h]:                Print this menu\n";
-}
-
-int main(int argc, char *argv[])
-{
-	BelaInitSettings settings;	// Standard audio settings
-	float frequency = 440.0;	// Frequency of oscillator
-
-	struct option customOptions[] =
-	{
-		{"help", 0, NULL, 'h'},
-		{"frequency", 1, NULL, 'f'},
-		{NULL, 0, NULL, 0}
-	};
-
-	// Set default settings
-	Bela_defaultSettings(&settings);
-
-	// Parse command-line arguments
-	while (1) {
-		int c;
-		if ((c = Bela_getopt_long(argc, argv, "hf:", customOptions, &settings)) < 0)
-				break;
-		switch (c) {
-		case 'h':
-				usage(basename(argv[0]));
-				exit(0);
-		case 'f':
-				frequency = atof(optarg);
-				break;
-		case '?':
-		default:
-				usage(basename(argv[0]));
-				exit(1);
-		}
-	}
-
-	// Initialise the PRU audio device
-	if(Bela_initAudio(&settings, &frequency) != 0) {
-		cout << "Error: unable to initialise audio" << endl;
-		return -1;
-	}
-
-	// Start the audio device running
-	if(Bela_startAudio()) {
-		cout << "Error: unable to start real-time audio" << endl;
-		return -1;
-	}
-
-	// Set up interrupt handler to catch Control-C and SIGTERM
-	signal(SIGINT, interrupt_handler);
-	signal(SIGTERM, interrupt_handler);
-
-	// Run until told to stop
-	while(!gShouldStop) {
-		usleep(100000);
-	}
-
-	// Stop the audio device
-	Bela_stopAudio();
-
-	// Clean up any resources allocated for audio
-	Bela_cleanupAudio();
-
-	// All done!
-	return 0;
-}
--- a/examples/07-DataLogging/basic-writeFile/render.cpp	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- ____  _____ _        _    
-| __ )| ____| |      / \   
-|  _ \|  _| | |     / _ \  
-| |_) | |___| |___ / ___ \ 
-|____/|_____|_____/_/   \_\
-
-The platform for ultra-low latency audio and sensor processing
-
-http://bela.io
-
-A project of the Augmented Instruments Laboratory within the
-Centre for Digital Music at Queen Mary University of London.
-http://www.eecs.qmul.ac.uk/~andrewm
-
-(c) 2016 Augmented Instruments Laboratory: Andrew McPherson,
-  Astrid Bin, Liam Donovan, Christian Heinrichs, Robert Jack,
-  Giulio Moro, Laurel Pardue, Victor Zappi. All rights reserved.
-
-The Bela software is distributed under the GNU Lesser General Public License
-(LGPL 3.0), available here: https://www.gnu.org/licenses/lgpl-3.0.txt
-*/
-
-
-#include <Bela.h> 
-#include <cmath>
-#include <WriteFile.h>
-
-float gPhase1, gPhase2;
-float gFrequency1, gFrequency2;
-float gInverseSampleRate;
-
-WriteFile file1;
-WriteFile file2;
-
-bool setup(BelaContext *context, void *userData)
-{
-	gInverseSampleRate = 1.0/context->audioSampleRate;
-	file1.init("out1.m"); //set the file name to write to
-	file1.setHeader("myvar=[\n"); //set a line to be printed at the beginning of the file
-	file1.setFooter("];\n"); //set a line to be printed at the end of the file
-	file1.setEcho(true); // enable echo to the console (as well as to the file)
-	file1.setFormat("%.5f %.10f %f\n"); // set the format that you want to use for your output. Please use %f only (with modifiers)
-	file2.init("out2.m");
-	file2.setHeader("input=[\n");
-	file2.setFooter("];\n");
-	file2.setEcho(false);
-	file2.setFormat("%f\n");
-	gPhase1 = 0.0;
-	gPhase2 = 0.0;
-
-	gFrequency1 = 200.0;
-	gFrequency2 = 201.0;
-	return true; 
-}
-
-void render(BelaContext *context, void *userData)
-{
-	static int count = 0;
-	if((count&16383) == 0){
-    	file2.log(context->audioIn, context->audioFrames); //write the input buffer every so often
-	}
-	for(unsigned int n = 0; n < context->audioFrames; n++) {
-	    float chn1 = sinf(gPhase1);
-	    float chn2 = sinf(gPhase2);
-	    gPhase1 += 2.0 * M_PI * gFrequency1 * gInverseSampleRate;
-	    gPhase2 += 2.0 * M_PI * gFrequency2 * gInverseSampleRate;
-		if(gPhase1 > 2.0 * M_PI)
-			gPhase1 -= 2.0 * M_PI;
-		if(gPhase2 > 2.0 * M_PI)
-			gPhase2 -= 2.0 * M_PI;
-		if( (count&511) == 0){
-			file1.log(chn1);
-			file1.log(chn2);
-			file1.log(count);
-		}
-		count++;
-	}
-}
-
-// cleanup_render() is called once at the end, after the audio has stopped.
-// Release any resources that were allocated in initialise_render().
-
-void cleanup(BelaContext *context, void *userData)
-{
-    
-}
-
-/* ------------ Project Explantation ------------ */
-
-/**
-\example 07-write-file
-
-Writing data to a file
----------------------------
-
-This sketch demonstrates how to log values from within a project for later processing or analysis.
-
-*/
-
--- a/examples/07-DataLogging/loggingSensors/main.cpp	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- ____  _____ _        _    
-| __ )| ____| |      / \   
-|  _ \|  _| | |     / _ \  
-| |_) | |___| |___ / ___ \ 
-|____/|_____|_____/_/   \_\
-
-The platform for ultra-low latency audio and sensor processing
-
-http://bela.io
-
-A project of the Augmented Instruments Laboratory within the
-Centre for Digital Music at Queen Mary University of London.
-http://www.eecs.qmul.ac.uk/~andrewm
-
-(c) 2016 Augmented Instruments Laboratory: Andrew McPherson,
-  Astrid Bin, Liam Donovan, Christian Heinrichs, Robert Jack,
-  Giulio Moro, Laurel Pardue, Victor Zappi. All rights reserved.
-
-The Bela software is distributed under the GNU Lesser General Public License
-(LGPL 3.0), available here: https://www.gnu.org/licenses/lgpl-3.0.txt
-*/
-
-
-#include <unistd.h>
-#include <iostream>
-#include <cstdlib>
-#include <libgen.h>
-#include <signal.h>
-#include <getopt.h>
-#include <Bela.h>
-
-using namespace std;
-
-// Handle Ctrl-C by requesting that the audio rendering stop
-void interrupt_handler(int var)
-{
-	gShouldStop = true;
-}
-
-// Print usage information
-void usage(const char * processName)
-{
-	cerr << "Usage: " << processName << " [options]" << endl;
-
-	Bela_usage();
-
-	cerr << "   --frequency [-f] frequency: Set the frequency of the oscillator\n";
-	cerr << "   --help [-h]:                Print this menu\n";
-}
-
-int main(int argc, char *argv[])
-{
-	BelaInitSettings settings;	// Standard audio settings
-	float frequency = 440.0;	// Frequency of oscillator
-
-	struct option customOptions[] =
-	{
-		{"help", 0, NULL, 'h'},
-		{"frequency", 1, NULL, 'f'},
-		{NULL, 0, NULL, 0}
-	};
-
-	// Set default settings
-	Bela_defaultSettings(&settings);
-
-	// Parse command-line arguments
-	while (1) {
-		int c;
-		if ((c = Bela_getopt_long(argc, argv, "hf:", customOptions, &settings)) < 0)
-				break;
-		switch (c) {
-		case 'h':
-				usage(basename(argv[0]));
-				exit(0);
-		case 'f':
-				frequency = atof(optarg);
-				break;
-		case '?':
-		default:
-				usage(basename(argv[0]));
-				exit(1);
-		}
-	}
-
-	// Initialise the PRU audio device
-	if(Bela_initAudio(&settings, &frequency) != 0) {
-		cout << "Error: unable to initialise audio" << endl;
-		return -1;
-	}
-
-	// Start the audio device running
-	if(Bela_startAudio()) {
-		cout << "Error: unable to start real-time audio" << endl;
-		return -1;
-	}
-
-	// Set up interrupt handler to catch Control-C and SIGTERM
-	signal(SIGINT, interrupt_handler);
-	signal(SIGTERM, interrupt_handler);
-
-	// Run until told to stop
-	while(!gShouldStop) {
-		usleep(100000);
-	}
-
-	// Stop the audio device
-	Bela_stopAudio();
-
-	// Clean up any resources allocated for audio
-	Bela_cleanupAudio();
-
-	// All done!
-	return 0;
-}
--- a/examples/07-DataLogging/loggingSensors/render.cpp	Wed Jun 22 01:15:53 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- ____  _____ _        _    
-| __ )| ____| |      / \   
-|  _ \|  _| | |     / _ \  
-| |_) | |___| |___ / ___ \ 
-|____/|_____|_____/_/   \_\
-
-The platform for ultra-low latency audio and sensor processing
-
-http://bela.io
-
-A project of the Augmented Instruments Laboratory within the
-Centre for Digital Music at Queen Mary University of London.
-http://www.eecs.qmul.ac.uk/~andrewm
-
-(c) 2016 Augmented Instruments Laboratory: Andrew McPherson,
-  Astrid Bin, Liam Donovan, Christian Heinrichs, Robert Jack,
-  Giulio Moro, Laurel Pardue, Victor Zappi. All rights reserved.
-
-The Bela software is distributed under the GNU Lesser General Public License
-(LGPL 3.0), available here: https://www.gnu.org/licenses/lgpl-3.0.txt
-*/
-
-
-#include <Bela.h> 
-#include <cmath>
-#include <WriteFile.h>
-
-WriteFile file1;
-WriteFile file2;
-
-bool setup(BelaContext *context, void *userData)
-{
-	file1.init("out.bin"); //set the file name to write to
-	file1.setEchoInterval(1000);
-	file1.setFileType(kBinary);
-	file1.setFormat("%.4f %.4f\n"); // set the format that you want to use for your output. Please use %f only (with modifiers). When in binary mode, this is used only for echoing to console
-	file2.init("out.m"); //set the file name to write to
-	file2.setHeader("myvar=[\n"); //set one or more lines to be printed at the beginning of the file
-	file2.setFooter("];\n"); //set one or more lines to be printed at the end of the file
-	file2.setFormat("%.4f\n"); // set the format that you want to use for your output. Please use %f only (with modifiers)
-	file2.setFileType(kText);
-	file2.setEchoInterval(10000); // only print to the console 1 line every other 10000
-	return true; 
-}
-
-void render(BelaContext *context, void *userData)
-{
-	for(unsigned int n = 0; n < context->analogFrames; n++) {
-			file1.log(&(context->analogIn[n*context->analogFrames]), 2); // log an array of values
-			file2.log(context->analogIn[n*context->analogFrames]); // log a single value
-	}
-}
-
-// cleanup_render() is called once at the end, after the audio has stopped.
-// Release any resources that were allocated in initialise_render().
-
-void cleanup(BelaContext *context, void *userData)
-{
-    
-}
-
-/* ------------ Project Explantation ------------ */
-
-/**
-\example 07-logging-sensors
-
-Logging Sensor Data
----------------------------
-
-This sketch demonstrates how to log sensor data for later processing or analysis.
-*/
-