Posts tagged as twinklr
Weeks 177, 178 and 179
6 June 2016Three weeks without a peep, and here we are: this is what I’ve been working on. You’ll be able to see it from Friday 10th June until Sunday 12th June as part of Into The Wild at Somerset House. I’ll be around for much of that time, so drop by and say hello.
The past three weeks have been a flurry of fettling, cutting, assembling, debugging and film-making. There’s not a lot to say today; in the next few days, much of that work will become public, and I’m looking forward to sharing it with you.
Weeks 175-176
16 May 2016A good few weeks.
Selworthy‘s handover continues. I’ve been working with a sysadmin to really get the servers shipshape, and easier to build on for the future. That’s involved going over most of my Ansible scripts and updating them as appropriate. Fortunately, there’s been very little replace, and we’ve made steady improvements and additions. We’ve also really stepped up the monitoring and alerting. I’ve also been working on rolling some more bugfixes out to live environments, and assisting the new development team in taking over the product. They seem to be making good inroads, and I hope that’ll continue.
Twinklr’s also seen lots of progress. The end of week 176 saw the final crit for the project, and I buckled down to deliver an end-to-end demo there. That meant building up the electronics once the PCBs arrived and then cutting the case and assembling the whole thing.
There were some bumpy moments: I think I overreached a tad on the electronics, and there are some noise and power issues I need to resolve, but they were rough edges rather than complete blockers. By the crit, we had a working, standalone Twinklr, all boxed up neatly and transported in a flightcase. The crit went well: it was great to demo a fully working object, and now I’m focusing on sanding off the rough edges, and pull together an installation for the showcase in early June – where you’ll be able to see Twinklr in the flesh. You can see some of the progress right now over at the Tumblr I’ve been keeping during the project.
Also, if you’re wondering what Twinklr feels like to use: we’ve now got a film of the version we completed last year. The version I’ve been building for the past five/six months has several new features, and a somewhat different construction (not to mention one that’s entirely computer controlled) – but it shows the germ of the idea.
Weeks 173-174
25 April 2016A really good couple of weeks for both my primary projects.
Selworthy has gone into deployment at one of its clients, which is hugely exciting: it’s taken a very long while to get here, but I’m glad we have. I’m hoping they get some good use out of it. I spent a moderate out of time deploying it onto their servers, fettling the install, and resolving some exciting issues unique to nginx.
As a result of the project moving into its next phase, I also spent some time beginning to hand the codebase over to new developers, and working with a sysadmin on handing over the administration of the standalone environment. That’s all going well, and all this should hopefully allow me to step back from the project – later than planned, but in a good place for the work.
And Twinklr’s in a really good place too. I began week 173 following earlier defeats by porting the sound library to Beads, and that’s been very successful. I managed to get everything running on the Pi, with audio out of the USB interface, and with no glitching or errors. Some simple round-robin code gives us a fixed 16-voice polyphony, which I think should be enough for most people.
I then continued porting the rest of the UI to a new library that, whilst not as fully-featured as ControlP5, is much happier on the touchscreen. And to cap it all, I implemented the MIDI output in The MIDI Bus.
By the end of week 174, the software was feature-complete, and all working on the Pi in a remarkably stable manner. On Sunday, I sat playing with Twinklr on my laptop, as it happily sent data over cables to an analogue synth on my desk.
This was hugely exciting because of how I felt. All of a sudden, I wasn’t wrestling with making it work, or wondering if it every would; I knew it did. And, as I fiddled with it, I realised I definitely wanted it off my laptop, and onto a desktop object I could put next to this synthesizer to play. For the first time, I really desired the finished object itself (rather than just desiring finishing it). That felt really good, and is some great momentum for the next week.
I also began laying out a rear PCB for the case. That’s going to be need to be sent off to have made soon, so I’m trying to finalise it, double-and-triple checking it, and working out what remains to be tested on the Pi.
Good progress, then, in a couple of busy weeks. But we can’t rest yet. Onwards!
Week 172
11 April 2016A week spent on Twinklr – most of which was spent on rewriting it.
Or, rather, rewriting the software. It turns out that lovely as the browser-based prototype is, Chromium on a Raspberry Pi just isn’t up to snuff, performancewise, with everything that’s going on – especially when you’re trying to build an instrument with low perceived latency.
I’ve been rewriting it in Processing. Processing is a surprisingly good fit: it had just been formally announced for the Raspberry Pi, has built-in support for Sound, MIDI, and the hardware GPIO pins; everything I need. Also, although Java is by no means my forte, I have used Processing in anger before – Spirits Melted Into Air was entirely written in it.
Progress was reasonably quick: it is, after all, another curly-braces language, and I’ve written a lot of the logic already. A lot of what slowed me down is idiom, and building the interface; the graphics and sound production are reasonably straightforward, but the GUI is more verbose. I’ve been writing it in ControlP5; I said to a friend it’s not so much 2000 lines of Processing, as 1000 lines of Processing and 1000 lines of ControlP5. The GUI library is that verbose.
No plan survives contact with single-board computers, alas. It turns out that Processing on the Raspberry Pi simply refuses to support the Sound library – the Sound library is currently only compiled for 64-bit processors. Even though the Pi 3 has one, it’s a bust. So I rewrote the whole thing to use Minim (and then rewrote it again to use Minim in a different way, as the first was a no-go on the Pi thanks to the vagaries of Javasound). This time, I found it refused to play back out of anything other than the horrible PWM analogue output.
Suffice to say: I am tired of Javasound errors, and next week, I’m probably rewriting the sound playback code in my third Java sound library of the project. But: the GPIO code is working well, and the graphics performance is very snappy. I think the rewrite’s been worth it.
I also took the time to stop rewriting the same old features, and build a new one that I have been interested to experiment with for a while now. It turned out very well indeed, and leads to interestingly musical results.
Finally, I spent a day with some pens and pencils sketching and exploring the form of the object. I should probably have done this sooner, but it was worth exploring. In the crit at the end of the week, some of this thinking as revealed to perhaps be dead ends – but not all of it, and that’s good enough for me. It was good to spend some time thinking with my hands.
Weeks 167-169
18 March 2016And, just like that, I fell off the Weeknotes horse.
I think 166 weeks on the go, though, is pretty good going. I imagine the slippage began when we moved onto what were, effectively, fortnightnotes: the routine was beginning to disappear.
And as I get worse at something, I tend to try to push it under the rug. It’s often easier to try ignoring it and hope the problem will just go away, isn’t it?
It’s also a way of not drawing attention to other things: the fact that Selworthy has stalled a little, pending delivery; the fact that Twinklr has been occasionally neglected, or occasionally more problematic than I’d like.
But those things are all, really, part of the process. They’re part of the work. Weeknotes are about work, not success.
So let’s get back on the horse. Since early Feburary, what’s happened?
Selworthy has had a fair amount of wrapping up, as I bring it into land and hopefully, handing it on to a larger team. That’s involved fettling Ansible scripts and server deployments, solving minor bugs, adding a few tiny features that make all the difference to end-users. So that’s been good.
Twinklr has been lots of two-steps-forward and one-step-back. I should write more on the notebook about it – another place that’s not seen the updates it should. But suffice to say: the shape of the project has surprised me at times, and I’ve not always been good at handling that surprise.
The CAD work and hardware has largely gone very well – except some simple oversight and confusion on my part mean that the object doesn’t quite, at the moment, fit together properly.
The software was all great, but it turns out the target platform really isn’t happy running that much stuff in a browser, and if we’re making a musical instrument, it should probably be snappy and responsive. So I’m rewriting it – in Processing, rather than Javascript. That feels drastic – a total rewrite – but so many of the hard problems have been solved already, and I’m now just re-implementing in a slightly different platform. It turns out it is going to have its own ‘exciting’ issues, but if they can be surmounted, then it was definitely the correct choice.
I’ll write a little more over the weekend on the Twinklr notebook.
And then, what else other than the two major projects?
I spent three days in Newcastle running a workshop for Northern Film with David Varela. Over the workshop, we took four teams of feature film-makers – each with a film in the can – and looked at how they could use the internet to promote, distribute, or do anything interesting with and around their film. Four great teams meant that the workshop went to lots of interesting places, and was really involved from all directions – everybody brought interesting, unique experiences to the table. It was a good reminder of how much I can enjoy that environment, too – it’s a while since I’ve done any teaching – and it’s started some thinking around a potential workshop I might run in the late spring. Thanks in particular should go to Roxy at Northern Film, and to David, for (as ever) being a wonderful workshop partner.
The electronics front has mainly seen tinkering – I think I’ve got a revision of Walton that solves some mechanical issues ready to send off – but there’s a potential project for later in the year budding, and occasionally being scrawled into notebooks.
And I think that’s it, for now: mainly, it’s been head down, working, or teaching, or thinking, and remembering that lack of forward velocity now doesn’t imply that that isn’t the trend in the longer term.
Last week put a lot of things in perspective, for me. We had a crit for Twinklr on the Friday, and I was nervous: here I was with nothing to show, hardware and software in pieces, and nearly halfway through. So I showed the decision-making instead. And it all turned out to be fine: several of us were despairing that the stage of the work we’d got to seemed to be further back than when we begun.
As we each said this, the others in the same place seemed to relax. Or, at least, realise it wasn’t just them.
This wasn’t failure: this was doing the work. We were in the middle of the project, which is when you are surrounded on all sides, and you just have to push through, and do the work. Sometimes it doesn’t feel like this, down here – but when it does, it doesn’t mean everything is terrible.
And that meant that it didn’t matter that weeknotes had stalled a little. What was important is that I just carried on.
Next week is week 170.
Weeks 163-164
19 January 2016Most of my weeknotes for 163-164 have already been published: over at the notebook I’m keeping for Twinklr, I wrote about the beginning of the year on Twinklr. Since the year began, I’ve pushed the code forward a fair bit, started to get to grips with some of the new materials and techniques I’m using, and getting involved with some of the other elements of the MV Works programme that go alongside our projects. We also had our first crit of our projects; it was great to get feedback from the other members of the cohort, as well as to see what they were up to.
I spent some time with the team on Selworthy, closing some minor issues, and beginning to implement new branding for the project. The client are beginning to really push taking the product to a wider market, and so I’m helping them along that journey.
I had a variety of interesting meetings: a debrief and presentation on a short piece of work I did with George at Good, Form & Spectacle just before Christmas, and a discussion with a potential new client around music and visualisation.
I spent a morning down at the Oubliette Adventure Shop helping fettle a final few technical issues before their launch weekend. The Escape Room is now open, and you can find out more about the game at their website.
I shipped off another revision of Walton PCBs to OSHpark, and should have v1.10 of that built by the end of January.
And I think that’s about it: I’m really beginning to settle into the groove of 2016, learning how to divide time between a client and the self-initiated funded work, and making sure the latter has the space not only to hit all its targets, but also to breathe a little. Onwards!
Joining the MV Works 2015-16 cohort
4 December 2015I’m pleased to announce Richard Birkin and I have been selected as part of the mv.works 2015-2016 cohort. We’ve received funding to work until April 2016 on a new iteration of Twinklr – our physical/digital music box.
We’re going to spend the time iterating on the hardware, software, and enclosure, adding functionality and hopefully making the build more repeatable. Along the way, we’ll be documenting our progress, and exploring the opportunities the object – the instrument – affords.
We’re really excited – this news comes just as we wrap up the first phase of exploratory work. It’s a hugely exciting opportunity – the space to design an instrument for performance and composition, to build an object to create with, and to develop this idea that’s been percolating slowly. Of course, we’ll share all our progress along the way. It’s going to be good.