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

Set DirtFreqScale default factor to 1 #280

Merged
merged 1 commit into from
Oct 15, 2023

Conversation

wimmers
Copy link
Contributor

@wimmers wimmers commented Dec 1, 2022

It seems that all applications of DirtFreqScale in library/default-synths-extra.scd are without effect: the parameter speedFreq is not passed, and it's default value is 0, effectively deactivating frequency scaling.

As DirtFreqScale is used nowhere else, I propose to change the default value of speedFreq to 1.

Per #247, this should recover the old behavior of accelerate, fixing #254.

It seems that all applications of `DirtFreqScale` in `library/default-synths-extra.scd` are without effect:
the parameter `speedFreq` is not passed, and it's default value is 0, effectively deactivating frequency scaling.

As `DirtFreqScale` is used nowhere else, I propose to change the default value of `speedFreq` to 1.

Per musikinformatik#247, this should recover the old behavior of `accelerate`, fixing musikinformatik#254.
@telephon
Copy link
Contributor

telephon commented Dec 2, 2022

I had expected that one would want to switch it on selectively, by writing something like:

d1 $ note "c" # s "superchip" # accelerate "-1" # speedFreq 1`

or by setting a default value:

~dirt.set(\speedFreq, 1)

but I see the point that when you write accelerate, you imply it is on.

@wimmers
Copy link
Contributor Author

wimmers commented Dec 5, 2022

Thank you, I understand that intuition.
That means it could also be viewed as a documentation problem on the Tidal side.

On the other hand, there may still be quite some users that see this paramter in someone else's code, and when they just want to start playing with it, they will be confused by this behavior if they don't check the docs first.
So maybe it would be more beginner-friendly this way?

@telephon
Copy link
Contributor

telephon commented Dec 5, 2022

Makes sense. Thinking about it, what I am worried about a little bit is that changing this will change many people's music: whoever has used accelerate together with synths (perhaps mixing samples and synths) may be surprised by it.

@cleary
Copy link

cleary commented Sep 4, 2023

Just following up on this (it's been a while) -

Makes sense. Thinking about it, what I am worried about a little bit is that changing this will change many people's music: whoever has used accelerate together with synths (perhaps mixing samples and synths) may be surprised by it.

Personal perspective, I've used accelerate extensively with synths myself, and am currently unable to use my old patterns because accelerate isn't working at all ... which surprised me too :(
I think having accelerate do something is more important than the consideration of people who are relying on a glitch essentially, ie for it to do nothing (even though it's defined, and listed as an effect in all the Tidal documentation)

@telephon
Copy link
Contributor

telephon commented Sep 5, 2023

Could you paste a few examples with a comment how they should work? I need to understand better what the idea was, and you are the best person to know! Thanks ...

@cleary
Copy link

cleary commented Sep 5, 2023

@telephon
Here's an example using supergong:
Line 207 from this New Moon set in Aug 2020:

let melody = note (scale "ionian" "[< 1 0>  <8 7>] <[ ~ 2 3 4] [~ 2 1 -1]> < ~ -2 ~ 0 > ~") |+ note "<0!4 5!4>"
in
d1 $ almostNever (# accelerate 2) 
  $ jux (off 0.25 (# gain 0.3)) $ almostNever (jux (# squiz (sine + 1 ))) 
  $ stut 4 0.5 0.2 $ slow 4 $ melody 
  # sound "supergong" 
  # sustain 2 # octave 6 # gain 1.1

Here's the video from the marathon, at the time that this line is used - you can hear the higher pitched gong notes sliding (accelerating) up occasionally:
https://youtu.be/_tgKw2WdJTo?si=jgY6LWBB3xLcLK10&t=840

The current state of SuperDirt is that accelerate is completely ineffective (but it's listed everywhere in the synth documentation) - this implies to me it's a regression and a bug

@telephon
Copy link
Contributor

Thank you – a nice example to listen to!

Now I am checking the behaviour in a few lines.


{ DirtFreqScale.kr(speed: 1, accelerate:  1, sustain:  0.1, speedFreq: 0).poll; 0 }.play; // -> 1
{ DirtFreqScale.kr(speed: 1, accelerate:  1, sustain:  0.1, speedFreq: 1).poll; 0 }.play; // -> 2

So there is something wrong with the original implementation which your changed default doesn't fix: all synths would start out an octave higher when you use accelerate.

I've moved this for discussion: https://club.tidalcycles.org/t/accelerate-for-synths/4889

@telephon telephon merged commit c7f3299 into musikinformatik:develop Oct 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants