Monday, August 29, 2016

Zeiss Loxia 21mm f2.8 Lens on a Sony A7s Body







Finally received this lens the other day as a rental, loving it so far! Very clean, sharp, vivid output.

Dynamic MIDI Bussing in Ableton Live

Sometimes, I need to send MIDI data from one place within Live to another. There are a few ways to do this.

Often, I simply use Live's input / output selection menu for a MIDI track. This could be useful for example, when I need to record the data output from a MIDI effects rack onto a new MIDI track. The choice in this situation is simply "PreFX" or "PostFX".


Other times, I need to be able to have more control over where the signal is coming from, or going to. For example, I've got a device called Chordinator, which takes velocity events from one track and pitch values from another. combining the two to make chord structures that are rhythmically independent.

To send data from one track to another in this case, my PathMIDI device is used. This simply allows MIDI data to travel from anywhere on one MIDI track, to anywhere on another. The starting point could be in between two MIDI effects, or within an instrument chain.

My 'normal' PathMIDI and PathMIDI.receive devices allow for up to eight busses to be sent and received, and for many applications this is just fine.

However, every now and then I run into a situation where I need to send a larger number of MIDI busses between places. For instance, polyphonic, high-res pitchbending - where each note requires its own MIDI path. It's very easy to run out of busses in this sort of scenario!



To overcome this problem, I've made a send and receive setup that features 'dynamic' bussing, in the sense that the user can determine the bus number, and the bus number is stored along with the device in a set.

Download the PathMIDI.dyn device here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.PathMIDI.dyn.amxd

Download the PathMIDI.dyn.receive device here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.PathMIDI.receive.dyn.amxd


Download an example session here: http://milkcrate.com.au/_other/downloads/M4L/Dynamic%20MIDI%20Bussing.alp.zip

Sunday, August 28, 2016

iPad Microtonal Multitouch with Two Areas


A microtonal mulittouch iPad Mira patch for Max for Live, this time with two touch areas. Each area supports up to 8 fingers. Each finger sends a centre pitch, and then an offset above or below that pitch using a 14 bit pitch bend value. Download here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.Mira.TouchBend.Double.amxd

The data is received within the chain of a nested instrument rack. The data is received using a device called Touch.return. Fingers 1 - 8 in the upper touch area are received using Touch.return pathways 9 - 16, whilst finger 1 - 8 on the lower touch area are received using Touch.return pathways 1 - 8. This device can be downloaded here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.Touch.return.amxd

A session with a MIDI track with a nested instrument rack setup, with multiple copies of the instrument, is recommended for this to work correctly.

Download an example session here: http://milkcrate.com.au/_other/downloads/M4L/Multitouch%20Microtonal%20Sampler%20iPad%20-%20Double.alp.zip





Multitouch Microtonal Control for Ableton Live via iPad







A patch that generates note on / note off for touching the surface, and high resolution pitchbend data for each finger. Data is routed via the PathMIDI.receive device. Download this Max for Live device here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.Mira.TouchBend.amxd

An example session featuring these devices can be downloaded here: http://milkcrate.com.au/_other/downloads/M4L/Multitouch%20Microtonal%20Sampler%20iPad.alp%202.zip









iPad as Ableton MIDI Controller with Polyphonic Pitch Bend and Modulation


Overview
This is a Max for Live device that uses Mira so that an iPad is used as a MIDI controller for Ableton Live.

This supports pitch bend and modulation for each finger independently, as well as note on / off events with velocity control. 

Download here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.Mira.TouchNotes.amxd





Basic Use
Basic use includes:
• The X-axis represents pitch
• The Y-axis represents velocity
• Touch to play a note, release to stop playing a note
• Up to 8 notes can be played at once
• The octave dial sets the range in octaves of the X-axis
• The offset dial sets the pitch offset, and represents the lowest note of the X-axis

Basic setup:
• Use a MIDI track with an Instrument on it
• Add the little-scale.Mira.TouchNotes device before the instrument
• Make sure that the computer and the iPad are on the same network
• Alternatively, connect the computer to the iPad via a USB cable
• Launch Mira, and select the computer under the Max Server settings
• The Mira Frame will load
• Below is a basic setup video



Download an example session for the basic setup here: http://milkcrate.com.au/_other/downloads/M4L/Mira%20TouchNotes%20Basic.alp.zip





Advanced

Advanced use includes:
• All of the basic use features, plus
• Pitch bend is sent for every finger as a horizontal delta value. Each finger is independent.
• The starting point of a touch represents a pitch bend of zero. Moving left and right will increase / decrease the pitch bend
• Modulation control is sent for every finger as a vertical delta value. Each finger is independent.
• The starting point of a touch represents a pitch bend of zero. Moving up or down away from the initial touch point will increase the modulation amount. Moving up or down back towards the initial touch point will decrease the modulation amount.

Advanced setup:
• As pitch bend and modulation data is normally on a per-channel basis (as opposed to a per-note basis), setup is more complicated
• Add the little-scale.Mira.TouchNotes device to a blank MID track. Set Send Via PathMIDI to On.
• Make sure that the computer and the iPad are on the same network
• Alternatively, connect the computer to the iPad via a USB cable
• Launch Mira, and select the computer under the Max Server settings
• The Mira Frame will load
• Create a second MIDI track, and add a Instrument Rack
• Populate the Instrument Rack with a synth or sampler
• Place a PathMIDI.receive device before the synth or sampler. Set the MIDI from Menu to PathMIDI1
• Map any macro controls that require mapping, if necessary
• Duplicate the Instrument Rack chain, so that there is one instance of the synth or sampler as well as one instance of the PathMIDI.receive device per finger / note to be played
• Set the MIDI from menu for Instrument Rack chains 2 - 8 to PathMIDI 2 - PathMIDI 8.
• Each finger will now have an independent synth with the same settings and independent pitch bend and modulation control settings








Download an example session for the advanced setup here: http://milkcrate.com.au/_other/downloads/M4L/Mira%20TouchNotes%20Advanced.alp.zip

Friday, August 26, 2016

Shortest Sample Possible Ableton Live Pack


Definitely a challenge from a sound and instrument design point of view!

Download here: http://milkcrate.com.au/_other/downloads/live_packs/Shortest%20Sample%20Possible.alp

Thursday, August 25, 2016

NeoPixel 8 x 8 Matrix controlled by Resolume via Teensy


Example of a NeoPixel 8 x 8 Matrix controlled via Art-Net DMX over Ethernet by Resolume Arena, using a Teensy 3.2.

Download code here: http://milkcrate.com.au/_other/downloads/arduino/artnet_multiverse_neopixel.ino

Basic Max Jitter into Resolume via Syphon




Tuesday, August 23, 2016

Waning Moon


Monday, August 22, 2016

4.5 Hours of Original little-scale Music as Continuous YouTube Mixes











Sunday, August 21, 2016

Super Buddies Volume 3 - "The Third"


little-scale: Saxophone Emoji (2016)

Thursday, August 18, 2016

Normal Things #strangerthings


Tuesday, August 16, 2016

Nintendo Wii Classic Controller as Wired USB Gamepad




Wii Classic Controller as a USB-based HID compatible gamepad via Teensy 2.0.

Hardware setup is four connections:
• Orange wire (Wii controller connection top left) to Teensy SDA pin (Teensy 2.0 pin 6)
• Green wire (Wii controller connection bottom right) to Teensy SCL pin (Teensy 2.0 pin 5)
• Blue wire (Wii controller connection bottom left) to Teensy ground
• Red wire (Wii controller connection top right) to Teensy VCC

Download code here: http://milkcrate.com.au/_other/downloads/arduino/WiiClassicUSB.ino

Monday, August 15, 2016

Teensy LC, Resolume, ArtNet and FastLED

The Teensy LC works with the FastLED library, ArtNet DMX and Ethernet. An example sketch can be found here.

Note that due to memory constrains, the Teensy LC is limited to controlling about 1500 LEDs or so.

Here is a demo of controlling 300 LEDs using Resolume Arena. All of the LEDs are not visible in shot. 







Saturday, August 13, 2016

Max for Live: Notes to CC with Note On / Note Off

Converts MIDI notes into MIDI CC into separate CC streams, and takes into account both note on and note off events for velocity output.

Download here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.Notes2CC.NoteOn.NoteOff.amxd

kenny g bootleg edit

Kenny G + LEDs

Friday, August 12, 2016

ur a qt (Kite Splash Slop Edit)

Wednesday, August 10, 2016

Resolume Arena and Multiple ArtNet Universes with FastLED

Overview
This example shows how to deal with multiple ArtNet DMX 512 universes using Teensy 3.2, WizNet 820io and FastLED to light up an LED array using output data from Resolume.

Download the Teensy code here: http://milkcrate.com.au/_other/downloads/arduino/artnet_multiverse_fastled.ino

Resolume Arena can output one or more DMX universes via ArtNet. This data can be read by a Teensy 3.2 using a WizNet 820io Ethernet module.

The universes hold RGB LED data, where one universe with a maximum channel count of 512 can represent 170 RGB LEDs (i.e. 510 channels of data).

Naturally, it is beneficial to transmit and receive more than just 170 RGB LEDs worth of data, and thus more than one universe can be dealt with using this setup.



Libraries and Code


To use the Teensy code, the following libraries are required:
Teensy Ethernet library
FastLED library

The Teensy code is quite easy to use, with only a small number of customisable constants and variables, as shown here:


In the ArtNet DMX protocol, each universe has an address differentiated by a net (14-bit), subnet (4-bit) and universe number (4-bit). The assumption is made that all devices in this example reside on the same net, so the net byte is not checked or compared.

A given Teensy 3.2 has a user-defined subnet, between 0 - 15, and can respond to data that populates up to 16 universes. For the sake of LED framerates, it is not adviseable to go beyond 4 - 6 universes, or 680 - 1020 LEDs in total. Each universe for a given Teensy 3.2 has the same number of LEDs, from 1 - 170.

To use the code, simply customise the number of universes (1 - 16), subnet number (0 - 15), the number of LEDs per universe (1 - 170) and the data pin used for LED output data (any digital pin).

The MAC address needs to be unique for the network, and the IP address needs to be unique and appropriate for the network.



Hardware
A Teensy 3.2 is used, along with a WizNet 820io Ethernet module. In terms of LEDs, many different types are available, based on WS2811 or similar drivers. See the FastLED library for more details. In this particular example, a NeoPixel 24 Ring is used.







Connecting the WizNet 820io is as follows:
• Wiznet 820io GND, GND, GND are connected to Teensy GND
• Wiznet 820io 3.3V, 3.3V are connected to Teensy 3.3V
• Wiznet 820io Reset is connected to Teensy digital pin 9
• Wiznet 820io SS is connected to Teensy digital pin10
• Wiznet 820io MOSI is connected to Teensy digital pin11
 • Wiznet 820io MISO is connected to Teensy digital pin12
• Wiznet 820io SCLK is connected to Teensy digital pin 13

Connecting the NeoPixel or similar device(s) is simply a matter of connecting the Teensy data output pin (as defined in the code) to the data input pin on the LED array via a 100 ohm or similar resistor. Ground on the Teensy should be connected to ground on the power supply used for the LED array. A 1000 - 2000uF capacitor should be placed between ground and power on the power supply output for the LED array.

For a small number of LEDs, simply use USB power. Keep in mind that each LED will draw a maximum of 60mA, with a minimum of 20mA.



Mapping in Resolume Arena
The process of mapping multiple universes to one Teensy using Resolume as a data source is straightforward. In Resolume Arena, go to Output > Advanced Output. Create a new Lumiverse (or use an existing one).

This is a universe of DMX data, but represented inside of Resolume, and relative to the composition output. Create one or more new LED fixtures (or use existing ones), and populate the lumiverse with the same number of LEDs as defined in the "number_of_leds_per_universe" constant in the Teensy Arduino code.

Create additional lumiverses as required, totaling the number of universes defined in the Teensy Arduino code.


In this example, two lumiverses, each populated with 12 LEDs are used. These two universes are mapped to a NeoPixel 24 Ring.

In Arena > Preferences, go to  the DMX preferences tab. Create one DMX ArtNet output per lumiverse. Each lumiverse must share the same subnet number (the same one defined in the Arduino code) and unique, consecutive universe numbers (starting at 0, with a maximum of 15).




Example Video

Video: Mapping Resolume Arena to a NeoPixel LED Ring

Tuesday, August 09, 2016

Neopixel Ring





Receiving Art-Net DMX with Teensy 3.2 and FastLED

The output of Resolume is mapped to a maximum of 170 RGB LEDs, thereby making up one DMX universe with up to 510 channels of active data.

A WizNet 820io adapter is used, along with the Teensy EthernetUDP library to receive DMX packets over a network. The Teensy code responds to a unique universe (by net, subnet and universe address).

Download the code here: http://milkcrate.com.au/_other/downloads/arduino/artnet_single_universe.ino