14
edits
(→Starting thoughts: --Heart of the seq) |
|||
| (9 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Pattern-Stepsequencer = | |||
== Intention == | == Intention == | ||
| Line 9: | Line 5: | ||
I wanted to have a stepsequencer with a tangible interface and with pattern-mode transpose abilities. As I haven’t found any of these in hardware or in software on the net, I decided to make one myself. | I wanted to have a stepsequencer with a tangible interface and with pattern-mode transpose abilities. As I haven’t found any of these in hardware or in software on the net, I decided to make one myself. | ||
There are some | There are some already existing sequencers which have their own pros and cons. Let’s take a look at some of them. | ||
== Comparision of stepsequencers == | |||
== | === ARP Sequencer (Mod. 1601) === | ||
type: | |||
type: | |||
1x16 or 2x8 step analog cv sequencer (no midi) | 1x16 or 2x8 step analog cv sequencer (no midi) | ||
| Line 35: | Line 29: | ||
=== Doepfer Dark Time === | |||
type: | |||
type: 2x8 or 1x16 step sequencer | 2x8 or 1x16 step sequencer | ||
2bus | 2bus | ||
midi in/out | midi in/out | ||
| Line 52: | Line 46: | ||
=== Oberkorn SL16 / oberkorn-sliders === | |||
type: | type: | ||
1x16 step, 2bus cv (+midi) sequencer | 1x16 step, 2bus cv (+midi) sequencer | ||
| Line 68: | Line 62: | ||
no transpose function | no transpose function | ||
=== Quasimidi Polymorph === | |||
type: | type: | ||
| Line 93: | Line 86: | ||
=== Manikin Schrittmacher === | |||
type: | type: | ||
| Line 119: | Line 112: | ||
I had the opportunity to try out all of these in real (except for the ARP Sequencer, which I used as a software version together with the Arp2600V by Arturia). Additionally, I do own a Polymorph myself. | I had the opportunity to try out all of these in real (except for the ARP Sequencer, which I used as a software version together with the Arp2600V by Arturia). Additionally, I do own a Polymorph myself. | ||
== What does a sequencer need and what not? == | == What does a sequencer need and what not? == | ||
=== Cycle length === | |||
A good sequencer consists at least of one line with 16 steps. There are obscurities like the MFB Step64 which has 64 steps, but in general, 16 are enough. | A good sequencer consists at least of one line with 16 steps. There are obscurities like the MFB Step64 which has 64 steps, but in general, 16 are enough. | ||
Tracks | === Tracks === | ||
I surely would like to have more than one track, 5 or 6 would be nice. But one is also enough for a start. | I surely would like to have more than one track, 5 or 6 would be nice. But one is also enough for a start. | ||
Directions | === Directions === | ||
Usually, I only use the forward direction. Backward and random are nice, but I never found myself using that. | Usually, I only use the forward direction. Backward and random are nice, but I never found myself using that. | ||
Cycle-length | === Cycle-length === | ||
This is an important feature since not every music can be pushed into a 16 scheme. Also, it can be really convenient to just let a sequencer play the first half, while you’re still adjusting the second half to your needs. But it is not nessecary to let the sequence start from somwhere else but 1. | This is an important feature since not every music can be pushed into a 16 scheme. Also, it can be really convenient to just let a sequencer play the first half, while you’re still adjusting the second half to your needs. But it is not nessecary to let the sequence start from somwhere else but 1. | ||
Syncing abilities | === Syncing abilities === | ||
Would be great but I do not have enough knowledge to realize this. If the sequencer is big enough it’s not neccesary to link it to another one. | Would be great but I do not have enough knowledge to realize this. If the sequencer is big enough it’s not neccesary to link it to another one. | ||
== Arpeggiator (transpose on midi input) == | == Arpeggiator (transpose on midi input) == | ||
| Line 197: | Line 186: | ||
== Implementing the UC33e== | == Implementing the UC33e== | ||
This was annoying as I had to do this several times. I mapped the controls to 1...8 in each row and every row had another midi channel. The UC-33e forgot its settings a few times, until I replaced the CMOS battery. | This was annoying as I had to do this several times. I mapped the controls to 1...8 in each row and every row had another midi channel. The UC-33e forgot its settings a few times, until I replaced the CMOS battery. | ||
All the in and output happens in midiio. | |||
=== Forwarding and distributing the control messages === | === Forwarding and distributing the control messages === | ||
| Line 206: | Line 195: | ||
== The heart of the sequencer == | == The heart of the sequencer == | ||
The central subpatch is switchblade, containing the main mechanism to save the note values and forward each of them to the midimaker. This is triggered individually by the ticker (so there is only one note played simultaneously), which is generated by the complexcounter. | |||
That complex subpatch counts from 1 to 16, it detemines which of the 16 steps is being played and for how long. | |||
The midimaker simply generates a midi note (with on and off message), the length is determined by the bpmtomsec. The length is calculated in a way, that the notes do not overlap but are as long as possible. | |||
To put it in a nutshell, the whole patch generates MIDI on and off messages with controllable speed and pitch. | |||
== The extras == | |||
Of course that doesn't make up for a complete sequencer. So I implemented a start and stop button, connected to the complexcounter. If that patch stops counting, the whole sequencer stops playing. A note off will be sent anyway. | |||
=== Paracontrol panel === | |||
The paracontrol panel allows the user to control the tempo, the cycle length and the note scaling of the main sequencer and the bottom offset and cycle length of the transpose section. These are mapped to the upper row of the UC-33e in the same order as displayed in PD. | |||
=== bottomoffset and rangeselect === | |||
As it is difficult to get the right note when you have 127 values on a small knob, I implemented a stretching feature. It reduces the range of selectable notes and takes the range to the desired level (otherwise one would be only able to trigger subaural bass notes with this). bottomoffset and rangeselect neatly display the amount of octaves from the bottom, the lowest key and how many octaves wide the stretching should be. As I know from experience, a range from 1-4 octaves is more than enough. | |||
=== patternblade === | |||
This contains the mechanism for my programmable arpeggiator. It works exactly as described above (Arpeggiator). If the cycle length is set to 1, the main sequence will just repeat as usual. | |||
=== midiio === | |||
A diagnosis tool, intended to show all incoming CC. | |||
Furthermore, the Fader F9 controls the note volume (velocity) globally. | |||
= Working with the sequencer = | |||
It works as desired, but by now only within the computer, using its own wavetable MIDI synthesizer. | |||
== Issues == | |||
* MIDI communication to other devices doesn't work. During opening, PD moans that "MIDI input is dangerous in Windows". It also means that I cannot plug in the PC's midi output to any of my synths, for whatever reason. The forums did not give me an answer for this. | |||
* Due to these circumstances, I wasn't able to test the transpose-on-note-in feature. It has been removed from the patch. | |||
* The current note cannot be seen, but I don't really need this. | |||
* Programming the steps is a bit fiddly due to the small knobs. That may be solved by using different pot heads. | |||
* During startup, multiple zero division errors pop up. This is caused by the autoscale object, because most of the values need to be stretched to an area starting with zero and as soon as this value is entered into there, an error notification appears. Interestingly, this has no effect on performance or program stability, so I suggest to ignore it. | |||
= What else to implement next? = | |||
* Another blade showing the note value of each step and the current output and the option to mute each step individually. I tried this, but for unknown reasons, PD always crashed, so I decided to stay with the version I had before. | |||
* Getting (several) another UC-33e and make more tracks (but thanks to the MIDI issues of PD, this will be quite likely impossible) | |||
----- | |||
= Appendix = | |||
The complete patch including subpatches can be downloaded [http://www.lauserundleiter.de/stepsequencer.zip here.] This has been built on PD for Windows, v. 0.42.5. You need the Vanilla library and a UC-33e midi controller or anything comparable. | |||
Thanks to Schneiders Laden in Berlin, where I had the opportunity to test the Oberkorn and Manikin Schrittmacher and to Mr. Schneider himself who helped with explanations. | |||
edits