SoftBits Live

Related projects:
LittleBits Softbits
LittleBits Korg Synth Kit
LittleBits Midi Interface
LittleBits Arduino Synth Fun
LittleBits Broomstick Guitar
Broomstick MIDI guitar
Mouse Organ

Day 12: Added flip and remove handles for un-docked bits. Made the cursor change as you move over bits. Drag by the snap to dock/undock a bit.

Day 13: Docking now copes with 'overshoot' and now 'backs up'. Fixed issue where if there were two paths to a bit such as using a split and bargraph2, part of the connected bits were moved twice as far as the move relative function moved the connected parts once through the first docked snap and then again via the second docked snap. This also showed up an issue where you could not un snap a bit when it was connected twice to the same 'net'. Now when one snap is un-docked, all other snaps on the bit to the same net are also undocked. Now when you dock a bit or net, all un docked snaps are tested to see if there is a dockable snap in range and automatically connected. Working on the backend serial port server so the web page will be able to communicate with the Arduino. I am going to use Midi messages as the data ex format. Will use Midi SYSEX messages to send bulk data between web page and the Arduino.

Day 14. Busy day, mostly working on the softbitslive backend that talks to the arduino.

Day 15. Got a basic backend and can send note data to arduino. Added a input "piano" keyboard that can be played using the letters qwertyuiop and the numbers 23 567 90.

Day 16. It Works! Debugged the Midi System Exclusive message processing so that the javascript in the web page sends the current program bytes to the backend which routes them to the softbitslive proxy which then sends the midi data over the serial link to the Arduino. The SoftBits Live sketch decodes the midi sysex message and loads the codes and executes them.

Day 17. Having got the bare bones time to add some error checking and functionality.

Day 18. Finally have got the LittleBits Arduino module to talk to the serial server. Making a demo video.

Day 19. Re did the video, first attempt and sound issues. New video is available HERE.

softbitsglobals.js
Global variables, the main tables and some of the sysex msg functions used to send to the backend.
softbitsctrls.js
The Arduino and Piano controls. Controls have to draw themselves and have more complex behaviours.
softbitslive.js
The rest of the javascript.

Day 22. Splitting the Javascript into pieces. It was getting too large to find things easily.

Day 24. Christmas Eve, been a busy day. Done a few things to the code. Working on labling each bit with the domin it runs in. EG. 1 is Arduino only, 2 is WEB page only. Starting to generate seperate code bytes for web page and arduino.

Day 25. Christmas Day, been a good day. Plenty of food, a few naps and got the basic domain labling working.

Day 27. Main functionality in place. filling out the arduino softbits and making sure that the web page matches.

Day 29. Down to a few bugs and some features to go before release. Need to add Save/Load so the circuit can be saved and loaded later. Need to add a sequence number so the web page knows if the Arduino is running the current code. Wire_recv is not always getting the data from the expected chain but could just be the out of date code issue.

This is the logger

Choose bit to add.
Select bit type to populate list.

 

Power
Input
Output
Wire
Action
Logic
Code display in hex