# Based on what I want to do - should I learn Processing or P5.js?

**URL:** https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425
**Category:** Beginners
**Created:** [July 2, 2018, 1:58am UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425 "2018-07-02T01:58:16Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![MrsGolfShorts](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@MrsGolfShorts](https://discourse.processing.org/u/MrsGolfShorts)
#### Post date: [July 2, 2018, 1:58am UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/1 "2018-07-02T01:58:16Z")

</div>

I have a month off to dive full time into learning a visual framework and am unsure which direction to dedicate my time to.

I am a musician and build generative and sonification systems. I have never touched any visual frameworks but want to start using something along with my sound work. My goal is simple - I want to generate abstract, evolving art that is in responsive to the audio input. I might also want to put the program on a pi with a small lcd.

I am comfortable with JavaScript, C, Obj C, Csound, Max/MSP, Smalltalk.

Given my goals, is there a benefit to learning Processing over P5.js? Or should I just go with the latter?

Thanks in advance.

---

<div class="post-metadata">

### Author: ![josephh](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/josephh/32/210_2.png) [@josephh](https://discourse.processing.org/u/josephh)
#### Post date: [July 2, 2018, 7:55am UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/2 "2018-07-02T07:55:16Z")

</div>

Look at :

- [Best way to run processing sketch in webpage - #7 by Birb](https://discourse.processing.org/t/best-way-to-run-processing-sketch-in-webpage/537/7)

Then if you are confortable with JavaScript, go for p5.

> [@MrsGolfShorts](#):
>
> I am a musician and build generative and sonification systems. I have never touched any visual frameworks but want to start using something along with my sound work. My goal is simple - I want to generate abstract, evolving art that is in responsive to the audio input. I might also want to put the program on a pi with a small lcd.

But I think that Processing is more appropriate to use sound libraries like Minim and interacting with Pi.

---

<div class="post-metadata">

### Author: ![MrsGolfShorts](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@MrsGolfShorts](https://discourse.processing.org/u/MrsGolfShorts)
#### Post date: [July 2, 2018, 1:32pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/3 "2018-07-02T13:32:47Z")

</div>

Hmmm. Now I’m more unsure which direction to focus on…

---

<div class="post-metadata">

### Author: ![codingking03](https://avatars.discourse-cdn.com/v4/letter/c/3ec8ea/32.png) [@codingking03](https://discourse.processing.org/u/codingking03)
#### Post date: [July 2, 2018, 1:46pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/4 "2018-07-02T13:46:36Z")

</div>

p5.js is easier to learn and more adaptable, processing is java so its waay faster and can be exported to an EXE (but not really a secure one you need external sources for that) . There are ways to make a JavaScript exe using [https://electronjs.org/](https://electronjs.org/) and such but Its truly meant for web development and p5.ja just makes the visual waay easier, allowing you to do things without really having to edit css or html (but it is good to know how to) or any stuff like that. p5.js and processing have in-depth tutorials by Daniel Shiffman [https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1\_aw](https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw)

---

<div class="post-metadata">

### Author: ![WakeMeAtThree](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/wakemeatthree/32/38_2.png) [@WakeMeAtThree](https://discourse.processing.org/u/WakeMeAtThree)
#### Post date: [July 2, 2018, 1:51pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/5 "2018-07-02T13:51:17Z")

</div>

> [@MrsGolfShorts](#):
>
> Thanks in advance.

I agree with @josephh that it sounds like you would benefit more from using/learning Processing instead, because I feel you’re leaning more on the live performance side of things, and processing.java would be more appropriate for that.

---

<div class="post-metadata">

### Author: ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)
#### Post date: [July 2, 2018, 2:09pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/6 "2018-07-02T14:09:09Z")

</div>

If you pick Processing, prob. you’re gonna use Minim:  
[http://Code.Compartmental.net/minim/](http://Code.Compartmental.net/minim/)

If you pick p5js, prob. you’re gonna use p5.Sound:  
[https://p5js.org/reference/#/libraries/p5.sound](https://p5js.org/reference/#/libraries/p5.sound)

---

<div class="post-metadata">

### Author: ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)
#### Post date: [July 2, 2018, 4:48pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/7 "2018-07-02T16:48:15Z")

</div>

The sound examples are simple.

You can run from both languages and make a comparison yourself.

For online distribution p5.js is your best bet

---

<div class="post-metadata">

### Author: ![MrsGolfShorts](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@MrsGolfShorts](https://discourse.processing.org/u/MrsGolfShorts)
#### Post date: [July 2, 2018, 11:01pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/8 "2018-07-02T23:01:33Z")

</div>

Thanks for the replies. I spent the day with p5.js and had a blast creating a sketch with fft and greyscale lines 😉 It’s been super easy for me to learn so far.

So based on what you have said, it seems like Processing might be more robust for my needs? It also looks like minim is has more capabilities than sound.js?

---

<div class="post-metadata">

### Author: ![codingking03](https://avatars.discourse-cdn.com/v4/letter/c/3ec8ea/32.png) [@codingking03](https://discourse.processing.org/u/codingking03)
#### Post date: [July 2, 2018, 11:54pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/9 "2018-07-02T23:54:12Z")

</div>

It depends what you are using the music for. If it is going onto the web, then it would be useful to know p5.js but honestly in the long term I recommend learning both.

---

<div class="post-metadata">

### Author: ![MrsGolfShorts](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@MrsGolfShorts](https://discourse.processing.org/u/MrsGolfShorts)
#### Post date: [July 3, 2018, 12:11am UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/10 "2018-07-03T00:11:12Z")

</div>

Actually, most of the music would be created externally, with synthesizers and other music specific software I use. I am not getting into Processing for sound synthesis but only for visuals. So I would most likely want to feed the fft analysis audio and have it generate visuals based on the input.

---

<div class="post-metadata">

### Author: ![codingking03](https://avatars.discourse-cdn.com/v4/letter/c/3ec8ea/32.png) [@codingking03](https://discourse.processing.org/u/codingking03)
#### Post date: [July 3, 2018, 2:40am UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/11 "2018-07-03T02:40:57Z")

</div>

That sounds cool and again it really matters WHERE you want to put those awesome visuals. If you are going to do it on a website it needs to be in p5.js. for an app/exe then you should use processing

---

<div class="post-metadata">

### Author: ![MrsGolfShorts](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@MrsGolfShorts](https://discourse.processing.org/u/MrsGolfShorts)
#### Post date: [July 3, 2018, 1:29pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/12 "2018-07-03T13:29:00Z")

</div>

Maybe it would make sense to just always run my apps in a browser? So even if I have an installation or performance, the visual would be loaded on a full screen browser. That way I can focus only on p5.js and have something I can use for performance or web. Does that sound like it has any drawbacks?

---

<div class="post-metadata">

### Author: ![codingking03](https://avatars.discourse-cdn.com/v4/letter/c/3ec8ea/32.png) [@codingking03](https://discourse.processing.org/u/codingking03)
#### Post date: [July 3, 2018, 2:38pm UTC](https://discourse.processing.org/t/based-on-what-i-want-to-do-should-i-learn-processing-or-p5-js/1425/13 "2018-07-03T14:38:27Z")

</div>

The only drawback there I see is that you would not be able to make an application, it would be on the web and run a bit slower, but probably not slow enough to matter It is easier to do what you want to do on p5.js also, and if you ever want some help just ask 🙂
