No, you aren’t looking at a 30 year old Teac graphic equalizer that somebody modified. The MWA-002 Network Music Player created by [GuzziGuy] is built entirely from new components, and easily ranks up there with some of the most gorgeous pieces of homebrew audio gear we’ve ever seen. Combining modular hardware with modern manufacturing techniques, this 1980s inspired build is a testament to how far we’ve come in terms of what’s possible for the dedicated hacker and maker.
The enclosure, though it looks all the world like a repurposed piece of vintage hardware, was built with the help of a CNC router. It’s constructed from pieces of solid oak, plywood, and veneered MDF that have all been meticulously routed out and cut. Even the front panel text was engraved with the CNC and then filled in with black paint to make the letters pop.
Internally, the MWA-002 is powered by a Raspberry Pi 3 running Mopidy to play both local tracks and streaming audio. Not satisfied with the Pi’s built-in capabilities, [GuzziGuy] is using a Behringer UCA202 to produce CD-quality audio, which is then fed into a TPA3116 amplifier. In turn, the output from the amplifier is terminated in a set of female jacks on the player. Just like the stereo equipment of yore, this player is designed to be connected to a larger audio system and doesn’t have any internal speakers.
The primary display is a 256×64 Futaba GP1212A02A FVD which has that era-appropriate glow while still delivering modern features. [GuzziGuy] says it was more difficult to interface with this I2C display than the LCDs he used in the past due to the lack of available libraries, but we think the final product is proof it was worth the effort. He bought both the VFD spectrum analyzer and LED VU meter as turn-key modules, but the center equalizer controls are completely custom; with dual MCP3008 ADCs to read the state of the sliders and the Linux Audio Developer’s Simple Plugin API (LADSPA) to tweak the Pi’s audio output accordingly.
We’re no strangers to beautiful pieces of audio gear here at Hackaday, but generally speaking, most projects involve modernizing or augmenting an existing device. While those projects are to be admired, the engineering that goes into creating something of this caliber from modular components and raw building materials is really an accomplishment on a whole different level.
LMP will continue to live on as a static site, so all content will continue to be available. We are in the process of moving the site. Stay tuned for more news.
Thank you for all support, content, comments and visits!
Now on to produce some Libre Music! :)
In my last post on astrophotography I wrote about planning for dark skies and about my plans to build an observatory. Well, finances haven’t permitted for the observatory – this year – so this month I opted to get my existing telescope and mount working at their theoretical best.
This mostly boiled down to:
If I do all those things then the limiting factors should be the intrinsic limits of the kit I have and the environment, and I should be able to produce some great pictures with all that! So I started off, knowing the focuser was mechanically weak and a real problem in terms of operating the scope, by replacing the focuser.
This started out as a “undo 4 bolts, replace 4 bolts” project and turned into a bit more work. It also required me to remove the secondary mirror for the first time, which meant tooling up to collimate that properly – my laser isn’t enough to set the position completely.
The holes in the tube didn’t quite fit the new plate, so I had to drill new holes – I measured very carefully, several times, with different measurement approaches (not wishing to recreate the Hubble problem of relying on a single instrument). The position isn’t critical but it makes life easier if it’s in the right place.
The focuser I went for was a Baader Steeltrack Diamond. To summarise the choice, there’s only a few major groups of manufacturers – Moonlite and friends sit at the “fine for visual, okay for imaging” end of things with traditional Crayford designs. Then you’ve got people like Baader and JTW who are a bit more serious about focuser slop and rigidity. Then there’s Feather-Touch. FT appear to be held in messianic regard by literally everyone, which I can only assume is for good reason. They’re also two to three times the price. Which rules them out. Baader’s Diamond NT focuser appeared to be very well regarded mechanically, and having bought a number of parts from them I knew they were of good quality.
It didn’t disappoint – it’s very well made, and manual movement of the focuser when it arrived was buttery. I popped the fine focus knob off and prepared it for the addition of the focus motor
If you’ve not done imaging before you might think that motorising a focuser is a bit excessive – and indeed when I started out I just focused manually once at the start of the evening and then left the camera to it. But to get the most out of a telescope, frequent or constant refocusing is needed, to compensate for contraction of the telescope and optics due to temperature change. It’s also useful to be able to let the computer focus for you to achieve the most precise focus.
Again, there are many options here. I opted for a lower cost option which was fairly well reviewed, the Primaluce Lab Sesto Senso focus motor. This despite it missing a key feature, temperature compensation. This feature automatically moves the motor based on a temperature reading, rather than having the computer do it for you. However, most software supports doing this. Sadly, KStars/Ekos does not – yet.
After installing the focuser and motor I had to re-install the secondary and collimate it – this was actually pretty straightforward. However I also wanted to replace the centre spot on my telescope with a “hotspot” to make barlow laser and autocollimator checks easier, so the primary mirror came out too. Both got a very gentle soak and rinse with no agitation, and then the old primary spot was removed with some isopropyl alcohol.
After this there was just a lot of very time consuming adjustment to get everything set up as well as possible. This mostly just involved staring down cheshire eyepieces and then moving things very slowly with an allen key until it all looked like it should.
I still need to add an autocollimator to my toolbox, but the Catseye ones are quite dear, so that’s a “next month” purchase. That will however be the last tool I need to add there, I think!
I had been seeing issues with my tracking the last few attempts I made to set up, so wanted to verify my mount was mechanically sound. This mostly involved adjusting the worm carrier blocks – large metal blocks which form both part of the housing and the mechanism by which the worm meshing can be adjusted. This, again, involved a lot of slackening off one thing, tightening another, then rotating the whole axis through 360 degrees to make sure nothing bound or stuck.
After a lot of measurement, trying to work out what was going on, I realised it was the obvious thing – polar alignment. My Polemaster – a camera that sits on the mount to do a polar alignment – wasn’t getting good enough results, and that was all I was using. I used a method called drift alignment and improved from ~15 arcminutes accuracy down to about 2 arcminutes. This has radically improved my guiding, which is now down at around 1 arcsecond – where it should be! The adjustment knobs on the EQ6-R Pro are the limiting factor now – it’s just not possible to get the alignment much better.
Balancing the mount more carefully has helped, too, and I’ve rotated the telescope in its tube so the focuser points at the RA axis. This means that as the axis rotates the weight distribution remains constant. It also means I can’t really use the telescope for visual observation, but I’ve not done that in a long while!
I’ve also added some Celestron anti-vibration pads to the tripod. While a cubic metre or two of concrete would be better, these should help isolate vibration from the ground and also help with oscillation in the tripod itself as a result of mount movement.
To help minimise the number of cables coming off the mount I’ve also put my INDI server on the tube itself by mounting a Raspberry Pi, 12V-5V step-down, and USB hub. This also helps to counterbalance the focuser around the Dec axis. There’s now only three cables to the mount – 12V, Ethernet, and the mount control cable.
The other major upgrades I’ve made lately have been on guidescope mounting – I now have some very solid aluminium guidescope brackets that a colleague at work milled for me. This does appear to have solved the differential flexure problem. I still want to upgrade the camera and explore off-axis guiding, but it’s a great improvement.
It’s too early to say, really, but the indication is that probably, together, this has all produced a much improved system for astrophotography for not much (in AP terms) money. This image of M101, the Pinwheel galaxy, I produced last night with less than 2 hours of light:
Precise focus has helped massively, though temperature compensation and per-filter focus offset automation would be very welcome additions to Ekos – it might even be enough to push me back to Sequence Generator Pro, though I’m very much enjoying the INDI/Linux approach so far (bugs that require me to completely shut down KStars mid-session aside). The mount guiding is definitely a big upgrade over where it was – I think I had broadly been getting lucky with this over winter, though I suspect the colder atmosphere might’ve helped the Polemaster.
All in all it’s a good step forward – now I just need some really cold clear skies!
For the third time and hopefully the last in the current northern estival season comes the final batch-of-one:
These are the changes for this Summer'19 release:
Wiki (help still wanted!):
Enjoy && Lots of fun.
A new version of SpectMorph, my audio morphing software, is now available on www.spectmorph.org. SpectMorph is a VST/LV2/JACK synthesis engine which is based on the idea of analyzing audio samples and combining them using morphing.
SpectMorph could always create sounds by morphing between the musical instruments bundled with SpectMorph. With this release, a new graphical instrument editor was added, which allows loading custom samples. So SpectMorph users can now create user defined instruments and morph between them.
Here is a screencast which demonstrates how to do it.
Besides this big change, the releases contains a few smaller improvements. A detailed list of changes is available here.
Finally, here is some new music made with SpectMorph:
The Vee One Suite of old-school software instruments are here released for the northern estival sesson:
All still available in dual form:
The changes for this second batch of the Qstuff* Summer'19 release series are:
synthv1 0.9.9 (summer'19) is out!
synthv1 is an old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx.
samplv1 0.9.9 (summer'19) is out!
samplv1 is an old-school polyphonic sampler synthesizer with stereo fx.
drumkv1 0.9.9 (summer'19) is out!
drumkv1 is an old-school drum-kit sampler synthesizer with stereo fx.
padthv1 0.9.9 (summer'19) is out!
padthv1 is an old-school polyphonic additive synthesizer with stereo fx
Enjoy && Take fun!
Gotten a bit quiet here, hasn’t it? Well, here in the UK, it’s wonderfully sunny and bright. We don’t get proper darkness, and the planets are in an awful position, so imaging deep-space objects is a bit of a non-starter, or at least challenging. We’ve also had a run of crap weather, just to drive the point home.
I’ve been using the time instead to plan out my next astro-related project (though I may well push the execution out to 2020, just to make sure I have the cash to get it done right) – a fully automated roll-off roof observatory. The logic behind this is simple – my next “improvements” to my imaging system that I can make are:
So the biggest “bang for buck” is definitely the observatory, but only if it is fully automated. I’ve lost track of the number of nights where the sky was beautiful and clear, the clouds nowhere to be seen, ground and ambient temperatures low enough to make seeing incredibly clear – and I’ve been packing away the telescope at midnight because I’ve got work tomorrow, despite the further 7 or 8 hours of imaging I could have. And then there’s all the “well, it might be good enough, but…” nights – nights where the forecast says it won’t be good enough, but you might get lucky; often this involves going out frequently to stare at the sky, setting up if I feel optimistic, and usually being disappointed – but often not.
With a fully automated and remotely driven set-up the setup time is nil, as is the tear-down time. With the scope set up permanently, with the camera and other components mounted, there’s much more scope (no pun intended) for tweaking and tuning in advance of an imaging night, and fine tuning on cold-but-cloudy nights that just isn’t possible when you’re stripping the whole thing down each night. Being able to work in the dry and the day has a lot of appeal.
System-wise, full automation is pretty simple – you need a box with relays to drive motors and read sensors, a proper cloud/rain sensor (hard-wired to the relay box, so if any computers fail there’s a pretty dumb box responsible for shutting the roof when it rains), and a system capable of automating the selection of targets (what’s good tonight?), acquisition of images (frame the target, autofocus, guide and image), and the observatory start-up/shut-down. I’m most of the way here – I need the relay box and auto-focuser. The rest is already ready – I’ve been using INDI/Ekos/KStars for a while which can do all of this. The main INDI instance for the observatory will run on a 1U server in the observatory, with an INDI server on a Raspberry Pi 4 strapped to the telescope doing actual image acquisition and telescope equipment control. This makes the pier-to-desk cables simple – 12V for power, USB for the mount, and an Ethernet cable for the rest, with just 12V and Ethernet onto the telescope itself.
So, the objectives of this build are:
Beyond this – it’s basically a shed! So I’ve started by getting a bunch of books on shed design and construction and reading them. My day job at the moment is (mostly) telling people how to properly build a fibre optic network, so I know a reasonable amount about concrete, aggregates, rebar, admixtures and slab design. Making a good solid observatory is mostly about mass, just like in acoustic isolation design, and I’ll be using almost an entire ready-mix concrete truck worth of C40 low-moisture concrete to pour the base slab and the (isolated) pier. The framing and design of walls, floors and doors is all fairly simple, though benefits from careful planning to make sure all the services will work and the structure remains rot-and-rat free for a few decades.
The tricky bit is the roll-off roof – I need to keep this building rodent-proof and ideally near-airtight to aid in humidity/temperature control. I will use forced, filtered airflow for cooling with a positive pressure maintained to minimise dust ingress. Active cooling with the roof shut will help cool-down times and avoid any kit getting too hot in summer. This means the roof needs to seal well onto the frame when shut. I also need to be able to shut the roof at any time – that means any internal rafters need to be minimal or non-existent, so the telescope doesn’t have to be “pointed down” to let the roof pass. This means when the mount fails or is unsure of its position the roof can still shut safely to keep the rain out. The roof needs to roll back enough to give good visibility, so the whole thing has to roll onto rails that extend beyond the back of the warm room. To further improve visibility and keep rain off the rails, some of the side walls will be mounted on the roof so the walls “lower” as the roof rolls off. There’s a lot of complexity in this (and it has to be something I can build), so this is taking some time to work out.
I’ve started designing in detail in Autodesk Fusion 360 – while I’ve used Sketchup for this sort of thing in the past, Fusion 360 in Direct Modelling (non-parametric mode) is about as user-friendly and can produce much prettier outputs as well as decent engineering drawings.
I’ve also reconstructed my current telescope and mount with photogrammetry so I can build a digital model and check the motion all works – I haven’t gotten around to tidying up the mesh into some simpler models, but it’s a great reference for getting the dimensions and motion right.
The other question is where to put this – I dithered quite a bit and in the end took a lot of level photos around the garden at twilight with a Ricoh Theta S 360 degree camera at roughly my telescope’s aperture height. With the moon visible in each photo and knowing where and when I took the photos, I could align the photos to north with a fairly simple Python script which spat out a nice set of data for horizon plotting.
It turns out there’s only a few places where I don’t enjoy visibility to 30 degrees pretty much everywhere, so I decided to plug the panorama for my favoured location into Stellarium – this turns out to just involve having a panorama with a transparent sky and a small .ini file to set north properly.
The chosen location makes power and network connectivity simple enough – with 25 metres of mains cable and single-mode fibre I can connect to proper mains and Ethernet, only one switch hop away from my storage arrays.
Security is a concern – that field is adjacent to a footpath, though set back from the road, and there have been break-ins in the area. Other than making the building fairly secure against “opportunistic” crooks – reinforcing the door, lack of windows, and a solid lock – there’s not a lot that can be done. PIR sensors externally won’t work due to the abundant wildlife, so a combination of internal sensors and an alarm to make a racket if someone does force the door or climb in through the open roof will have to do. CCTV around the perimeter might work but could work just as well as an attractant as a deterrent, and wildlife would probably again make alarming impossible. I’m also planning on using a worm geared or lead screw based roof mechanism, which should be very hard to force open.
I took the view early on in this that I wanted to build this myself. I’m still not 100% sure about this, but I think it’s a reasonable project and something I should be able to do! I am budgeting for some help, though, and will have to hire kit in regardless – a mini digger for the groundwork, compactor to pack down aggregates, concrete vibrator to settle concrete in the forms, etc.
I also need planning permission. I started with a footprint that wouldn’t normally need it, so long as the building isn’t tall – but I’m in a conservation area, which means “permitted development” doesn’t really apply. I’m not concerned about getting planning permission – it’s a small building in an otherwise empty field (except for a shed we’re going to remove) and will blend in just fine. Having to go through planning permission also means I can relax around some of the limits that I’d otherwise be avoiding.
Working through the material costs there’s easily £2k, maybe £3k of materials – labour would be another £1-2k atop that if not more. That’s quite an investment, and I’m really keen to make sure that everything about this is right – giving up power to a third party feels risky. It may be that when I get the design done I sit down with some local builders that I trust and see what they say.
The first step remains the plan and design, which is taking time – but I think time invested here is time well spent. I may not start until later in the year, or even early next year – one more winter without it wouldn’t be the end of the world. It’s going to be a fun project if I can get the plan right!
Fans of domes will be wondering why I haven’t just dropped £3k on a nice big Pulsar/insert-vendor-here dome. The answer is simple:
I’ve looked at a few other dome designs and while there’s some good contenders they all have similar problems. I did consider making a “clever” geodesic dome – something I could build pretty cheaply but which would still have decent wind resistance – but automation remains the problem. Ground-level domes (where the whole structure rotates, rather than using a rotating section on a cylinder) make the construction simpler, but the bearing and rotation mechanism have to cope with increased gravity load and all of the wind loading. Cylinder-style observatories have similar problems.
The round/dodecahedral designs of these structures also make literally everything harder. Want to bolt a light to a wall? It’s not flat, so if you want it level/flat you now get to make a bracket… weatherproofing, insulation, and more all get more complicated. Having four flat walls which never move makes life simple – mounting insulation, cable entry glands, coolers, dehumidifiers, fans/filters, lights, shelves, etc is all so much simpler.
So – no dome here for now.
While we’re building a light-shielded box in a quiet location with power and networking, what else could we do? I’m also going to include infrastructure to support a small ground-level dish and motors for radioastronomy, as well as some mounts for meteor spotting cameras, an all-sky camera, and a weather station. I won’t have all this on day one, but putting a little extra concrete in now is way easier than doing it again later, and it means I can put in cable ducts to make wiring it up simpler. The cost of the pads, etc is tiny and turns those future projects from a pain into something much simpler.
A new version of the GStreamer Rust bindings, 0.14.0, was released.
Apart from updating to GStreamer 1.16, this release is mostly focussed on
adding more bindings for various APIs and general API cleanup and bugfixes.
The most notable API additions in this release are bindings for gst::Memory and gst::Allocator as well as bindings for gst_base::BaseParse and gst_video::VideoDecoder and VideoEncoder. The latter also come with support for implementing subclasses and the gst-plugins-rs module contains an video decoder and parser (for CDG), and a video encoder (for AV1) based on this.
As usual this release follows the latest gtk-rs release, and a new version of the GStreamer plugins written in Rust was also released.
The code and documentation for the bindings is available on the freedesktop.org GitLab
If you find any bugs, missing features or other issues please report them in GitLab.
The GStreamer project is happy to announce that this year's GStreamer Conference will take place on Thursday-Friday 31 October - 1 November 2019 in Lyon, France.
You can find more details about the conference on the GStreamer Conference 2019 web site.
A call for papers will be sent out in due course. Registration will open at a later time. We will announce those and any further updates on the gstreamer-announce mailing list, the website, and on Twitter.
Talk slots will be available in varying durations from 20 minutes up to 45 minutes. Whatever you're doing or planning to do with GStreamer, we'd like to hear from you!
We also plan to have sessions with short lightning talks / demos / showcase talks for those who just want to show what they've been working on or do a mini-talk instead of a full-length talk. Lightning talk slots will be allocated on a first-come-first-serve basis, so make sure to reserve your slot if you plan on giving a lightning talk.
There will also be a social event again on Thursday evening.
There are also plans to have a hackfest the weekend right after the conference on 2-3 November 2019.
We hope to see you in Lyon, and please spread the word!
The guitar ‘Toing’ sound from the ’70s was epic, and for the first time listener it was enough to get a bunch of people hooked to the likes of Aerosmith. Reverb units were all the rage back then, and for his DSP class project, [nebk] creates a reverb filter using Matlab and ports it to C++.
Digital reverb was introduced around the 1960s by Manfred Schroeder and Ben Logan. The system consists of essentially all pass filters that simply add a delay element to the input signal and by clubbing a bunch together and then feeding them to a mixer. The output is then that echoing ‘toing’ that made the ’80s love the guitar so much. [Nebk]’s take on it enlists the help of the Raspberry Pi and C++ to implement the very same thing.
In his writeup, [nebk] goes through the explaining the essentials of a filter implementation in the digital domain and how the cascaded delay units accumulate the delay to become a better sounding system. He also goes on to add an FIR low pass filter to cut off the ringing which was consequent of adding a feedback loop. [nebk] uses Matlab’s filter generation tool for the LP filter which he includes the code for. After testing the design in Simulink, he moves to writing the whole thing in C++ complete with the filter classes that allows reading of audio files and then spitting out ‘reverbed’ audio files out.
The best thing about this project is the fact that [nebk] creates filter class templates for others to play with. It allows those who are playing/working with Matlab to transition to the C++ side with a learning curve that is not as steep as the Himalayas. The project has a lot to learn from and is great for beginners to get their feet wet. The code is available on [GitHub] for those who want to give it a shot and if you are just interested in audio effects on the cheap, be sure to check out the Ikea Reverb Plate that is big and looks awesome.
After many years, Carla version 2.0.0 is finally here!
Carla is an audio plugin host, with support for many audio drivers and plugin formats.
It has some nice features like automation of parameters via MIDI CC (and send output back as MIDI too) and full OSC control.
Version 2.0 took this long because I was never truly happy with its current state, often pushing new features but not fully finishing them.
So the "solution" was to put everything that is not considered stable yet behind an experimental flag in the settings.
This way we can have our stable Carla faster, while upcoming features get developed and tagged as experimental during testing.
Preparations for version 2.1 are well under way, a beta for it will be out soon.
But that is a topic for another day.
To download Carla binaries or source code, jump on over to the
KXStudio downloads section.
Carla v2.0.0 is available pre-packaged in the KXStudio repositories and UbuntuStudio backports, plus on ArchLinux and Ubuntu since 19.04. On those you can simply install the carla package.
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.
There is no manual or quick-start guide for Carla yet, apologies for that.
But there are some videos of presentations I did regarding Carla's features and workflows, those should give you an introduction of its features and what you can do with it:
This is a small notice to everyone using Carla and JACK2 with the KXStudio repos.
First, in preparation for Carla 2.0 release, the (really) old carla package is now the new v2.0 series,
while carla-git now contains the development/latest version.
If you are not interested in testing Carla's new stuff and prefer something known to be more stable, install the carla package after the latest updates.
Second, a change in JACK2 code has made it so a restart of the server is required after the update.
(but for a good reason, as JACK2 is finally getting meta-data support; this update fixes client UUIDs)
If you use jackdbus (likely with KXStudio stuff), you will need to actually kill it.
If that does not work, good old restart is your friend. :)
One important thing to note is that the lmms package now conflicts with the carla-git one.
This is because some code has changed in latest Carla that makes v2.0 vs development/latest ABI-incompatible.
In simpler terms, LMMS can only either be compiled against the stable or development version of Carla.
The obvious choice is to use the stable version, so after the updates if you notice LMMS is missing, just install it again.
(If you have carla-git installed, carla will be installed/switched automatically)
I tried to make the transition of these updates as smooth as possible,
but note that you likely need to install updates twice to complete the process.
In other news, we got a new domain!^-^)/
Also Carla v2.0 release date has been set - 15th of April.
Unless a major issue is found, expect a release announcement on that day.
See you soon then! ;)
ardour.org is pleased to announce a new youtube channel focused on videos about Ardour.
We decided to support Tobiasz “unfa” Karon in making some new videos, based on some of the work he has done in other contexts (both online and at meetings). unfa’s first video won’t be particularly useful for new or existing users, but if you’re looking for a “promotional video” that describes what Ardour is and what it can do, this may be the right thing to point people at.
In the near-term future, unfa will be back with some tutorial videos, so please consider subscribing to the channel.
Thanks to unfa for this opening video, and we look forward to more. If people have particular areas that they’d like to see covered, mention it in the comments here (or on the YT channel).