This week at Mutable Instruments

the manual will have a pretty diagram by Hannes instead

  • Wrote draft of user manual for Warps.
  • Spent a lot of time troubleshooting an ADC noise issue on the Warps prototypes.
  • Did yet another pass of code tweaks on Warps – so that the spectral/vocoding FX blends well with the other modulations.
  • Ordered a few boards of what I hope will be the final hardware revision of Warps.
  • Received a shipment of 250 Braids, after a few random QA checks (don’t freak out, there’s already a complete QA procedure at the factory!), all shipped to dealers!
  • Created a very rough proof-of-concept for a possible “evolved wave-terrain” synthesis. The idea is to use two autoencoders (or kohonen maps to be vintage), one for the parameters of a modulated noise/pulse generator, one for the coefficients of an all-pole filter shaping it – and possibly allow the module to “sample” incoming audio into the map. Actually had a dream about Arturia announcing a plug-in doing that!
  • Prepared production files for jack changes on Tides, Peaks, Braids.
Posted in News | Comments Off

This week at Mutable Instruments

  • Spent a few hours running a last bunch of tests on the latest Braids firmware (v1.7) before sending it to the factory for being programmed on a freshly baked batch of 500 modules!
  • Spent a few hours with Edges to hunt for bugs. The upcoming batch will have an audio firmware update procedure, just in case. Golden firmware/bootloader files ready!
  • Received and tested a small batch of +5V-free Edges.
  • Received and tested the first half of a batch of 250 5V Volts power adapters.
  • Received a shipment of Peaks, did random QA checks, started shipping to dealers.
  • Researched several ideas centered around formant processing for Warps easter egg. After two days, the results were still glitchy under heavy modulations and worked on a fairly limited range of input material, so I decided to put this bit of code to rest for now.
  • Implemented easter egg take #2 for Warps. Took three hours to get a proof of concept, instant fun, worthy of a stand-alone module. Keeper!
  • Dug deeper into one ingredient used in Warps’ easter egg. Rather than re-using the same implementation as everybody else, redid the maths from scratch and came up with something that had better performance and still fit my computational budget.
  • Did yet another pass of polishing for Warps – a few more code optimizations, added the Yahtzee secret handshake for enabling the easter egg…
  • Prepared a big shipment of 150kg of pots, ribbon cables, jacks, connectors, knobs for Q2 module production.
Posted in News | Comments Off

This week at Mutable Instruments

  • Programmed Warps’ factory testing GUI tool.
  • Inspected defective Warps from beta tester #1. Just a solder residue blob that got trapped between the pins of a potentiometer!
  • Rewrote from scratch Warps’ sample rate reduction code. The dirty secret is that if we were to judge by CPU use, Warps would primarily be a sample rate conversion module smile emoticon The DSP code works internally at four sample rates – 96kHz (native rate of the AD/DA, internal oscillator, digital VCA), 576kHz (cross-modulations, non-linear operations), 32kHz (filter-bank middle bands), and 8kHz (filter-bank lowest bands), and to do this, there are various polyphase FIR upsamplers/downsamplers ticking inside. I started a tedious process of fine-tuning the original “naive” resampling code by unrolling loops, reordering computations, trying various ways of storing the coefficients (arrays in flash or in RAM, in order or in polyphase decompositions) and found that the code was a mess to unroll by hand! I ended up using the same approach as in some of my other Mutable or-pre Mutable projects – code generators in the form of C++ templates unrolling, pre-computing and inlining at compile-time everything that can be pre-computed. The new upsampling/downsampling code was 60% faster and all gains were reinvested in increasing the length of the filters.
  • Optimized Warps’ filter bank code and used the CPU gains to add more bands (from 16 to 20).
  • Implemented several variations of Warps’ vocoder operations, including a nice “formant sweep” that warps/shifts/pinches the vector of gains from the analysis filter bank.
  • Did a bunch of performance optimisations to Warps’ code, in particular replacing lookup tables by the actual computations in a few places! All gains reinvested in faster reaction to CV changes.
  • Started working on Warps’ easter egg.
Posted in News | Comments Off

This week at Mutable Instruments

  • Received and dispatched a new batch of Shades/Branches.
  • Many small incremental improvements to Warps’ firmware: parameter smoothing, more consistent signal levels across all modulations, rectifier/octaving modulations, more interesting interactions between the internal oscillator and the audio input. First prototype sent to a beta-tester had an immediate failure – could be a fluke or a sign of a hardware problem. Kind of scary…
Posted in News | Comments Off

This week at Mutable Instruments

  • Continued work on DMA / external clocking / synchronization experiments. This time for the STM32F4.
  • Worked on a few improvements to the Shruthi firmware.
  • Finished assembling, and tested new revision of Warps PCB.
  • Finished assembling first revision of Rings PCB. Successful board bring-up! Validated Rings’ firmware update procedure and all basic I/O code.
  • Refreshed some of the user manuals.
  • Reworked Rings’ and Warps’ boards with a few audio quality improvements… ready for a new batch of prototype boards.
  • Built a prototype of Links with a few hardware tweaks I wanted to experiment with.
  • Made a lot of progress with Warps’ code: improved built-in sine oscillator (audio rate FM!), improved the filter-bank used for spectral and vocoder effects, added more timbre variations in the comparator and fixed all kinds of parameter ranges/reaction to CV modulations issues. I’ll have something ready to send to beta-testers next week. TODO: easter egg, factory testing GUI. Then, ordering prototype boards with the latest hardware changes!
Posted in News | Comments Off

This week at Mutable Instruments…

  • Tried to rework Links’ PCB to use the same jacks as the other modules, shrunk everything and moved all components to the top side.
  • Prepared a 3-week schedule for all the work on new modules’ DSP code.
  • Sketched ideas for sequencers in pd.
  • Did plenty of nasty things with the STM32F – overclocking (STM32F1 at 135 MHz), abusing the PLL, clocking the chip from oscillators at unholy frequencies, input capture feeding timers triggering DMA transfers to GPIOC->ODR, unorthodox use of DMA registers and transfer width to do buffer shifting/mirroring operations… Got them to do pretty much everything unusual they’ll have to do for an upcoming module!
Posted in News | Comments Off

Recently at Mutable Instruments

  • Finished shipping modules to dealers.
  • Reworked Streams’ calibration procedure – the range of the compensation in the software calibration procedure was a bit too narrow for 8 units.
  • Investigated on the cause of a firmware flashing problem in Streams. This time I had to manually check all units for the flaw, I don’t want this to happen in batch two!
  • Revised QA procedures for all modules, now that I have a better ideas of the kind of issues that are likely to pop.
  • Worked on a few improvements to Warps’ hardware. Reordered assembled prototype board.
  • Prepared BOM for new module, put it in the production quote pipeline, ordered assembled prototype board.
  • Wrote all the boring code (peripherals initialization, firmware upgrade, UI, calibration, factory testing program) for new module.
  • Panel assembly/testing/packaging of 100 Links. This is now the only module (with Volts) not made locally – I receive only the assembled boards…
  • Found a new packaging supplier. Yeah!
  • Received 25x Shades and 25x Branches from the factory – first batch made in France. Inspected all of them, all good! The remaining 225 are going to be made in the next two weeks.
  • Received 2x Shelves expander. I wanted to be sure these were OK before they put the panels on the 98 remaining ones. All good!
Posted in News | Comments Off

Recently at Mutable Instruments

  • Received, inspected and dispatched new modules. About 75% of orders from dealers have been fulfilled – still waiting for more Elements.
  • Post-NAMM strategy planning. Among the modules I planned to do this year, I had to put one on the backburner because it would have looked too much like something announced by another manufacturer – but it looks like the other ideas I have for this year are very original and solid.
  • Feature planning, schematics and PCB layout for a new module. Certainly not the most original of the year, but it has to be done.
Posted in News | Comments Off

Recently at Mutable Instruments

  • Found a couple of code and lookup table size optimizations for Braids.
  • Implemented triple sine and triangle modes in Braids’ firmware.
  • Implemented Tides’ original PLL and sync features in Sheep.
  • Built a prototype of Braids with a few hardware fixes/tweaks. The goal is to have it in production by mid 2015.
  • Resumed shipping orders to dealers.
  • Rewrote from scratch Clouds’ grain rendering code, boosting the maximum number of grains by 250-400%
  • Rewrote Clouds’ “blending” features – allowing all 4 blending functions to be used at the same time.
  • Improved Clouds’ three alternative processing modes (WSOLA stretcher, looping delay aka ‘Ghettophon’, spectral) – they are rougher, weirder and react to triggers.
  • Spent a lot of time with Clouds, trying to identify bugs before shipping the “golden” version of the firmware.
  • Updated Clouds’ manuals.
  • Solved a production emergency with Clouds. We’re going to hand-solder one part which we suspect does not withstand wave-soldering well.
  • Reopened the shop and shipped 2015’s first orders.
  • Sent RFQ for Warps’ manufacturing (and for another new thing).
  • Finished building and testing a small batch of 10 Links. More to come!
  • Fixed a couple of last minute quirks in Elements.
Posted in News | Comments Off

This week at Mutable Instruments

  • Finished porting Peaks’ drum synthesis modes to Braids.
  • Spent some time trying to shrink Braids’ code size to have at least some space for future bug fixes (there are now less than 1kb left!).
  • Closed the shop and shipped the last order of 2014 (#9000)!
  • Continued testing every nook and cranny of Streams’ code – “golden” firmware file was due for thursday.
  • Controlled everything with two Mikrophonie kits I’ve built. If you plan to play with my new modules FROX FROX GET THIS THING IMMEDIATELY.
  • Worked on a “new module for free!” alternative firmware for Tides.
  • Timed the code in Elements to identify possible optimizations. The number of basic_building_block running concurrently jumped from 60 to 64.
  • Started moving new module 5′s DSP code from experimental C++ command line things to the actual hardware. 80% of the module is operational but the edges are still a bit rough. It more or less does what it is supposed to do, very pleasantly.
Posted in News | Comments Off