Audioreactive particles with Chladni Cymatics in Touchdesigner

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2025

ความคิดเห็น • 116

  • @satyamjha_2
    @satyamjha_2 ปีที่แล้ว +12

    this was one of the best td tutorials i've watched. Please keep making more of these.

  • @cagdasyalman2443
    @cagdasyalman2443 ปีที่แล้ว +4

    I've been trying to solve Chladni Formula for the last 1 week. Your tutorial has been very useful for us. Thank you so much...

  • @hinduspl
    @hinduspl ปีที่แล้ว +3

    Thanks for those. I will play with those after the job. This is going to be great Sunday. All the best for you. Thanks for sharing ❤

  • @samuelslade
    @samuelslade 11 หลายเดือนก่อน

    Amazing work, im fairly new to Touchdeisgner, im really interested in audio visulas and exploring Cymatics within my Uni project. so this tutorial was perfect! thank you

  • @Nanotopia
    @Nanotopia ปีที่แล้ว

    Amazing! Something I have been looking for and the entire time I felt Mads Mikkelson was talking to me 🤩Definitely subscribing and becoming a Patreon supporter. 💥

  • @DanielSimon-em2pe
    @DanielSimon-em2pe ปีที่แล้ว +2

    This is perfect! Great explanation of the dissection of the formula. I'm only at 5 mins, but this chop part blew my mind, learned a lot. Thank you for this!

  • @platzzz
    @platzzz ปีที่แล้ว +1

    wow! so grateful you for the tutorial ;)

  • @edisonjuai
    @edisonjuai 2 หลายเดือนก่อน

    for the black out problem in 3:20 , type import random on the top of the script will solve.

  • @Plvvral
    @Plvvral 4 หลายเดือนก่อน +1

    thanks for all the amazing content you share! I'm really interested in GLSL and visual effects, especially particle systems. Could you possibly create a tutorial on how to make a GLSL particle system like the ones Alex Guevara does? I think a lot of us would really benefit from your detailed explanation. Thanks so much in advance!

    • @FactorySettings
      @FactorySettings  4 หลายเดือนก่อน

      Good to hear! I'll think about it, the chladni tutorial was a lot of work, and I expect that something like a 'basic glsl tutorial' would be even more work, so have to find the time for it first ;)

    • @Plvvral
      @Plvvral 4 หลายเดือนก่อน

      @@FactorySettings Thank you for considering it! I totally understand that creating a tutorial like this would be a lot of work, especially with the level of detail you put into your content. Whenever you find the time, I'd be thrilled to learn from your approach to GLSL. Your Chladni tutorial was amazing, so I'm sure anything you create will be well worth the wait. Thanks again for all your hard work!

  • @bananaliquorable
    @bananaliquorable ปีที่แล้ว +2

    I am absolutely in love that you made this. But what I can't figure out is how M N and L relate to the frequency that normally produces the Chlandi pattern.
    I found somewhere f ∼ (m + 2n)2
    then by defining n and f I could make a kind of relative progression.
    But it's not I don't think a nice cipy of the 'natural' chladni plate phenomenon in that way.
    If this makes sense! :)

  • @GowthamJayaram
    @GowthamJayaram 7 หลายเดือนก่อน

    Amazing, will give this a try. Thank you

  • @gregderivative2647
    @gregderivative2647 11 หลายเดือนก่อน

    so well explained - thanks!

  • @deathofgrungeboy
    @deathofgrungeboy ปีที่แล้ว +2

    Thank you so much!

  • @MansourAliz1
    @MansourAliz1 ปีที่แล้ว +1

    this tut is damn dope🔥. hell yeah am subscribing and sharing this video

  • @nilyu5740
    @nilyu5740 ปีที่แล้ว +1

    Thank you so much!! Great tutorial!!

  • @AliTanUcer
    @AliTanUcer ปีที่แล้ว +1

    Really great tutorial.. Since you dived in to GLSL, you could actually implement the formula in GLSL as well... Well, it is still good since it is teaching a lot of TD operators as well... Great work.

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      True, but like you mention, it shows how you can implement certain other nodes. GLSL is quite intermediate stuff, and this was oriented beginner friendly ;)

  • @JackJulian-t3o
    @JackJulian-t3o 9 หลายเดือนก่อน +2

    So cool!
    Any way to get the real frequency patterns, audio reactive? Say I play a A=432 sine wave, I get the corresponding pattern?
    I did see the audio reactive part included at the end of the video, though this only shows using audio to change numbers/parameters and not the actual frequency patterns?

    • @FactorySettings
      @FactorySettings  9 หลายเดือนก่อน +1

      In theory, but it depends a lot on the environment, shape, material. I don't think there is like 'one' shape for a particular frequency. The audioreactive part at the end just generates a random variable every 4 bars.

  • @unveil7762
    @unveil7762 ปีที่แล้ว +2

    Wowoooooo 🎉❤❤❤❤❤ Thanks.

  • @zakariasaih6501
    @zakariasaih6501 4 หลายเดือนก่อน

    Thank you for this wonderful tutorial
    I would love to get an idea of how do to think..
    Per example (i have to get rid of some particles in a certain location… ooh i need to use this operator…)
    I hope u understood what I mean by that 🙏🏻

    • @FactorySettings
      @FactorySettings  4 หลายเดือนก่อน +1

      You could composite a normal map on the current normal map with a 'high spot' at the position where you'd like the particles to be repelled

  • @anniehoffer5831
    @anniehoffer5831 2 หลายเดือนก่อน

    Hi! At 2:44 in the tutorial, instead of generating the pattern, I see horizontal lines in my project. Could you explain why this might be happening? Are there any specific settings for the Pattern or other operators that need to be adjusted to match the visual result in the video? I’d appreciate any help!

    • @FactorySettings
      @FactorySettings  2 หลายเดือนก่อน

      Check the patterns, you've probably missed a step with setting the length or the steps.

  • @cosmosunited
    @cosmosunited ปีที่แล้ว

    such an awesome tutorial! thank you!

  • @hydeman75
    @hydeman75 ปีที่แล้ว

    Perfect , Thanks !

  • @darajan6
    @darajan6 7 หลายเดือนก่อน

    Hi the simulation looks fantastic. I wonder if we could make the particles moving within a circular space rather than a square one. I tried to use the length() function in a conditional structure, but it seems not working.

  • @breppbrepp
    @breppbrepp 3 หลายเดือนก่อน

    Awesome tutorial! So good. Quick q, how can I change the amount of scale the 'l' parameter influences? I'd love for the effect to be more clear in my version so I'd like the scale of the beat be more visible

    • @FactorySettings
      @FactorySettings  3 หลายเดือนก่อน

      Hi, I believe I've mentioned something regarding a 'mathCHOP' to tone the effect down, by multiplying the value with a smaller number, just make that number bigger ;)

    • @breppbrepp
      @breppbrepp 3 หลายเดือนก่อน

      @@FactorySettings Thank you!

  • @Data_Core_
    @Data_Core_ 3 หลายเดือนก่อน

    super cool 😎

  • @meowza862
    @meowza862 ปีที่แล้ว +1

    thank you so much for this tutorial!!
    im wondering if you can help me with a few errors I keep coming across: in the chop execute and the glsl. It says that it does not accept apostrophe's for op 'constant' .

  • @michaelbart6152
    @michaelbart6152 3 หลายเดือนก่อน

    there is a way to know the Hz of generated pattern?
    i know that there is this formula:
    f_{n,m} = C \cdot \frac{1}{L^2} \cdot \sqrt{n^2 + m^2}
    but that result it's different from a img reference,
    thank you

  • @nikoosheybani8561
    @nikoosheybani8561 ปีที่แล้ว

    Thank you for this tutorial. I can't seem to get the chopexec1 to work (at 3:20). I copied the text exactly as is in the video but when I click play nothing happens, just a black square still!!! how should i fix it :(

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Hi! You really have to use your hawk eyes regarding coding, every indent, comma, enter, matters. So I have to see the code in order to help you out, could you email it?

    • @AbrahamAyala-iq5ze
      @AbrahamAyala-iq5ze 7 หลายเดือนก่อน

      you have to change Content Language to Python

  • @jibraanzobairi1990
    @jibraanzobairi1990 9 หลายเดือนก่อน +1

    thank you so much! is there any way to make the frame a circle or hexagon instead of a square?

    • @FactorySettings
      @FactorySettings  9 หลายเดือนก่อน

      Thank you! Yes, that would be a different formula, did you have a look at the website of paul bourke?

    • @jibraanzobairi1990
      @jibraanzobairi1990 9 หลายเดือนก่อน

      haven't had a look at his website. If there is another formula how do I translate it for touchdesigner? As it seems that the formula you put into touch designer is either adjusted or translated in some way
      @@FactorySettings

    • @jibraanzobairi1990
      @jibraanzobairi1990 9 หลายเดือนก่อน +1

      thank you in advance for any help you can provide

    • @TheJackJulian
      @TheJackJulian 8 หลายเดือนก่อน

      @@jibraanzobairi1990
      In the GLSLmulti node, which appears around 13:00, paste the following formula to create a circular boundary, and also put the Noise node Noise style to hermit:
      out vec4 fragColor;
      uniform float speed;
      void main()
      {
      vec4 position = texture(sTD2DInputs[0], vUV.st);
      vec4 initial = texture(sTD2DInputs[1], vUV.st);
      vec4 velocity = texture(sTD2DInputs[2], position.xy / 2 + .5);
      velocity = velocity * 2.0 - 1.0;
      vec2 deritative = vec2(dFdx(position.r), dFdy(position.y));
      velocity.st += deritative * 0.25;
      position += velocity * speed;
      // Check if the particle has moved outside the circular boundary
      float distanceSquared = dot(position.xy, position.xy);
      float boundaryRadiusSquared = 0.999 * 0.999; // Adjust this radius as needed
      if (distanceSquared > boundaryRadiusSquared) {
      position = initial;
      }
      fragColor = TDOutputSwizzle(position);
      }

  • @TinoCollias
    @TinoCollias ปีที่แล้ว +1

    Hi, been waiting for exactly this tutorial. I seem to struggle using the chopexec1 to give the new values (just does not update) and when i change the values manually the blue does not respond?
    Would love some help if possible, been i dream to display Cymatics through

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Hi, just sent me the .toe file, I'll have a quick look ;)

  • @Zouvi2001
    @Zouvi2001 ปีที่แล้ว

    Thank you for this tutorial. I can't seem to get the chopexec1 to work (at 3:20). I copied the text exactly as is in the video but when I click play nothing happens, just a black square still

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      When it comes to executing scripts, you really need to use you eagle eye, it comes very precise. You can send me the .toe file, I'll have a quick look!

    • @patriciaalfarocontreras3236
      @patriciaalfarocontreras3236 ปีที่แล้ว

      I have the same problem, how to solve it? :(

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      @@patriciaalfarocontreras3236 I have to see the code in order to see the issue. Can you paste a screenshot in an email?

    • @patriciaalfarocontreras3236
      @patriciaalfarocontreras3236 ปีที่แล้ว

      @@FactorySettings Finally, the code worked for me, but I'm experiencing that the geometries don't look as defined as in the video; strange patterns are being generated. To which email could I send you the .toe? Thank you.

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      @@patriciaalfarocontreras3236 There should be an address in the about section of this youtube channel.

  • @ahmedjamal2569
    @ahmedjamal2569 ปีที่แล้ว

    i cant do the math thing at min 1:37, when i write that ' (math.pi * op('null1')[0]) / op('null1')[2] ' it gives me error, please help

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      What does the info in the error say? Because if you'd follow along exactly, it should work.

    • @nestarose1332
      @nestarose1332 10 หลายเดือนก่อน

      i have the same error, it says "syntaxerror: unexpected eof while parsing"@@FactorySettings

    • @FactorySettings
      @FactorySettings  10 หลายเดือนก่อน +1

      @@nestarose1332probably just a typo, use your hawk eye to track the error, the tutorial is not wrong...

  • @artarkmotion
    @artarkmotion 10 หลายเดือนก่อน

    Hi, Thanks for the tutorial. I seem to be getting the same error with the code. Can you please paste it on the description so that we know where the issue is?

    • @FactorySettings
      @FactorySettings  10 หลายเดือนก่อน

      You'll do yourself a great favor in finding the error yourself. if you really get stuck you can always send it, I'll have a quick look... info@factorysettings.net

  • @ValidPlacebo
    @ValidPlacebo ปีที่แล้ว

    @3:16 chopexec1 gives me an error message saying num1 and num2 is not defined. I went back and rewatched the video and I didn't see anything that I missed.

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว +1

      Did you exactly replicate the script? Might be an indent missing, a comma, perhaps something in the 'return' of the function? Did you 'import random' on the top?

    • @ValidPlacebo
      @ValidPlacebo ปีที่แล้ว +1

      @@FactorySettings I was tired and forgot python is tab sensitive and I didn't realize there was a 2nd return below num1 and num2. That fixed it thanks!

  • @Anubiss3301
    @Anubiss3301 ปีที่แล้ว +1

    Great tutorial I'm having a lot of fun exploring!
    If I wanted to increase the dimensions of the output render what nodes/settings would I need to amend in order to reflect this?
    I've tried increasing the size up to 2000 but the patterns are a lot less defined (maybe due to not enough particles available to be distributed across the larger render?)
    Also, I'm finding that when the 'l' and 'm' parameters of constant1 are an equal value (eg. 1 and 1, 2 and 2, etc.) it creates a black image instead of a pattern, which slightly interferes with the visual flow of the particles (occasionally it results in the particles being unresponsive momentarily). Is there anything I could do to amend this? Possibly add something into the chopexec1 to exclude the possibility of these two parameters ever being an equal value..?

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว +1

      Thanks! How do you define 'dimensions'? There is geometry space and output resolution. I think you should be good to go with increasing the resolution at the renderTOP and the project COMP. The geometry space is still -1 to +1, so the amount of particles shouldn't have an effect. Does that make sense to you?

    • @Anubiss3301
      @Anubiss3301 ปีที่แล้ว

      @@FactorySettings ah yes thank you, after a little bit of experimenting I was able to find a good render setting, I think I'd overlooked checking the settings on a moviefileout node so it was momentarily rendering in a much lower quality but it's fixed.
      Are you able to advise on the issue with 'n' and 'm' parameters causing a blackout when matched (or closely matched) in value?
      Eventually I'd hope to explore the chopexec1 code and designate more specific values instead of using random.uniform, but for the purposes of learning and understanding is there any way to exclude the possibility of num1 and num2 having the same value at one time so I can avoid the possibility of a flat black pattern being generated..?
      I appreciate that's a bit of a complex question haha

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      @@Anubiss3301 That's just the equation, the more equal, the less pattern, you could make two functions with different ranges, like one between 0 and 4 and the other between 5 and 10, so they never get close. Lot's of different trick to do that. You could also trigger something when the values are a number 'x' in difference, like 'if' it does, add 1.0 to 'n', lots of options!

    • @Anubiss3301
      @Anubiss3301 ปีที่แล้ว +1

      @@FactorySettings thanks for the tips! I managed to find a good resolution for this issue after a bit of experimentation. It seems to be working as intended so I'll post the revised code here in case anyone else may need it:
      import random
      def onOffToOn(channel, sampleIndex, val, prev):
      def randomFloat():
      num1 = random.uniform(.1, 10)
      num2 = random.uniform(.1, 10)
      while abs(num1 - num2)

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      @@Anubiss3301 Yes, that's an option! Nice that you've find a solution that works for your patch! Great job!

  • @mysaucebucket
    @mysaucebucket ปีที่แล้ว +1

    Hello great tutorial, but I had a problem is that at the end my rendering seems soft and not very sensitive to the music which is however very energetic

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Thanks! Difficult to tell, is it looking ok in geometry view?

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      How are you analyzing your audio? Does the RMS power give you enough bandwidth? If not, add a mathCHOP begind the analyzeCHOP and multiply it with a number up until you notice a difference.

  • @showsnsdespa3
    @showsnsdespa3 12 วันที่ผ่านมา

    I go through the entire process, but it doesn't allow me to visualize the particles like in the video. It still looks like there are fewer particles... Is there any way to fix it?

    • @FactorySettings
      @FactorySettings  12 วันที่ผ่านมา

      Difficult to say, I get a lot of questions about 'not getting similar results', and up until now it has always been something the user has missed. I know the tutorial has a high pace, but I encourage you to go through it again step by step.

  • @luzid.vision
    @luzid.vision ปีที่แล้ว +2

    Can't believe I just found this.

  • @nestarose1332
    @nestarose1332 10 หลายเดือนก่อน

    tysm for this tutorial! it helped a lot❤. Im just left with one question, there is a pulsation of the particles every second or so, even when there is no audio input, is there a way to get rid of this ? ty

    • @FactorySettings
      @FactorySettings  10 หลายเดือนก่อน +1

      You're welcome! Depends on how you've set up the pulsation? You mean that the shapes changes?

    • @nestarose1332
      @nestarose1332 10 หลายเดือนก่อน

      yeah even when i, for example play a single 90hz tone, the shape changes every now and then@@FactorySettings

    • @FactorySettings
      @FactorySettings  10 หลายเดือนก่อน

      @@nestarose1332it really depends on what treshold your using, what does it do after the RMS?

    • @nestarose1332
      @nestarose1332 10 หลายเดือนก่อน

      oh i found it left some dumb toggle on... ty for helping tho ;)
      @@FactorySettings

  • @nataliastojkova6374
    @nataliastojkova6374 ปีที่แล้ว

    I've learned so much! Amazing tutorial!
    Just a quick question: How can I change point weight (or colour)? For some reason my particles are dark grey and I can barely see any movement.

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Great to hear! What kind of material have you used for the particles?

    • @nataliastojkova6374
      @nataliastojkova6374 ปีที่แล้ว

      @@FactorySettings I guess that is the problem; I am not sure where to change the particle parameters. I followed your tutorial step by step, but somehow I cannot change Points weight in "ADD SOP". I am quite new to TD so maybe I am just missing something basic (?)

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      @@nataliastojkova6374 If you're using a pointspriteMAT for your material of your geometry, there you can change colors and point scale for instance. You can't change that in the addSop, that's just for generating points.

  • @bludisinocent
    @bludisinocent ปีที่แล้ว

    For some reason when i do the procedure in the chop execute it gives me a error "module 'random' has no attribute 'Float'" and i write everything as you told, can you help me ?

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      I get this question a lot, and every time it is not exactly copied from the tutorial. Coding is very precise when it comes to indents, enters, commas, etc. If you miss one, the code won't work. I encourage you to go through it with your hawk eye again. Eventually you could email me a screenshot and I'll pick the error out there for you.

  • @josephlihou
    @josephlihou ปีที่แล้ว

    multiplying function1 and function2 gives me horizontal lines only? , and the Math3 CHOP chan1 looks to be a simple Sin wave, despite being set to multiply and the functions set to Cosine, any idea why this is happening?

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Difficult to tell, if you follow it step by step you should get the exact same result as in the turorial. I encourage you to start over, otherwise you could send me the file, I'll have a quick look

    • @sofiaboccadoro4601
      @sofiaboccadoro4601 ปีที่แล้ว

      How did you solve this? I am having the same problem :(

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Check the patternCHOPS, the issue was there. Make sure you've copied the exact steps from the tutorial.@@sofiaboccadoro4601

    • @sofiaboccadoro4601
      @sofiaboccadoro4601 ปีที่แล้ว

      Thanks for replying and for such and awesome tutorial! I am stuck on the CHOPExecute since my mac is not letting me edit the text, any advice? I am going to try it later on a pc @@FactorySettings

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Thank you! That would be weird, why wouldn't mac let you edit the text, have you pressed the small '+' sign in the bottom right corner of the operator, it then should open it and you can enter inside the text. There is no need for opening an external editor. You can edit the text right inside TD.@@sofiaboccadoro4601

  • @luciablondi8074
    @luciablondi8074 ปีที่แล้ว

    I cannot open the text editor in chop execute. Is this maybe not available for the free version?

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว

      Should be, have you pressed the little '+' sign in the lower right corner of the chopExecuteDat? It then opens and you should be able to edit the text.

  • @matonya02
    @matonya02 11 หลายเดือนก่อน

    Is there a way you can share it so I can play with my own sounds?

    • @FactorySettings
      @FactorySettings  11 หลายเดือนก่อน

      I'm sharing the steps how you can build it on your own. You'll gain knowledge of Touchdesigner and a bit of coding. If that's not enough, you could consider becoming a patreon where you can download the patch and loads of other stuff.

    • @matonya02
      @matonya02 11 หลายเดือนก่อน

      @@FactorySettings Thank you for your response. I followed your tutorial but the pattern doesn't respond to the audio, and I was wondering if you could tell me where to look for errors. Would really appreciate your help, as I am doing this for my uni project. I also joined you on patreon and tried to run your patch but my sound doesn't change the pattern..

    • @FactorySettings
      @FactorySettings  11 หลายเดือนก่อน

      @@matonya02 Hi! I've replied to you via Patreon.

  • @romanduelin
    @romanduelin ปีที่แล้ว +1

    I'm getting an error on my Math TOPS "Error: (parameter: multiply)
    Has this happened to anyone else?

    • @FactorySettings
      @FactorySettings  ปีที่แล้ว +2

      Hi, I can't recall using a MathTOP during the tutorial, you mean mathCHOP by coincidence?

    • @Le_Kokelet
      @Le_Kokelet ปีที่แล้ว +2

      I have the same error

    • @francescomarchi2549
      @francescomarchi2549 ปีที่แล้ว

      Same here

  • @阮彬蔚
    @阮彬蔚 10 หลายเดือนก่อน

    the code is wrong in 3:13 ???

    • @FactorySettings
      @FactorySettings  10 หลายเดือนก่อน

      No, it isn't, I get this question a lot. It's always something like a missed indent or a forgotten quotation mark. The thing with code is that it's never wrong, the writer is. That might sound harsh but I encourage you to just go through your code one character at the time.

    • @阮彬蔚
      @阮彬蔚 10 หลายเดือนก่อน

      I'm sure it is exactly right, I have sent my code to my friend to check, there could be no wrong. I think it might be version problem. @@FactorySettings

    • @阮彬蔚
      @阮彬蔚 10 หลายเดือนก่อน

      GPT helped me. It changed the code
      import random
      def onOffToOn(channel, sampleIndex, val, prev):
      num1, num2 = random.uniform(.1, 10), random.uniform(.1, 10)
      op('constant1').par.value0 = num1
      op('constant1').par.value1 = num2
      return
      then it is right
      @@FactorySettings

    • @FactorySettings
      @FactorySettings  10 หลายเดือนก่อน +1

      @@阮彬蔚you can send met the .toe file, I'll have a look

    • @阮彬蔚
      @阮彬蔚 10 หลายเดือนก่อน

      GPT helped me, it changed the code.
      import random
      def onOffToOn(channel, sampleIndex, val, prev):
      num1, num2 = random.uniform(.1, 10), random.uniform(.1, 10)
      op('constant1').par.value0 = num1
      op('constant1').par.value1 = num2
      return
      then the error fixed. my version is 2021.
      @@FactorySettings

  • @Will-nz1qo
    @Will-nz1qo 7 หลายเดือนก่อน

    my "function" react in a different way and cause malfunction (f*ck!) - thank you for tutorial

    • @FactorySettings
      @FactorySettings  7 หลายเดือนก่อน

      What malfunction exactly? Doesn't run?