– pixels –
a generative visual sequencer instrument for norns
six travelers inching over
luminous terrain
worlds to be explored in time
each step, a new chance
to emanate tones
11-26-2020: I’ll try to post some audio examples tomorrow. I need to figure out a way to limit the polyphony of the internal engine and iron out a few issues before I release it in the very near future.
11-27-2020: I’ve been gifted a solution for limiting the polyphony by @zebra. Thank you for the help. I’ve also smunched in a very kludgy, longform save method allowing for three save spots. Yay! Now I just need to complete a video and package the whole thing up. Soon!
11-28-2020: Posted some basic examples of what is possible with pixels. These are quick sketches only using the internal synth. I’d like to post some more examples with external gear … as I’m having a blast driving my OP-Z with pixels!
11-30-2020: Added @zebra new ‘Thebangs’ engine to control polyphony. Tweaked some landscape randomization. Should be connecting to the library soon.
12-07-2020: Pixels has been updated to version 1.1!
Version 1.1 Changes:
- Replaced cardinal directions with the wayfinder and more precise control of pixels. Stopping is indicated by an animated circle at 3:00
- K2 immediately identifies the current pixel/wayfinder
- independent synth algorithms and modulation settings for each pixel
- fixed: duplicate name issue with The Bangs
12-09-20: Pixels 1.1.2 has been released!
Version 1.1.1 Changes:
- Removed debug statements from The Bangs engine
- Moved all screen calls to the redraw loop
- Added a tiny value (.001) to the mod2 value to keep the klang engines happy
Version 1.1.2 Changes:
- Found and clamped additional screen.level calls into the range of 0-15
12-15-2020: Pixels 1.2 has been released!
A couple of bug fixes:
- moved the pixel “pulse” animation math to be more in sync with the beat subdivision
- fixed an issue with save slot “c”
12-23-2020: Pixels 1.3 has been released!
NEW DRAWING MODE
K2 + K3 = enter exit drawing mode
K1 = brightness/pitch
K2 = x position
K3 = y position
You cannot access the other menu pages while in drawing mode. You may want to change your “style” to “dark”, “gray” or “light” before entering drawing mode to give yourself a nice canvas.
The default color for drawing is black (lowest pitch).
A couple of bug fixes related to saving/loading.
Idea
I started out wanting to write something that would convert an imported PNG file into music and ended up somewhere else. Exploring ambient soundscapes within set constraints. Pixels currently has about twenty landscapes to explore. Each pixel (and its position over the landscape) is a monophonic sound source with a life of its own. Bring it to life with motion, beat division, root note, scale, octave span, trigger probability, MIDI channel, MIDI velocity, pulse width, amp, and pan.
I’m currently working on some landscape randomization. Maybe someday, I can figure out how to import and read PNG pixel luminosity data, but until then, I’m happy wandering mathematically generated landscapes.
Roadmap
- reveal S E C R E T M O D E if not discovered naturally - CHECK
- implement additional features such as “attack”, and “synth algo” in new ‘Thebangs’ engine provided by @zebra (thank you!) - CHECK
- additional landscapes
- replace cardinal directions with line graphics? - CHECK
Requirements
- norns
- OPTIONAL: root note can be modified by an external MIDI keyboard
Documentation
HOLD K1 to alternate between
the menu pages and the map.
TURN encoder 1 while in
a menu to change pages.
map screen
this is where the action is.
adjust the position, direction
and rate of each pixel.
press play and have fun!
encoder 1 = tempo
ALT (pixel travel rate)
encoder 2 = pixel x position
ALT (pixel direction)
encoder 3 = pixel y position
ALT (pixel select)
key 1 = HOLD : enter menu
key 2 = HOLD : ALT
key 3 = play/stop
HINT!
when changing the direction
of a pixel (holding k2 and
turning e1) you can control
a pixel while it is moving!
when set to about 3:00,
the wayfinder will become
a circle, indicating that
pixel has stopped.
landscape screen
this is where you change the
world your pixels inhabit.
Select the style, scale,
starting note and number of
octaves. the 16 levels of
brightness displayed on
the norns screen represent
the notes of the selected
scale (albeit highly
compressed) from low (dark)
to high (light).
encoder 1 = select option
encoder 2 = adjust option
key 1 = HOLD : exit menu
key 3 = confirm selection
HINT!
going below C0 on the root
setting will allow you to
manually control the root
note with an external MIDI
keyboard.
pixels screen
take control of your
travelers! Set their initial
state, trigger probability,
midi velocity and midi channel.
only need one pixel? ok …
fine, but it could be lonely
out there
encoder 1 = select option
encoder 2 = adjust option
key 1 = HOLD : exit menu
key 3 = confirm selection
HINT!
going below 0 on midi velocity
will get you random numbers!
synth I screen
make music without a
midi instrument? ok.
here are the settings for the
built-in synth engine.
attack, release, amp, and pan.
values below 0 on atk, rel & amp
will generate random
numbers. values of pan
below -50 and above 50
will generate random numbers.
encoder 1 = select option
encoder 2 = adjust option
key 1 = HOLD : exit menu
synth II screen
need even more control of
the built in synth params?
here you go! change the
synth algorithm, and other
parameters here.
sq = square wave
sq1 = square wave modulated one way
sq2 = square wave modulated another way
flp = fm lowpass
ffb = fm feedback
rez = resonant noise
kexp = klang exponential
kln - klang linear
encoder 1 = select option
encoder 2 = adjust option
key 1 = HOLD : exit menu
HINT!
the engine supplied with
pixels (The Bangs) has 8
different synth types with
varying parameters based on
their type. twiddle knobs
and explore sounds.