Tag Archives: UI

Simple Analog Synth Brad Ormand

2016.01.22 – ARM Cortex M4F System Running Great

There’s so much going on in my research and experiments, it’s just hard to explain everything right now.  But, in a nutshell, I have been patiently (but consistently) ramping up knowledge of building some awesome applications for the ARM Cortex M4 – both hardware and software.  I have a lot of audio processing, lighting, and graphics ideas to start on so my first step is to become well-versed in their operation.

In the last month or so, I have been drawing faces, drawing UI, painting, making headway on the ARM stuff, woodcarving, working on music, running over my budget for the new year (like multiple times with complicated, categorical spreadsheets), doing some behavior modification (like stopping drinking sodas and exercise regularly and others), working on this site, and so much more that I don’t write about.  Sometimes, it does seem like I have too many things going on, but like I say – “I just follow my interest” – and, where it leads, that’s where I go- just enjoying life as it comes, working with what I have.  I definitely try to wisely balance it all by not getting into “comfort-only” scenarios, like spending gobs of time on stuff that doesn’t require any hard thinking or sweat from the brow.  Rather, all of my “hobbies” require actual work and are investments in my future and have the additional benefit of brightening my days when I do them.  The fulfillment factor is high.  That’s what I’m feeling right now.  But, I also have to take it one step at a time as to not get burned out – going for a good balance.  It’s a great start to the new year.

// A R M

As for the ARM stuff, though…  Lately, I have been deeply involved in trying to find a great toolchain and chipset that would work well with Mac OS X and my limited PCB fab opportunities here.  I heavily explored the Atmel SAM4S for a while, and then the Silicon Labs EFM32 (I do like Simplicity Studio), and even experimented more with PIC24’s and PIC32’s (I like MPLABX, too), but I have been heavily preferring the NXP / Freescale Kinetis K series Cortex chips and their KDS (surprised, but happy about their merger 🙂 ).  I have everything I need to program and debug them,  and I think Freescale and NXP have a lot of support around their products these days.

ARM Breadboard Circuit 1 Brad Ormand

And, whichever ARM Cortex M4F I choose, I feel future-safety coming off this because of the CMSIS rallying and the ARM standards and it’s growth.  And, the IoT revolution is really just beginning, and I want on the train, and I’m digging my own tunnel with these research shovels.  This is certainly a new career path for me, but as I am already “dug in” to, and known, in the software industry I am currently employed in, I will continue that for a few more years.  It’s stable.  But, as I get more and more skilled at producing hit ARM apps with CMSIS, C/C++, and assembly, and as I refine my architecture ideas (both HW+SW), I’ll be closer to being able to switch my day-to-day doings over to full time by about 2020, I believe.

// G O O D _ M I L E S T O N E

So, that’s what I’m thinking for that…  It was a huge milestone to get the Kinetis rolling with some of my former code written for the PIC24.  I ported some stuff over and after a few nights, I finally got it rolling!  It was really nice to see it running as expected.  Many things are different – interrupts, 32-bit vs 16-bit, registers, SysTick, NVIC, etc., so being able to rely on this setup as my “go-to” platform gives me a lot of leeway to design stuff from now on.  It’s huge because it finally allows me to have a string of product design and code architecture sessions over the next months that won’t be interrupted by changing platforms or technical difficulties.

Also, I’m using the Segger J-Link now with a bare, exposed, Kinetis K22 ARM LQFP 64 chip that I soldered to a little plain break-out board (with filter caps and custom programming header and stuff).  I’m going direct to bare chip without a dev kit, which was what one of my requirements were all along to getting this train started.  I wanna design the board, power, regulation, routing, logic levels, inverters, amplification, communication, interfacing, headers, electro-mechanicals, etc. – the entire system.  Cuz, I think that stuff is fun, too.  More work, but I wouldn’t wanna give up that phase.  And, so I’m saying, that now that I’ve got that innovation complete with something stable in the lab, I feel like I have a platform to jump off of to design an endless amount of other applications, unrestrained.  But, boy did it take a few months of setup time and sifting through the cruft of what would work best for me and my setup.  Now, all good.

// T H E   _  F U T U R E

Simple Analog Synth Brad Ormand

I think, first, I’ll get the previous project I wrote about last month all set up with this new “drive train” and then move on back to the FFT application I developed last year, perhaps with my DisplayTech color TFT with cap touch.  Maybe a pinch zoom for FFT window resolution?  Maybe a custom, level-switchable analog front end?  Maybe build a touch, animated GUI lib to apply to all my new designs.   Maybe a digital version of my old “Audio Tool” with selectable synthesis?  Who knows..  I’m ready to get things going and move on though.  Seems like I just got to the point to where I can finally get to the product design phase.  Ready to go.

 

 

Brad Ormand Synth OptoCoupler VCA

01.06.2015 – Synth VCA, Job & Songs

J O B

Today, I chased down a software bug at work for about 6 hours.  For real.  Sometimes, it’s like that.  But, yeah – it ended up being because of a leftover overridden function in one of the data models in the client code.  I can’t go into details because it’s work/job stuff, but that function was empty and did nothing and got called, and thus, messed up the whole call stack, but threw no error.  Urrgh!

Haha.  But, I followed the stack trace deep into the libraries – Underscore, Backbone, and Marionette to find what was happening, but it led me to my own code in the end (yeah).  So, it was a roundabout way of getting to the bottom of it, but effective, since it led to the discovery of the override.  I mention it because I feel a good sense of accomplishment from finding and fixing it.  It was a fun journey, looking back on it.  But hours ago, I was starting to get frustrated a bit.  I could see my mind blaming the libraries, and then questioning using them at all, and then mentally commenting on the whole library stack decision, etc.  But now, I don’t really think any of that.  It was just when I was deep in finding the solution.  But, at least I just observed my mind instead of reacting.  And, that’s the lesson I took away from this:  If you just persist through the difficulties, technical or emotional, that come up while doing something that you really want to learn or have a deep desire to be proficient at, there are rewards waiting, and actually, joy at the end of it.

I did a similar thing with the circuit design program Eagle the other day.  I couldn’t find an part that fit my bill, and I had to make my own LBR spec.  I hadn’t done that before.  And, I just got kind of angry that there were no default quick keys for Mac.  There actually are, but they aren’t the standard CMD-modifier keys, instead there are F keys and assignable quick keys.  I was sensitive to that for a moment, overlooking the amazing tool that Eagle is.  Ah, but I quickly overcame the frustration once I learned the steps, and I love Eagle more than ever after having gone through that process.  Haha, I’m noticing that there’s an element of struggle involved to get used to something before you can really appreciate it.  I did the same thing 10 years ago when trying to get CSS down.  I remember massive frustration, especially with IE 6 vs Safari vs FireFox (Chrome hadn’t been invented yet). But, I love every bit of styling stuff up now.

It’s interesting how I was compelled to write about this “failure” and how sometimes I don’t when I achieve a massive success. I guess it’s like the story of when you broke your arm or took a ripper out on the climbing wall.  Ha.  Just, there’s something about going through it that adds something meaningful to life.

S Y N T H

Anyway, there’s the job story of the day.  But, I also made progress with my synth modules in the last few days.  I built an opto-coupled, bipolar-driven voltage controlled amplifier for my VCO.  It’s not the first one I have built, but, it’s the best one so far 😉  I built one for a compressor in about 2002 like this, but it was pretty shoddy and I was still learning.  I’m much better at the layout and design these days.  So, in addition to it being functionally working, it also looks super cool while it’s operating!  By opto-coupler, I mean the input voltage is controlled via a light/LED that gets sensed by a resistor that’s light-sensitive.  I don’t need it to be fast, and I’d rather take the character of the electronics, in fact.  Also, I have it uncovered to show the light now (it’s beautiful), but it’ll be sealed in production.  I have a gain reduction LED tapping off of it for the UI anyway.  The light is bright at -∞ dB, and off at nominal.

Brad Ormand Synth OptoCoupler VCA

I implemented a filter in between, but haven’t finished it.  This is just me picking away at the synth build as I get spare time.  Like I said in a previous post, it’s priority has been suspended until March or so while I work on the lights and the songs.  But, I can see it coming together, and it sounds really great!  Oh, I can’t wait to do something with it!

For the synth UI, I defined a few more attributes as I was going through this process.  Actually, I had a dream about effect circuits and that led me to more ideas.  (A lot of my ideas come from the dreamworld 🙂 ).  For instance, I have a good idea for a modulator/envelope using a similar opto-coupler, but with a big cap charging up for a log delay.  Then, I’m thinking about splitting the output, taking one side to a distortion circuit or similar and then to the inverting input of an op-amp, and the other split to the non-inverting, and let that deal with the mess coming in, trying to balance them.  Then mix it back in.  I imagine it’d be kind of like an inverse distortion or weird levelor if I got the signal levels right.  Those are on the block for experimentation.

S O N G S

For “Kitchen”, I added some sub bass to the chorus to fill it out, and it sounds so good.  I’m leaving it.  The kick and sub work well together, creating a good stiff lock for the chorus, while the verse still has a pretty low and round kick sound to it, a bit louder, and with a bit of a knock on it.  I think the difference is a pretty nice contrast.

And, I also added that octave sub to parts in “Lookin’ For”.  I went a bit crazy and just created a whole new bassline for it to vibe with.  It goes with, but is alternative to, the synth bassline and lead already present.  All of it comes from a regular sine signal generator. Ha.  But, I added some comp and a bit of light fuzz to it.  Anyway, it’s really coming along.  I tested the levels today, and it’s right up there with commercial tracks.  Good balance, “feel-able” sub, and pretty present, as well.  It’s almost ready for packaging 😉 .

For both of the sig gen parts, I had to re-mix after testing because the 100Hz range was overpowering the 40Hz range, so I put a lo-pass shelf in the middle at about 80 and knee-d down until 100 was about 3 dB down, leaving the low sub at the same level after gain compensation.

Brad Ormand - Synth UI

12.29.2014 – UI Art Design & Songs

I had a few ideas, recently that I wanted to draw up as real interfaces.  This one, I wanted to do as an interface for controlling a synth module with your fingers, lighted up, of course to the beat or ambient sound.  I also liked the “bird-ness” of the last one I did – kind of like an eagle or a falcon drawing from New Mexico or the ancient Aztecs.  So, I was kind of in that “vibe” when I drew this.

I drew a place for an LCD or OLED matrix display where you can program the machine to do several things, like assign pads to voices or control timbre or routing.  Now, my synth, the “guts” of it, at least are wAy down the road to being able to do this kind of stuff, but…   Well, now I know what Im going to want it to do. 🙂  So, it’s like that synergy between concept and design, and iterating back and forth, I guess.

Brad Ormand - Synth UI

So, going forward, I’d like to cut this one out, route it, drill it, paint it and try to attach the touch sensors I’m building to it, and then combine my synth module (currently on my biggest breadboard) with it.  So, this will be my first synth integration with pads and digital control.  I have built various synths and compressors and EQs and noisemakers in the past, but they were very “project-style”, not really a presentable product.  They sounded awesome (I think – and my friends thought), but I would stuff a proto board into a plastic cup I found in my kitchen and take it around with me, before.  And, shit like that.  haha.  I want a real product prototype that is presentable and that flows with fascination.  Actually, I want that for me.  But, I hope others will like it as well.  We’ll see how it goes as we go along.

Brad Ormand - Synth UI Creation

And, as for my music….  I went ahead an put some clinical bass into “Looking For” straight from the signal generator!  Pure sine at 58 Hz, and more in different places.  But, I listened back, and well, I think I need a few more harmonics – at least one, an octave above.  I want the chorus on this song to pound with bass, but not be just put in there loudly, willy nilly.  Nah – I’m going to need some of those harmonics.

And, for “Kitchen”, I finally got the kick to be so super tight that I don’t want to touch it anymore.  It’s tight with a subsonic release, too.  I just like it.  I mixed more parts in and out, too.  This one is on deck and pretty much ready.

As for the rest, I think I’ll just continue to take it easy with no deadlines, no pressure, just going out of pure interest and motivation to let them “fall in” where they may.  Each one gets better and better and better.  I can afford to take the time.  I have arranged it that way.  And, plus, it’s going to be better, in my opinion, to get something GrEAt, instead of just putting out songs, just to put out songs.

K that’s it for today.

 

Touch Sensors 1

12.27.2014 – Touch Sensors & Moon Painting

Alrighty…  I’ve decided that the Moon Painting is done.  Just as it is.  Unlit. Through my many experiments with light over the last month, I have developed a new technique for getting light into art, and I have many more, better ideas that I’ll have to build in to the construction from the start.

So, as I was looking at it today, I just was struck by it as it was, under a good overhead light.  It produces great shadows.  It looks pretty realistic and it creates a distinct mood.  I’d like to do several more of these, and some with lighting built in 😉 .  Acrylic on plaster and canvas.

Brad Ormand Moon Painting

The experiments with light animations and 3D art techniques, starting, initially, with this moon painting have led to many more surprises which have lead to what I’m doing now.

Speaking of which, I have been trying to develop touch sensors in my lab for some of the UI art that I have been starting on.  Eventually, I want to have a method for predictable capacitance (within a certain threshold) that comes out of the sensors I make.  I have done 3 or 4 different designs, with metal foil top and bottom layers (both staggered and whole), different dielectrics and different top cover material (mainly plexiglass).  Some of them work great, and some of them just completely failed.  I imagine I’ll be able to pick up about 10 or 20 millivolts of change over a quick charge or release time.  And, I’m still tasked with distinguishing proximity from real touches, because they start reacting before you actually touch them 🙂 .  Later, I want to get the leads coming from the bottom, too.  That’s yet to come.  But, here are two of them that worked okay.  They have a plexiglass top.

Touch Sensors 1

I’m making these to put into my UI animation projects.  For now, they’ll be kind of like what production designers do for movies sets.  They just pretty much sit there and animate according to the humans’ interaction with them.   And, if I get good results with that over the next few months, I’ll integrate them into my synth projects that I have been putting more work into, recently, as well.

Brad Ormand - Touch Sensor Test

So, there it is.  It’s been really exciting choosing the materials and trying to get these sensors together – working with materials and physics – wild, wondrous world.  The work is fun and it’s going towards a much bigger sphere of production.  Can’t wait to get something stable so that I can start putting them into real systems.

Brad Ormand UI Painting

12.23.2014 – UI Painting & Home Depot

Well, I had an idea that I sketched out earlier this week with pencil on wood and I went ahead and fleshed it out and painted it.  I want to eventually make these things into real user interfaces that control the animations built in to them.  Maybe not this one, but ones just like it.  It’s in  Brad Ormand Research & Development right now…

This particular painting is on a sheet of nice birch plywood with only about 16 inches of width and 8 inches of height.  Which means that it was tight as hell in there painting the thinnest lines.  I tried to stay within a millimeter of precision with the brush (meaning I wanted my “outside the lines” brush error to be no more than a millimeter).  I used a 5mm flat brush for most of it, crooking it up on the edges, longways, for the precision bits.  It challenged me quite a bit!  But, it was fun.  And, I can use the skills I learned from this to do other ones in the future.  It took about 14 hours over two days to produce, all-in-all.

Brad Ormand UI Painting

I routed out the wood in several places before painting it to provide a natural depth from shadows, and it feels pretty cool to run your fingers over it, too.  I still need a little more practice with the router.  It’s a tricky thing to get it to depth without it burning out the wood or slipping under pressure.  You can see I slipped in a critical manner at the top left under the main mast where I was digging in and the bit caught – whooop.. Zzzzshh – outside the parallel lines I drew.  Haha.  But, no big deal.  It’s a good story and part of the process of getting good at doing this.

So, beforehand, I visited Home Depot to buy some XMas gifts and the wood and necessary supplies I’d need for my upcoming projects.  I reached for one of the buckets they had in the store – those orange buckets so that I could carry all of my loose bolts, nuts, washers, and tape and stuff, all together.  I wasn’t gonna buy it, really, but it turned out that it was cheap and it had this bad-ass saying on it:  “Let’s DO This.”!  Whaaat!?  I mean, shit, I can’t turn that down, that’s awesome.  So, I got it, brought it all home in the bucket and went to work on the painting, the measuring, the cutting, the drilling, etc., for several different projects.  Here it is in the pic:

Working After a Home Depot run

So, I am working on this tri-wing light fixture that will animate RGB light, spilling over the edges and onto the wall it’s hanging on as well, hopefully.  Still working on the circuit prototype.  I transitioned over from that other LED-9-Matrix prototype when I realized that I had to have a high-voltage programmer to use all 6 ports of the ATTiny.  Redirect… But, anywaeeys…  Here we are.  Next best thing.  Creativity comes, and I fo||ow.  It’s all working towards the same thing, and I only have so much time, so I have to pick what’s inspiring me most.  This one will trump anything I was working on before anyway 🙂

Brad Ormand - Light Painting

12.20.2014 – Light Painting & Wood UI

Yesterday and today, I have been working on two particular projects – my LED matrix demo painting and a wood/plexiglass/aluminum UI project.

I wired a 3×3 LED martrix “snake” onto a quick painting I did as a proof-of-concept for what I was thinking of doing with the moon painting.  I’m using a little ATTiny MCU to drive it.  As it was the first time I had actually implemented this on a painting, I just started running wire to the Philips Lumileds that I had set out on to the painting, I didn’t really have a plan.  Once I got ’em all in place and tested them, I glued them down and started the hub PCB for it all.  Red for anode, white for cathode.

The Lumiled lights are SMT devices and are very, very brittle!  I mean, just a  very minor shear/twist force on the two small 24AWG wires soldered to the leads will crack and split them.  I must have broken 6 of them before actually getting a good batch installed onto the art!  One even broke while I was gluing it down.  Had to do some surgery – ha.  …But, I made do.  However, they are sooooper bright for being just ~1mm x 3mm!  Incredible technology.  I’m considering about 5 or 10k of resistance per row of 3 just to keep it to where you can actually look at them and not hurt your eyes!  They pack a punch.

It’s things like this – actually testing, or proving the concept, and having the experience of working with things that lead to deciding what I’ll do for production.  Maybe they’re too much for this install?  Also, maybe SMT parts are useless if it’s gonna have wires all over the place?  I don’t know.  Finding out…

Brad Ormand - Painting Proof-of-Concept

Later in the week, once I get the system up and running and the MCU programmed, I’ll plaster over the wires and just make it a part of history – and a pretty cool, usable part of art!  However, once I decide to do these for production, a few things will have to be worked out, such as the repairability / maintenance of the LEDs and harness, the brittle SMD stuff that I’m using in weird ways, a way to test them (for instance, battery life, LED heat/hazards, and drop/shock/shipping testing), and where to mount all of this control stuff.  I plan to offer a warranty and repair for this stuff if they break down.  And, the best repair is no repair at all 😉 – both for my customers and for me, as well.  Furthermore, I plan on making the board as small as possible for mounting on the back (using 0805 parts, minimum – I don’t wanna have to mess with anything smaller than that right now, I already have to use tweezers for those – lol).

======

And, in other news, I bought some sheet aluminum, some birch plywood, and a routing tool at the Home Depot today for a project that I thought of while doing the Light Painting – taking into consideration the things I learned there.  This one is a different art idea entirely, but the electronic concepts are basically the same, and I think I can solve those with this.

Anyway, the idea is to use a wood substrate, and backlight it somehow for certain parts, using transparent light filters, and route out different heights for additional lighting.  It’ll be an art piece, but where the animations can be controlled by the user touching and interacting with the painting.

I just started, so more details and pics and video will follow, I’m sure 🙂

Brad Ormand - UI Drawing on Wood