Your favourite synths (not iPad)?

I like the internal synth, but it lacks variety.

I tried using Pianoteq, but it’s basically just keyboards and I’ve had trouble figuring out how to make different tunings and bends work.

I tried Surge, but its handling of note off velocity annoys me.

I don’t own a tablet, nor do I own any iOS devices.

What’s your favourite synths for PC (preferably Linux, but I guess most Windows apps will run in wine) or Android that work best with striso?

1 Like

And all this time I ramble on about IOS, as if everybody had them. Sorry. Quite a stark contrast from the years (ago) I was a teacher and argued Apple was overpriced and driving “real” computers from the educational, artistic, creative and personal marketplaces.

I hope the second Striso expands your musical horizons, and can’t wait to hear more of the story.

1 Like

So, it happens that I’m actively working on improving the internal synth. What would you like to see in it?

-Frank

What I really like about the default synth is that it sounds like the attack depends on the note-on velocity, while the sustain volume is (I believe) controlled with the pressure. This already provides some variety and dynamics, but honestly I’m not satisfied.

Here’s what I thought I’d try to implement if I had the time:

  1. A nasal tone similar to erhu

I feel that striso’s expressivity is a good fit for controlling a nuanced, vocal tone like that of erhu, duduk or oboe.

  1. A more musical filter

There is a thing called overtone singing, where the singer uses the vocal tract to amplify certain overtones, resulting in essentially two melodies at once. I want to be able to play a drone, and just change the filter cutoff to play melody on top. Which is a great combo with the next point.

I think I managed to find a patch in Surge XT that allows me to do something like that, but I was not satisfied for some reason.

  1. A brassy tone

In kargyraa, Tuvan throat singing, the singer sings a low drone note with lots of harmonics, and then uses overtone singing to whistle a melody on top. I love this sound so much that I have two points about it :slight_smile:

I see lots of bass patches with rich overtones, so this tone should be very usable per se.

  1. The overdrive effect

This one is a bit tricky. The first caveat is that there should be almost no distortion when playing soft, and much more when playing loud. The second caveat is that the effect should be applied to all of the voices together, so that their overtones clash and result in beating.

The overdrive adds a lot to the dynamics, which I also love.

One particular sound I wanna make is the unison bend.

We have another combo–with the next point.

  1. A rhodes piano sound

I’ll just link a youtube video that demonstrates the sheer expressive range of the rhodes piano: https://www.youtube.com/watch?v=VmhgIVpxm_I

As far I understand, it’s one of the fairly easy sounds to implement, if the quantity of patches is any indication of that–but I can’t know for sure as I have almost no experience in audio programming.

  1. The variety

Instead of making separate patches, I want knobs that tune the attack and sustain tones, the filter and overdrive effects, so that other sounds in between the above can be achieved.

I really wouldn’t concentrate on replicating the tones exactly, but instead I’d focus on dynamics and achieving the particular sounds I mentioned above. Really, I can’t stress enough how important the dynamics are for striso–and for music.

I think these have the most character and can contribute the most to the perception of the striso as a distinct instrument–just like it was with the rhodes piano.


I’m really excited to try the synth you’re working on! Please post some details if you have the chance, I’m very curious of how do you approach the design and implementation.

I also feel honestly relieved I might not need to do this myself after all :smiley:

If your synth is open-source, I’d be delighted to read the code, and maybe even contribute–if you don’t mind and I have the time, of course.

2 Likes

It’s always nice to find someone else interested in the same problem. First, here’s my repo, with a second pair of eyes I’ll have to start thinking on branching instead of just living on main. Pull requests are welcome, but since I have my own vison, forks are also welcome. grin

That being said, I think we’re of like mind in the generalities. My first work was to spend time improving the envelope. After months of work I think I’ve finally got it to the point where it’s a matter of twiddling parameters. The envelope works similarly to how you surmised the original does, but I ignore the midi velocity value entirely. Instead what I have works (roughly) like this:

  1. Initial State is at 0 pressure (what the musician is doing) and 0 amplitude (the sound the instrument is making.
  2. Attack: The musician has increased the pressure to a nonzero value. The amplitude starts increasing to that value plus a fixed percentage over the pressure at a linear rate. This target will be based on the maximum pressure reached during attack, so should the musician very quickly press down, then back off, it will still be based on their highest pressure.
  3. Decay: When the attack value has been hit, decay will begin in the same way, now targeting the current pressure.
  4. Sustain: The amplitude will follow the pressure with a certain degree of delay (this allows for an actual ‘release’ value instead of just going to zero when pressure does).
  5. Release: If the pressure is ever at 0, then release will begin, descending to 0 at a fixed velocity.
  6. Quick Release: If, during release, the pressure goes above the amplitude then it will quickly drop to 0, and attack will begin again, allowing for more staccato play.

This basic pattern holds for all playing. The Y axis will vary the results as follows:

  • Centered: Play feels fairly similar to how it does with the current normal mode, with a little more attack and a little longer release, there is also just a bit of lag in response time during sustain.
  • Pushed Forward: Extremely tight play, there is no lag at any point.
  • Pulled Back (think as though you were ‘plucking’ the buttons): This is intended to be more like strumming. Attack is a little slower, and release is MUCH longer.

All of the above is based on constants that can be set in the code. I like where they are now, but I’m not convinced that they’re perfect, just good enough that I’m comfortable moving on to the instruments timbre.

So, that’s my 8 months of work to date. A lot of it was spent picking the right way to solve the problem and the right tooling, then getting good with Faust, and learning as much acoustics & psychoacoustics as I can… I’m still working on the last two parts.

The rough model I’ve had in my head for the target sound is a violin… mixed with a guitar… mixed with a Yaybahar. In the last case, I think I’m going for the same thing you are in your Bass notes.

While the specifics of our lines of thoughts/inspiration are some what different. I think the essence is the same. The Striso is a highly responsive instrument, we should use that responsiveness to create the maximum expressiveness imaginable.

To that end, here are a few of my own thoughts:

  • I agree, at lower frequencies we want to aim for having more complex overtones.
    • By corollary, higher frequencies should be more ‘pure’
  • Absolutely the kind of timbre we get should be influenced by how hard we press. In addition:
    • Because I have an amplitude that follows pressure, how far apart they are will effect timbre.
    • The current velocity of pressure will also have effect.
  • Obviously Y-Axis will already effect timbre because it will effect distance between pressure & amplitude, but it should also effect it on its own. I’m thinking more complex timbre the to less = forward to back. This will mean the ‘plucking’ will have a less complex sound and make it better for acting as accompaniment.

When I’m reasonably satisfied with the timbre. Then I want to start hitting the Striso.

I’ve already done proof of concept, it’s possible to use jerk(jerk is to acceleration as acceleration is to velocity), to detect if the Striso is being tapped. Tapping on one side will give one kind of drum sound, tapping on another will give another kind. It can detect how hard you’ve tapped, so that can effect amplitude. I think it’s rotation will even be able to give a hint on whether it was tapped close to the center or edge. But all I’ve done is proof of concept, so take a pinch of salt with the lot of it.

So, that’s where I am today. I’d love your feedback on the work so far. I’m open to tweaking the values on the ADSR and how strong the attack is.

-Frank

2 Likes

I like how your vision provides variety without going into universality, unlike what I imagined. I agree this may be an even better fit for the striso and its particular features. The plucking idea is especially cool!

I’m delighted to see the Quick Release feature as I definitely had run into situations where it would be very handy.

And I’ve also used the Y axis to tone down some of the melodic lines while accentuating the others.

So, we really do think alike, which is great to know!

Can’t wait to try your synth, hopefully next weekend I have the time–I will share my thoughts!

Re: tapping the board itself, I wonder if with jerk + pressure data you can make the distinction between pressing, plucking and hammering. 3 distinct articulations with potentially 3 distinct tones, not counting tapping the board itself without touching any buttons… I could definitely use that to create some vibes.

1 Like

As it happens, I was too excited with your project last night to just go to sleep, so I tried your synth instead.

I like the tone. I couldn’t create much distinct sounds, but I enjoyed the synth’s vibe. The plucking sound is a lot of fun, really does feel like pizzicato.

As you requested, here’s my feedback on the ADSR:

  1. I’ve found the attack too soft when playing with my default velocity. When playing faster passages, I felt the attack was lacking to the point where I couln’t distinguish the notes I was playing. It was also too soft for me when plucking. Not sure if it was an issue of volume or timing though.
  2. The default (Y0) release time was way too long for playing faster passages. I think that Y0 should be tighter in order to accomodate faster play. It’s much easier to adjust release time when playing slow instead.

There was also a weird lag with triggering all the notes except the first when playing faster passages, which kinda sounded like if I was swinging quintuplets. A bug maybe?

Overall, I’ve felt much less proficient than when playing the default synth, most likely due to the various forms of lag, which is really hard for me to pinpoint.

Given that you’re working in Faust, I expect there are no knobs on the striso itself that I could tune?

I really hope my feedback is helpful at all. I’ll be happy to test the next versions as well!

1 Like

Thanks for the quick reply. I’ll try to reply in kind.

First, I seem to have hijacked a thread, so I’d like to move this conversation over to here.

In response to your feedback.

Sadly, feeling like pizzicato misses the mark, but I agree. Right now the release is linear. I need to make it exponential. It’s high on my todo list.

Regarding your other experience with the ADSR, it’s a bit more tricky. Y0 is intentionally a bit laggy, if you want it to feel fast, then push a little and it will be significantly more responsive… but. I didn’t have any real extra attack. I’ve made a branch (fkberthold/sharperAttack) where I have more attack with higher Y values (and in general). A very slight pressure toward Y+ should be enough to both kill the high attack time and high release time. I’d be interested in your feedback.

The rational behind having Y0 be a little laggy is close to the feel of a real instrument, say a violin, which takes time for the instrument to energize. My intention is then to take advantage of the difference between pressure and amplitude (positive and negative) to have it influence the timbre.

In the general case I think I need to revise my approach to the attack. I think we can get the kind of effect you were talking about by using velocity to shape the attack. Experimenting with that is next on my TODO list. My current line of thought is to have the velocity straight control the attack. Another possibility is to make the velocity control the percentage of the pressure value that the attack goes to, but I think you end up with some weird results that way.

= Edit =

@wienski You’d asked me about being able to hook elements to a Striso knob. In principle all the information the faust program is getting is coming from the same C++ code, so I’d be very surprised if you couldn’t make specific knobs for changing, for example, the attack. But I haven’t done any deep looking into it yet.

I highly recommend Pigments. It’s not free, but you can design any synth sound you want and works great with MPE. I even had it set up to respond to the g-sensors for a while!

1 Like