Pitfalls

I’ve been working on the next release of pitfalls.

So far I’ve added support for using the Mx.Samples and MollyThePolly engines.

Other things I’m keen to add are:

  • MIDI keyboard input support
  • monophonic pitchbend MIDI out
  • visualisation the scale degree(s) you’re playing
  • display of “chords” in each scale.
10 Likes

I was just thinking today about exploring more scales and now I have this app to play around with.

Looking forward to playing with it.
Thanks for the midigrid support too.

1 Like

I’m just finishing off the next release of pitfalls, v0.4.0 ostinato odington! So far in the next release:

  • Add MIDI in support to play microtonal scales from your MIDI keyboard
  • Add MIDI out monophonic pitch bend note play to play microtonal scales on external hardware
  • Add “MollyThePoly”, “MxSamples”, “Synthy” engine support
  • Autosave params on change
  • Load from saved params on init
  • Add new ratios display - show intervals/chords as played

Any last requests? Crow support perhaps?

11 Likes

Currently I’m having issues with pitfalls respecting clock rate, it seems to arpeggiate at the same rate regardless of clock settings. If this is expected behavior, then some way of slowing the rate would be nice.

Fortuitously my last commit was a change to use clock with a step_div param to time the arpeggio/sequence. This will be in v0.4.

In v0.3 it uses a metro counter, which does not respect the clock.

1 Like

New release: Pitfalls v0.4.0 ostinato odington … microtonal scales for your playing pleasure!

Changelog:

  • Add MIDI in keyboard support on virtual port 1
  • Add MIDI out monophonic pitch bend note play on virtual port 2
  • Add MollyThePoly, MxSamples, Synthy engine support
  • Autosave params on change
  • Load from saved params on init
  • Add new ratios display - show intervals/chords as played
  • Use clock to time the arpeggio/sequence

Thank you to @chrisl, @nattog, and @Zedkah for being an early audience for this release at the Lines Meetup: London. 11th November 2021.

pitfalls v0.4 - grid demo:

13 Likes
Any ideas? Thanks

Hi, I’m getting an error: load fail. Looking at matron it looks like something to do with midigrid (I don’t use one)

type or paste code here


# script clear
# script load: /home/we/dust/code/pitfalls/pitfalls.lua
including /home/we/dust/code/pitfalls/lib/includes.lua
including /home/we/dust/code/pitfalls/lib/Scale.lua
including /home/we/dust/code/pitfalls/lib/functions.lua
including /home/we/dust/code/pitfalls/lib/patch.lua
including /home/we/dust/code/pitfalls/lib/ratios.lua
including /home/we/dust/code/pitfalls/lib/chords.lua
including /home/we/dust/code/pitfalls/lib/named_scales.lua
including /home/we/dust/code/pitfalls/lib/Intervals.lua
including /home/we/dust/code/pitfalls/lib/ScaleIntervals.lua
including /home/we/dust/code/pitfalls/lib/Pitches.lua
including /home/we/dust/code/pitfalls/lib/display.lua
including /home/we/dust/code/pitfalls/lib/display_strings.lua
including /home/we/dust/code/pitfalls/lib/display_circle.lua
including /home/we/dust/code/pitfalls/lib/display_patch.lua
including /home/we/dust/code/pitfalls/lib/parameters.lua
pset >> read: /home/we/dust/data/pitfalls/pitfalls-01.pset
pset :: /home/we/dust/data/pitfalls/pitfalls-01.pset not read.
including /home/we/dust/code/pitfalls/lib/arpeggio.lua
including /home/we/dust/code/pitfalls/lib/keyboard_mappings.lua
including /home/we/dust/code/pitfalls/lib/midi_in.lua
including /home/we/dust/code/pitfalls/lib/midi_out.lua
including /home/we/dust/code/pitfalls/lib/g.lua
grid_lib	midigrid/lib/midigrid
### MISSING INCLUDE: midigrid/lib/midigrid
### SCRIPT ERROR: load fail
/home/we/dust/code/pitfalls/lib/g.lua:6: MISSING INCLUDE: midigrid/lib/midigrid
stack traceback:
	/home/we/norns/lua/core/norns.lua:145: in function </home/we/norns/lua/core/norns.lua:145>
	[C]: in function 'error'
	/home/we/norns/lua/core/startup.lua:48: in function 'include'
	/home/we/dust/code/pitfalls/lib/g.lua:6: in main chunk
	[C]: in function 'dofile'
	/home/we/norns/lua/core/startup.lua:42: in function 'include'
	/home/we/dust/code/pitfalls/lib/includes.lua:64: in main chunk
	[C]: in function 'dofile'
	/home/we/norns/lua/core/startup.lua:42: in function 'include'
	/home/we/dust/code/pitfalls/pitfalls.lua:52: in main chunk
	[C]: in function 'dofile'
	/home/we/norns/lua/core/script.lua:192: in function </home/we/norns/lua/core/script.lua:192>
	[C]: in function 'xpcall'
	/home/we/norns/lua/core/norns.lua:146: in field 'try'
	/home/we/norns/lua/core/script.lua:192: in function 'core/script.load'
	/home/we/norns/lua/core/menu/preview.lua:23: in function 'core/menu/preview.key'
	/home/we/norns/lua/core/menu.lua:140: in function </home/we/norns/lua/core/menu.lua:117>
# script clear
lua: 
/home/we/norns/lua/core/clock.lua:59: bad argument #1 to 'resume' (thread expected)
stack traceback:
	[C]: in function 'coroutine.resume'
	/home/we/norns/lua/core/clock.lua:59: in function 'core/clock.resume'
lua: 
/home/we/norns/lua/core/clock.lua:59: bad argument #1 to 'resume' (thread expected)
stack traceback:
	[C]: in function 'coroutine.resume'
	/home/we/norns/lua/core/clock.lua:59: in function 'core/clock.resume'
>>

i had the same issue - so i installed midi grid here and started the script 2 times and it works ok. I am using a monome grid.

Really enjoying the script. Its arp monster with midi out :slight_smile:

One request would be for the midi velocity to have some dynamic range - so every note has random velocity within a set range - like 90 - 127 - useful for the arpeggiator section. One issue was i couldn’t get the “size” “mode” and the “s " and " L” bits from the main page to save as part of the preset. I could only get the octave to save.

1 Like

That fixed it, thanks mlogger!

1 Like

I’ve just released pitfalls v0.4.1 which fixes the script to work when midigrid is not installed. Thanks for the error report.

I’m sure I am missing something, and am not in front of my Norns now, but how do you start/stop the sequencer? Does K2 toggle between the sequencer playing chords and single notes within the scale? Finally, how many voices can be played at once? From the video using mx.samples, it sounds like there are two simultaneous voices, at least, that are possible.

Thanks in advance for creating this awesome microtonal script!!

Currently K2 toggles you through different arpeggiation options:

up scale
down scale
single notes from chords
chords
off.

Since this is confusing, in the next release I’ll change this to K2 just toggling arpeggiation on/off. And the arp option will become another option that can be changed via E2/E3.

When playing via grid, midigrid, midi, you have multiple note polyphony.

1 Like

Excellent - thanks!!

In the v.0.4 grid demo video, it sounds like you have two different sounds running from mx.samples simultaneously - one running via the sequencer and one when you are playing the LP - is that correct?

In the last demo video when mxsamples is the selected synth engine, it is only playing one sample. Pitfalls doesn’t currently support playing multiple mxsamples simultaneously.

The arpeggiate in 0.4 is over notes in one octave. You select the octave on the pitfalls screen. Whereas from the launchpad I’m playing notes in a different octave. Any difference we hear is due to the difference in octave. I think mxsamples speeds up or slows down samples to achieve different pitches, so that may play into it.

Got it - makes perfect sense. Thanks again!

Im not sure how i missed this script. Its so much fun!
Thanks for making it!

1 Like

maybe late to the party, but yes - crow support, especially JF via i2c would be ace! currently dipping my toes into xenharmonics, so pitfalls is an awesome companion …

2 Likes

New patch release: Pitfalls v0.4.2 … microtonal scales for your playing pleasure!

Changelog:

  • Set engine selection list with engines that are installed
  • Supported engines are PolyPerc, MollyThePoly, Mx.Samples, and Synthy
  • Wait until engine is loaded before trying to load next engine
  • Do not offer mx.samples engine when there is no audio/mx.samples directory
  • For midi_out.pitch_bend_value() reuse, pass pitchbend semitones as 2nd argument
3 Likes

Awesome - I don’t know if you saw this post but I think Pitfalls has most of what is in that module

Hmm, this is odd. I keep on getting error:init. I know that Midigrid is not mandatory anymore (and I did install it too), but I still get the error.