Author Topic: Some new hacks  (Read 10834 times)

Toltekradiation

  • Sr. Member
  • ****
  • Posts: 271
    • View Profile
Some new hacks
« on: May 07, 2020, 11:08:19 PM »
hello,
here is a firmware with two new things :

1. modulators envelopes are now loopable
with a small trick : set release to level 1 and duration to zero, the env will loop A,D,S part of the envelope.
you can emulate a delay fx with this trick ;)

2. start point of the two seq is now usable as destination in the matrix (sq1S and sq2S)
a useful use of this :
set a seq tempo to zero and use a linear note scaling as modulation source of the start point, the seq is now 16 keyboard segment !
i use this to make drum kits..

please find the attached firmware and and drumkit patch example.
cheers !
« Last Edit: May 11, 2020, 11:21:48 AM by Toltekradiation »

Toltekradiation

  • Sr. Member
  • ****
  • Posts: 271
    • View Profile
Re: Some new hacks
« Reply #1 on: May 08, 2020, 05:01:22 PM »
files replaced in first post (sorry, bug fix :P)

matrix12x

  • Team Member
  • ***
  • Posts: 200
    • View Profile
Re: Some new hacks
« Reply #2 on: May 09, 2020, 07:55:32 PM »
Great job again.

I just uploaded it to my PreenFM2 and I really enjoyed the looping ADS. I found it works almost like another LFO.


Which version is this built on?

Toltekradiation

  • Sr. Member
  • ****
  • Posts: 271
    • View Profile
Re: Some new hacks
« Reply #3 on: May 09, 2020, 08:20:33 PM »
Great job again.
thanks ! glad you like it :D
the ADS looping can even go in audio range !
i have not yet explored all the possibilities of this, but it can go really weird ::)

it is built on the official version (2.11o) + all subsequent modifications i made (some filters rework, poly glide, ...).
« Last Edit: May 09, 2020, 10:06:39 PM by Toltekradiation »

matrix12x

  • Team Member
  • ***
  • Posts: 200
    • View Profile
Re: Some new hacks
« Reply #4 on: May 10, 2020, 03:02:56 AM »
I got some very throaty "vocal" sounds using A and D both set super short. It sounds awesome!!

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: Some new hacks
« Reply #5 on: May 10, 2020, 10:20:38 PM »
Nice to see you continue finding things to improve :)
I haven't tried it yet.

I don't understand FreeEnv2 already has Loop.
So you're talking about FreeEnv1 ?

Speaking of delay : here is a good stereo Delay emulation i found.
It works well with long release note to fade out the delay.
Matrix :
MTX1 : Seq1 / 1.0 / Gate
MTX2 : Lfo1 / 1.0 / Pan*
Modulation :
Lfo1 : Tria / 1.0 / 0.0 / 1.0
Seq1 : 60 / 0.8 / _F_F_F_F _F_F_F_F

« Last Edit: May 10, 2020, 10:22:12 PM by Xavier »

Toltekradiation

  • Sr. Member
  • ****
  • Posts: 271
    • View Profile
Re: Some new hacks
« Reply #6 on: May 11, 2020, 11:43:02 AM »
thanks for your delay recipe ! simple and efficient ;)
the envelope i'm talking about is the operators envelope (only when these are modulators).
When used for a delay emulation, the good thing is that each note has its delay line, echoes overlap according to what you play : it sound closer to a real delay fx.

i added an example patch in first post.

martindunne

  • Team Member
  • ***
  • Posts: 118
    • View Profile
Re: Some new hacks
« Reply #7 on: May 12, 2020, 02:15:59 PM »
the delay sounds awsome. not sure i understand new things number 2. does it play a sequence of drums or just very short envelopes. thanks

Toltekradiation

  • Sr. Member
  • ****
  • Posts: 271
    • View Profile
Re: Some new hacks
« Reply #8 on: May 12, 2020, 09:18:13 PM »
hello @martindunne,
the sequence start thing allow you to use sequencer 1&2 as list of values (if you set its bpm to zero to make it more convenient), you can scan it from whatever source you like.
that's the main use of this for me, but one can imagine some other uses..
So, if you use keyboard as matrix source, you can get sequencer values by segment of keyboard :
for example, with a linear keyboard source, keys 0 to 8 (c-0 to g-0) would get value from step 1,
keys 9 to 16 (g#-0 to e-1) would get value from step 2, and so on...

these example patch show you how to use this : have a different sound by groups of 8 keys ( = 128 midi notes / 16 steps).
you can use this to make drum kits or any varying sound across the keyboard range.

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: Some new hacks
« Reply #9 on: May 21, 2020, 10:20:40 AM »
Toltekradiation,

I'm going to work a little on a 2.12 firmware because i have a nice feature that's quick to implement in mind.

Could you sumarize what your firmware has and 2.11 does not have ? to see if i need to include things from yours.
. starting point of step step in modulation matrix
. Fixed/improved filters ?
. Envelope loop ?
Anything else ?

Pointers to your git commit would help.

Thanks  :)

« Last Edit: May 21, 2020, 10:44:18 AM by Xavier »

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: Some new hacks
« Reply #10 on: May 21, 2020, 10:53:34 AM »
Just saw you updated your git README  :)

I think the following would be great in the official firmware:
. Glide enhancement: can polyphonic glide work without the matrix ? I still have to look at your change and try it.
. Envelope loop of modulator operators (that's a really good idea)
. Matrix destination : sq1S, sq2S
. Filter improvement if any

I think the rest (matrix source and other destination) could remain in your firmware for user who wants more experimental stuff.

(That's a detail and i should have done that earlier but i added you in the credits)
« Last Edit: May 21, 2020, 11:01:52 AM by Xavier »

Toltekradiation

  • Sr. Member
  • ****
  • Posts: 271
    • View Profile
Re: Some new hacks
« Reply #11 on: May 21, 2020, 01:28:03 PM »
hello Xavier,

thanks for including some of those experiments !

Glide enhancement :
yes it can work without the matrix destinations, no problem.
That part was rather difficult to get it right, so i made many commit, not always useful, a real mess  ::)..
i think it may be easier for you to compare the code of the poly_glide branch in the git repo : https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide

here is the useful part for that compare :
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-7f2a092c16d9ab622d97afe017b38f8d
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-4ae98bc1ddd5d4d1ae607c4233a91c4e
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-bdae5acaedebc202d4c97571262ff02f
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-c36a9bfd3d7069018e9d7b6d25b4ac2a
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-e619eae6c2e4a1e46bfaa390d6a3c2c1 ( Timbre::preenNoteOn and Timbre::preenNoteOff )
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-20a635e886b1cae7d49946fbf475b0c7
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-b7a6576387d40ded7ccd8c8c7068dbd2
https://github.com/Ixox/preenfm2/compare/master...pvig:poly_glide#diff-8e15a1aecc932efdb4f35098de376256

Envelope loop commit :
https://github.com/pvig/preenfm2/commit/1a7f8c6f2edaed21382d1c998e755ec54dda73d6
https://github.com/pvig/preenfm2/commit/0021fca4ae5baab9607cd666702fb55c80909a60

Starting point of step seq :
https://github.com/pvig/preenfm2/commit/94a2787037655ae9cbc8c41ddf2db738d8da739c
https://github.com/pvig/preenfm2/commit/ddcbe595696c7969c74fc0dc22a1b2ccb2ad964d
https://github.com/pvig/preenfm2/commit/967b781427e8992cff226630a8316a47983c12c7
https://github.com/pvig/preenfm2/commit/8dc6845122dcd3961cc9d5bdbc740469d5420a47

Filters rework :
https://github.com/pvig/preenfm2/commit/2a9cbf7d15708c3df6f3e6471b281dba3aedc5ee
https://github.com/pvig/preenfm2/commit/facfddb7d5c8718a20be94ac28cab9f3ae0181e1
https://github.com/pvig/preenfm2/commit/aaca4c813e5250c83b4c1809204c051135225284
https://github.com/pvig/preenfm2/commit/71c361f8f4adecc20411809583b4b2c059309b5a
https://github.com/pvig/preenfm2/commit/d35b72b50359c898aa734ff3212a949cc1cccca7
https://github.com/pvig/preenfm2/commit/9b18a9533ed3b2698a48c616d3186f2782047dca
https://github.com/pvig/preenfm2/commit/c8c7a1e4e9a75ea53dc03bc4ad2941b2812f7b4c

i'm afraid it's also a lot of messy commits  :-X, you would have better copying the code from https://github.com/pvig/preenfm2/blob/env-loop/src/synth/Timbre.cpp

modified parts :
FILTER_ORYX3 updated
FILTER_XOR  has become FILTER_ROT
FILTER_TEXTURE1 updated
FILTER_TEXTURE2 updated
FILTER_LPXOR updated
FILTER_LPXOR2 updated

i hope i did not forget something, it's quite a lot of code to check :P

about matrix sources, i would add the rndK source, as it avoid using a lfo for that (and maybe velD, for the fun factor ;) ). it's as you wish.

and thanks for the add in the credits !

cheers !
Patrice

the_duckchild

  • Team member
  • *
  • Posts: 26
    • View Profile
Re: Some new hacks
« Reply #12 on: May 21, 2020, 04:55:51 PM »
great work both of you!

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: Some new hacks
« Reply #13 on: May 21, 2020, 07:34:06 PM »

I'm currently comparing/and merging folders with meld.
It's easier than going through all the commits  ;)

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: Some new hacks
« Reply #14 on: May 21, 2020, 10:48:42 PM »
Hey Patrice, I have a few questions on your changes :

Why did you substract .5 here ?
https://github.com/pvig/preenfm2/blob/env-loop/src/synth/Timbre.cpp#L760
noise[] values should be already between -1.0 and 1.0.

<EDIT>I have the answer about this one</EDIT>
Why did you need matrix setDestination here ?
https://github.com/pvig/preenfm2/blob/env-loop/src/synth/Timbre.cpp#L821
Wasn't the regular matrix calculation working correctly for sq1S and sq2S ?



The glide enhancement is nice but it really modifies the way voices are allocated even for glide = 0. I cannot include it in the firmware.
I'll take the 2 longer glides though ;)

Envelope loop is nice :)
And the Osc.cpp fix (that you already mentionned me) is a nice catch.

« Last Edit: May 22, 2020, 09:11:21 AM by Xavier »