The first thing you should know about me is that I don't like unstated assumptions.
The world is a complicated place, and our small minds can barely hope to fully grasp it. So, I'll pretend that I'm a good writer and you can pretend you're interested in reading about what sounds like a confused dating profile.
It's not a dating profile.
I like long walks on the gravely beaches of Alberta, pina colada flavored bubble tea, and getting caught in a try/catch exception. My pastimes include coding, making impeccable websites, making peckable websites (*insert chicken peck*), and guitar. If you'd like a website like this one, and would like to pay me for it, head over to the freelance (*link*) section. If you'd like to hear more options, please press 2. (*insert dial popup*)
In all seriousness, I wrote this website to help market myself as I move to freelancing and just really to show others what a website can be and what kinds of things that websites nowadays are capable of. Of course I don't claim to have the fanciest website around, but it loads quick, it's quirky (if I do say so), and it represents who I am. Coincidentally, that's also what kinds of things I'd like to work on for freelancing.
Ok, so maybe I’m like 10 years late hopping onto the
Mothership was an idea for a modular-synth-like program that I had after finally getting
Audio Server Setup
First, I forked my Pi’ed Pedal repo and started coding the base engine that everything would run on. Every module would be represented using this struct:
This way, any data could be passed from any module in anyway (more or less). The only hitch is that the author of the C effect module has to predefine what size his arrays will be and stick to that size when coding. This way the UI knows how to handle such things. I mean, you could still have a buffer size mismatch
Then, to link a module to another, I use things called
Next, we need something to hold all modules and wires and whatnot so we can pass it to UI functions to modify it, then pass it to the engine so it can run all the effects.
I’ve been told that I should post my jackd API calls since there seems to be no documentation on how to use the newer version of jackd since everything seems to have been
If you check the file on the github repo you can see the full code for the file (also browse around for definitions of other ms_ functions).
For example, a sine wave generator has no input and only an output (it does though have 1 arg for frequency). It reads the values from a predefined sine wave buffer containing a single wavelength of a sine wave:
My next plan was to use a pi as a way to control a single module through wifi, then to have the possibility of multiple of these devices able to run at once to allow for collaborative music creation. Except I realized halfway through building the pedal that pi’s don’t have analog pins. D’oh.
After a little research, I decided to use an
- No need to lug a router around with my setup or host a wifi network from my laptop
- Easy(er) to setup. Doesn't require me to implement the entire wifi stack
- ....or buy a clunky shield to do it for me, I just can't afford the vertical space
The easy part of the BLE setup was with the arduino. Simply cross the TX/RX lines into a serial port and away you go. Setting up a BLE server (actually client because of backwards BLE architecture) on my laptop, not so easy. After messing with
- Hacking a BLE lightbulb: Adafruit Tutorial
- BLE Scanning Phone Apps: Adafruit LE Connect, BLE Controller (for RedBear)
- Specific to my BLE device (RedBear Mini): Setting up with Arduino
- And just for fun: I am Jack's Heart Monitor
Turns out in my case (with the RedBear Mini) placing the MAC address (or whatever bluetooth calls it) in as a command line argument doesn’t work when trying to connect with
After that, reading/writing was super easy. So, onto the build:
After soldering for what seemed like an eternity (maybe it was just the
As I got onto pin testing my knobs, one of the potentiometers didn’t work whatsoever, and it was essentially sucking power and doing nothing useful for society….err ahem I mean my circuit (damn freeloadin’ pots!). Since I didn’t order extras (fuck) I replaced it with a shittier pot (not
END OF POST
Archived from my old website. I ended up redoing the audio server in python as well as not using BLE because of it’s slowness (couldn’t get more than like 10 bytes/s) and instead just using a wire, y’know like in the 50’s!?
things I made
In no order (TODO: add images, reformat as grid)
- Arduino Guitar Pedal
- 4Score Iphone game
- Soundcloud scraper
- Raspberry Pi Wireless Sampler
- Home-made touch screen
- Software modular audio synthesiser
- Experiments in natural language processing and machine learning
- LED control circuits withh arduino
- Arduino spatula bot controlled by twitch
- Github commit viewer
- Auditory github commit viewer
- App for geotagging landmarks and commenting (anonument)
- Redid computer engineering wordpress site
- This website
- Experiments in DSP for face/eye tracking
- Homemade unofficial calendar for the 2015 Edmonton Fringe
- GPS path viewer
- Scrolling RPG platformer for GameJam
- Experiments in genetic programming
- Experiments in GPU programming (CUDA/WebGL)
- Encoding images from phone onto reel to reel tapedeck
- Program to take screenshots of Ionic phone apps
- Tool to see how frequently JS code is run (js-hist)
- Multi-user poetry app with unique suggestion UI
- Online signal for when to go to the bar in school
- Unfinished procedurally generated space RPG
- Discover Alberta app
- Enroute Taxi Advertising System
- Forestry radio tower registry
- Timesheet management system
- Home appliance maintenance app
- U of A Rutherford house tour app
- Social restaurant marketing app (MyTab)