Live MIDI Sequencing Using Pyramid from Squarp

Pyramid at Work

Last July I wrote an article titled, How Do You Do Your Live MIDI Sequencing? In the article I expressed my frustration with the ubiquity of step sequencers and lack of modern hardware sequencers that handle live recording and polyphony. In December, 2015 I became one of the lucky few to own a Pyramid sequencer by Squarp. Pyramid is an amazing instrument that does everything that has been lacking from most modern sequencers, plus an ever widening array of advanced features available as MIDI effects. It’s hard to contain my excitement about this machine! Squarp has been extremely communicative with their customers through email and their online forum. New releases have been frequent during its life cycle, and I expect many fantastic new features and advancements in the near future. Here’s a few of Pyramid’s current capabilities that I find exciting:

1. Live recording of polyphonic notes with velocity, pitch bend, channel pressure, mod wheel, and continuous controllers. Notes are recorded without quantization unless the Quantizer MIDI effect is applied to the track. What makes this exciting is that although polyphonic and un-quantized recording is common in software it’s rare in new hardware sequencers.

2. Simultaneous track lengths and time signatures are independent of each other. The track lengths are not limited to bars, but can be adjusted down to individual steps. For example, a five bar and three step phrase is possible. This feature allows for polyrhythmic sequencing which I’m very excited about.

3. Pyramid projects are saved on a standard removable SD card as a collection of MIDI files. Although there are plenty of editing features in Pyramid, if you need to for any reason, the files can be edited on a computer in your favorite DAW. You can also create or import MIDI files from elsewhere into a Pyramid project!

I’ll share some of the music I’ve been creating with this beast soon. I could (and will in future posts) go on about euclidean rhythms, step editing, sequencing tracks, chaining sequences, and CV/GATE i/o – all capabilities that Pyramid has, but for now take a look at this collection of tutorial videos that Squarp shared just yesterday:
Continue reading

Ostracon and Chris LeBlanc Featured at #L2L, Feb 10, 2016

unnamed

My eletroacoustic duet, Ostracon in collaboration with Graham O’Brien on drums, is performing at the Landmark to Lowertown series hosted by the American Composers Forum. Chris LeBlanc will be joining us with his modular, analog, video synthesis system running through a wall of vintage 22″ CRT monitors. Our performance starts at noon at the Bedlam Theatre in St. Paul.

The Forum is pleased to announce its second season of Landmark to Lowertown, a program where new music sees the light of day in downtown St. Paul. In starting a new tradition, this season’s composer/performers are awardees of the Minnesota Emerging Composer Award (MECA) from ACF and generously funded by the Jerome Foundation, an award that highlights artists in Jazz/Improvisation, Electronic, and World music.

Ostracon is in the process of finishing our 2nd album. There’s no scheduled release date as of yet, but the recordings have been made and editing is underway. Expect more announcements about the album within the next couple of months. For now we will be pleased to see you at the Bedlam on February 10, 2016!

Video: 70 Crowdsourced Scores Performed in 9 Hours

On June 13, 2015 I collaborated with a team of nine students and nine musicians on a project I directed for Northern Spark, an annual, all-night, art festival In Minneapolis and St. Paul, Minnesota. We titled the project, Instant Composer: Mad-libbed Music and the intent was to engage the audience into instantly writing musical compositions for an ensemble of improvising musicians.

I discussed the concept here in-depth and also announced the project last June. I had no idea what to expect, but was thrilled with the outcome. Around 115 crowdsourced scores were entered into a database via our mobile application. During the nine hour performance we interpreted nearly 70 of those pieces for the audience.

ICMLM Sandwich Board

This video should give you a sense of what went on that night, but no media can fully represent an event like this. I can say that it wouldn’t have happened without the student collaborators, our collective of excellent musicians, the Northern Spark organizers, Art Institutes Minnesota, and the hundreds of people in our audience willing to engage in the process. Please see the video for the full project credits.

Using Tidal to Control the Roland System-1M

Roland System-1M

This is Mike Hodnick with my first article on audiocookbook.org. I recently added the Roland System-1M semi-modular synth to my studio and live setups recently, and as with any new instrument in my studio I wanted to take it to extremes and see what it could do. It was the perfect occasion to document on audiocookbook.org!

I’m not your typical producer or performer. I write computer code, often improvised, to produce sound both live and in the studio. I use a language and live-coding environment called Tidal to trigger samples, play MIDI devices, and create sequences. Instead of a DAW or sequencer to create sound, I use a text language.

My first real experiment with the System-1M was to automate all of its MIDI Control Change parameters from code simultaneously. It’s kind of like running a few dozen LFO’s at once. I like to do this with all of my instruments to take them to an extreme and maybe even get some interesting sounds out.  As an added twist, I thought it would be fun to also live-patch the modular inputs and outputs on the System-1M while the MIDI automation was taking place. Here is the result:

The source code used for this performance experiment is at the bottom of this post. The only parameters that were not automated in this example were the Oscillator 1 level (kept at 100%), the Mono/Poly toggle (kept on Monophonic), Legato toggle (off), amp crusher (off), and LFO key retrigger (off). Details about the System-1M’s MIDI implementation can be found at roland.com/support/by_product/system-1/owners_manuals/8789.

There are some brilliant sounds coming out of this thing!

By far, my favorite features of this synth are the two oscillators and their controls. Each oscillator supports multiple wave forms, modulation control (oscillator 2 can be ring-modulated from oscillator 1, and oscillator 1 can be cross-modulated from oscillator 2), and a “color” parameter which can be modulated from the LFO or filter/amplitude envelopes. Oscillator 2 also has a fine-tune control. With all of these combined, the possibilities are enormous.

Stay connected at kindohm.com, @kindohm or facebook.com/kindohm for info about Mike’s studio experiments, releases, and performances.

Here’s the source code used to control the System-1M:

-- play a m9 arpeggio, starting from MIDI notes 45, 33, or 57
m $ slow 2 $ (|+| note "[45 33 57]*4") $ mel m9 10 "0*16?"
|+| dur (scale 0.05 0.2 $ slow 1.9666 sine1)
|+| rlpcutoff (scale 0 1 $ density 1.01 sine1)
|+| rhpcutoff (scale 0 1 $ density 1.132 sine1)
|+| rfilteratk (scale 0 0.5 $ slow 1.2 sine1)
|+| rfilterdecay (scale 0.05 0.5 $ density 1.5181 sine1)
|+| rfiltersustain (scale 0.1 1 $ density 1.277777 sine1)
|+| rfilterrelease (scale 0.05 0.5 $ slow 1.523 sine1)
|+| rres (scale 0 0.7 $ density 1.313 sine1)
|+| rfilterenv (scale 0.1 0.9 $ density 1.111 sine1)
|+| rcrush "0" 
|+| rampatk (scale 0 0.5 $ slow 1.213 sine1)
|+| rampdecay (scale 0.05 0.7 $ density 1.333 sine1)
|+| rampsustain (scale 0 1 $ slow 2.313 sine1)
|+| ramprelease (scale 0.05 0.3 $ slow 2.877 sine1)
|+| rpitchenv (scale 0.2 0.8 $ density 1.987 sine1)
|+| rport (scale 0 0.5 $ slow 1.77777 sine1)
|+| rpitchatk (scale 0 0.5 $ density 3.4111 sine1)
|+| rpitchdecay (scale 0 0.5 $ density 1.2222 sine1)
|+| rosc1 "1"
|+| rosc2 (scale 0 1 $ slow 2.6665 sine1)
|+| rosc2tune (scale 0.2 0.8 $ slow 3 sine1
|+| rsub (scale 0 1 $ slow 1.919 sine1)
|+| rnoise (scale 0 1 $ density 3.71771 sine1)
|+| rnoisetype "[0 1]*3"
|+| rsubtype "[0 1]*5"
|+| rlegato "0"
|+| rmono "0.5"
|+| rosc1type (scale 0 1 $ slow 1.77777 sine1)
|+| rosc1range (scale 0 1 $ slow 2.8888 sine1)
|+| rosc1color (scale 0 1 $ density 1.4344 sine1)
|+| rosc1xmod (scale 0 1 $ density 1.30010010 sine1)
|+| rosc1mod (scale 0 1 $ density 3 sine1)
|+| rosc2type (scale 0 1 $ slow 0.9999 sine1)
|+| rosc2range (scale 0 1 $ slow 3.151 sine1)
|+| rosc2color (scale 0 1 $ slow 5.131 sine1)
|+| rosc2ring "[0 1]*9"
|+| rosc2mod (scale 0 1 $ slow 3.141 sine1)
|+| rosc2sync "[0 1]*7"
|+| rlforate (scale 0 1 $ slow 2.17717 sine1)
|+| rlfofilter (scale 0 1 $ slow 3.3333 sine1)
|+| rlfoamp (scale 0 1 $ slow 1.21 sine1)
|+| rlfotype rand
|+| rlfokeytrig "0"
|+| rdelay (scale 0 1 $ sine1)
|+| rdelaytime (scale 0 1 $ slow 3.888 sine1)
|+| rreverb (scale 0 0.4 $ density 1.2331121 sine1)