Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arpeggiator #3675

Open
MrHammyMark opened this issue Jan 19, 2021 · 28 comments
Open

Arpeggiator #3675

MrHammyMark opened this issue Jan 19, 2021 · 28 comments
Labels
Feature Request New feature request MIDI MIDI support related Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts
Milestone

Comments

@MrHammyMark
Copy link

Great work on the 1.8 update guys!! The filters are sounding much better!!
Any chance of putting an arp into it?

Thank you

@mkruselj
Copy link
Collaborator

mkruselj commented Jan 19, 2021

It's not in our immediate plans, but it's not ruled out completely. But it won't happen this year I am pretty sure. Big plans for 1.9!

@mkruselj mkruselj added Feature Request New feature request MIDI MIDI support related labels Jan 19, 2021
@MrHammyMark
Copy link
Author

Cool dude - looking forward to seeing what you guys do for 1.9
Maybe an arp in 2.0? =D

Nice one!

@mkruselj
Copy link
Collaborator

@baconpaul famously says 2.0 will never happen. Something else will happen instead. 🙂

@MrHammyMark
Copy link
Author

@baconpaul famously says 2.0 will never happen. Something else will happen instead. 🙂

Surge Xtreme?

@mkruselj
Copy link
Collaborator

Close. 😀

@MrHammyMark
Copy link
Author

Such a tease haha

@mkruselj mkruselj added this to the After parameter list expansion milestone Feb 10, 2021
@mkruselj mkruselj added the Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts label Mar 4, 2021
@mkruselj mkruselj modified the milestones: After parameter list expansion, After Surge XT 1.0 Mar 4, 2021
@ghost
Copy link

ghost commented Apr 25, 2021

Perhaps if the step modulator could apply quantization (root note and scale locking) it would work well as a arp? and a great modulation source for other things as well. Actually if any lfo could apply quantization that would be a big addon.

@baconpaul
Copy link
Collaborator

It already does! Drag the step with ctrl or alt or shift and it quantizes to steps of 1/12

@mkruselj
Copy link
Collaborator

Arpeggiator is different from step seq because it reacts differently based on which notes you play in.

@baconpaul
Copy link
Collaborator

Yeah my only comment is: as a mod source you can already do note quantization with the step sequencer.

I am getting more into the idea of arp and chord memory overlays as midi transforms. But maybe that’s because i dont want to fight emoji rendering right now :)

@mkruselj
Copy link
Collaborator

mkruselj commented Apr 25, 2021

Let's not do the arp and chord memory as overlays. We should use the LFO area and down arrow methodology for that (arp will have its own step seq table to act as a modulator). Feels more consistent...

Which is why those two things are in After XT 1.0 milestone 🙂

@baconpaul
Copy link
Collaborator

And you even add an emoji to the reply. Cruel, man, just cruel.

@mkruselj
Copy link
Collaborator

Ahahaha xD

@ghost
Copy link

ghost commented Apr 25, 2021

Sorry I mean quantize to notes in a scale like C minor etc.

@baconpaul
Copy link
Collaborator

Yes so for modulation purposes you can do that with the step sequencer now. Set the modulation depth to 12, use ctrl when you drag, lay out c minor. Not an arpegiattor but harmonically accurate modulation with the step sequencer is entirely possible

@ghost
Copy link

ghost commented Apr 26, 2021

I think I will just use a third party sequencer for notes. I will use the alt shift method for quantizing other parameters though thanks for the tip

@baconpaul
Copy link
Collaborator

Yes surge is not a full blown sequencer. Have you checked out stochas though? https://stochas.org/

@remisharrock
Copy link

Yes surge is not a full blown sequencer. Have you checked out stochas though? https://stochas.org/

OMG that's the sequencer needed for surge ! So advanced ! Open source ! Probabilistic ! Wonderful :)

@Lo-lo78
Copy link

Lo-lo78 commented Aug 15, 2022

Hello,
I'm glad it was already requested!
I wanted to describe a bit what a good arpeggiator should be like.
It would be very nice if there was a global arpeggiator and also for single oscillator.
In this case, if there was an arpeggiator for a single oscillator, you could think of making a pad with two oscillators and a third one that does the arpeggiator.
There would be some very interesting patches.
Greetings!

@Lo-lo78
Copy link

Lo-lo78 commented Aug 15, 2022

Obviously, if there are three oscillators arpeggiating with the rate it could be a lot of fun.
Osc 1: rate 1.0
Osc 2: rate 2.0
Osc 3: rate 3.5
And go on like this!

@mkruselj
Copy link
Collaborator

mkruselj commented Aug 15, 2022

Arpeggiator would be a MIDI input processor, not a per oscillator thing. It would be a separate modulator, not a part of the LFO.

@Lo-lo78
Copy link

Lo-lo78 commented Aug 15, 2022

Could you think of doing it for scenes?
Scenes a with the arpeggiator and scenes b without the arpeggiator.

@Lo-lo78
Copy link

Lo-lo78 commented Aug 15, 2022

@mkruselj
I have an idea for the individual oscillators.
For the global one, midi is fine. For single oscillators one might think of using frequency.
Just like 8-bit computers did.
You know the Commodore 64?
The arpeggiators were made following the frequency of the oscillator. This could be very cool.
when the release starts, the arpeggiator continues fading. This would be top for Surge.

@mkruselj
Copy link
Collaborator

mkruselj commented Aug 15, 2022

Like all modulators, arpeggiator would indeed be per scene.

You can already do C64 like arps with the current Step Sequencer modulator from the LFO. Then use LFO EG to fade out the arp during release. This all is already possible.

@Lo-lo78
Copy link

Lo-lo78 commented Aug 15, 2022

@mkruselj
Yes, that's true but changing notes would be easier if they were included in the tracks envelopes
For instance:
switch between a major and a minor chord.
For the rest of the modulations it's not a problem.

@mkruselj
Copy link
Collaborator

mkruselj commented Aug 15, 2022

You can already do this by copying the LFO to another LFO, changing the notes that you want, then crossfade the LFO amplitudes with a macro?

What do you mean by "tracks envelopes"? The host automation in the DAW? No, we won't be blowing up the parameter count by exposing every step of every step sequencer in Surge to host. That would be insane.

@Lo-lo78
Copy link

Lo-lo78 commented Aug 15, 2022

Thank you! I'll try to be more careful with the manual.
😂

@mkruselj
Copy link
Collaborator

mkruselj commented Jul 6, 2023

A very good arpeggiator implementation can be found in certain Waldorf synths. Here's excerpt from Largo manual:

Arp Mode: Normal / One Shot / Hold

Clock: 1/64t…1280 bars
Sets the note value for the steps of the rhythm pattern.

Length: 1/64t…1024 bars / legato
Sets the length of the generated arpeggio notes. However, when Length is set to Legato, all arpeggio notes are played without pauses between each step and Arpeggiator Length therefore has no effect.

Sort Order: as played / reversed / Key Lo>Hi / Key Hi>Lo / Vel Lo>Hi / Vel Hi>Lo
Sets the order in which the note list is arranged. With this parameter, you can determine how the notes you originally play are split up for the arpeggio.

Vel Mode: Each Note / First Note / Last Note
Determines how velocity is interpreted in the arpeggio. Note that each arpeggio step might have an additional positive or negative offset set by the Arp Accent
parameter.
• If Each Note is selected, each note of the arpeggio is played back with the velocity that you originally played.
• If First Note is selected, the first note you played sets the velocity for all arpeggio steps.
• If Last Note is selected, the last note you played sets the velocity for all arpeggio steps.

Direction: Up / Down / Alt Up / Alt Down
Sets the direction that is used to play back the arpeggio.
• If Up is selected, the note list is played forward and the octaves are transposed upward. The arpeggio starts in the original octave and goes up to the highest octave. Then the arpeggio is repeated.
• If Down is selected, the note list is played backward and the octaves are transposed downward. The arpeggio starts in the highest octave and goes down to the original octave. Then the arpeggio is repeated.
• If Alt Up is selected, the note list is first played forward and the octaves are transposed upward. After reaching the last note of the note list in the
highest octave to play, the note list is played backward and the octaves are transposed downward down to the first note of the note list in the original octave. Then the arpeggio is repeated.
• If Alt Down is selected, the note list is first played backward and the octaves are transposed downward. The arpeggio starts in the highest octave. After reaching the first note of the note list in the original octave, the note list is played forward and the octaves are transposed upward up to the last note of the note list in the highest octave to play. Then the arpeggio is repeated.

Octave Range: 1...10
Determines the range of the single notes in octaves. When it is set to 1 Oct, the note list will be played back in the same octave as originally entered Greater values mean that the note list is repeated in higher or lower octaves. The octave in which the arpeggio starts is determined by the Direction parameter. If you play notes that span more than one octave, they are still kept in the note list and played back before the note list is transposed.

Max Notes: 1...16
Sets the maximum number of notes that are used for the note list. When you press more notes than set up here, the oldest notes are removed from the list. When you set it to 1 on a Bass sound, for example, the Arpeggiator only stores the last entered note and plays back sequentially. All other notes might still be used by other sounds, but the Bass sound plays back only this one particular note.

Pattern Reset: off / on
When all steps of an arpeggio pattern are played back, the pattern is repeated from the beginning so that the arpeggio is looped. With Pattern Reset, you can decide if the note list is also restarted from the beginning when the rhythm pattern is reset.

...and then there's the pattern editor, in which you can PER STEP adjust: velocity offset (accent), timing offset (groove), step duration, step direction, glide state

image

Step Direction modes:
• If Normal (•) is selected, the Arpeggiator plays the step unaltered. The note list is advanced beforehand, except when you press a new chord.
• If Pause (o) is selected, the Arpeggiator plays nothing at this step position. When Length is set to legato, the previous step that isn’t set to pause is still held to create the legato effect. The note list is not advanced
• If Previous (<) is selected, the Arpeggiator plays the same note as it had to play in the previous step that was set to Normal or Random. With this setting, you can repeat a particular note of the note list several times. The note list is not advanced.
• If First (v) is selected, the Arpeggiator plays the very first note of the note list. This might be interesting if you want to only play the "root note" of a chord in a bass sound. The note list is not advanced.
• If Last (^) is selected, the Arpeggiator plays the very last note of the note list. The note list is not advanced.
• If First+Last (v^) is selected, the Arpeggiator plays a chord with two notes, the first and the last one of the note list. This means that you have to play at least two notes to hear the effect. Otherwise, you would hear only one note anyway. The note list is not advanced.
• If Chord is selected, the Arpeggiator plays a chord with all notes from the note list. This means that you have to play at least two notes to hear the effect. The note list is not advanced.
• If Random (?) random is selected, the Arpeggiator plays a random note from the note list. This doesn’t mean that it creates a note randomly; instead it uses one note of the existing note list. The note list is not advanced.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature request MIDI MIDI support related Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts
Projects
None yet
Development

No branches or pull requests

5 participants