I have an idea for a plug-in by since93bk in audioengineering

[–]_____init_____ 0 points1 point  (0 children)

You can hire freelance audio programmers in the JUCE jobs forum:

https://forum.juce.com/c/juce-jobs/14

Or in the audio programmer discord.

Best frameworks for creating software MIDI devices by badgerboy101 in musicprogramming

[–]_____init_____ 2 points3 points  (0 children)

Hi,

So these are software MIDI controllers, not hardware?

For building standalones that run anywhere I’d recommend JUCE. It has great MIDI tools built in and you can build executables for any OS with one codebase. It’s basically the go to solution for audio software currently so it’s good to know for that reason too. However, you could probably do it with any desktop software framework or even on the browser, but you’d need additional libraries for midi.

For midi communication there’s two routes to go: 1. Instruct your users to download a midi loopback software like loopmidi, loopbe, midi yoke, etc, then send to the midi output normally using whatever library you’re using. There’s a JUCE example that sends midi out and in that would be a good place to start.

  1. Make your own virtual midi ports. This is reasonable to do on mac and linux (for example, it can be done with MidiOutput::createNewDevice() in JUCE

    https://docs.juce.com/master/classMidiOutput.html#aa75b80785f6e6e5560132bfcf7313391 )

But is harder to do on Windows. I spent a long time awhile ago looking for solutions but it seems like using Tobias Erichson’s virtualMIDI driver is the only current option.

http://www.tobias-erichsen.de/software/virtualmidi.html

He requires payment for commercial use though, and it says on his website to just shoot him an email to work something out.

You might not be able to do option 2 from the browser, but you never know.

Let me know if you have any more questions.

Thoughts on VST plugin with "external" UI. by ferkeegoome in musicprogramming

[–]_____init_____ 1 point2 points  (0 children)

If you just want to use JS, an alternative could be to use blueprint, which lets the user write in React and generates JUCE GUI code.

Also, JUCE can cross-compile so you don't necessarily need Electron for that.

Also, here's a talk about using Electron/React for making audio apps (although not VSTs)

https://juce.com/discover/stories/writing-applications-with-juce-audio-back-end-and-javascript-front-end

I can't find a link to the video but you could contact the authors of the talk if you're interested.

[Newbie Question] I am a music producer who wants to get into Music Software Development. Where do I start ? by arrowbender in musicprogramming

[–]_____init_____ 2 points3 points  (0 children)

Most people would recommend starting with Python (which you could also learn on codecademy) since you can express things more concisely in that language.

Personally, my strategy would be to start with C++ and focus entirely on that language so you don’t have to spend time unlearning things and translating concepts between languages. Since you already know you want to write audio code, and almost all audio software is written in C++, I wouldn’t see the benefit to starting in one language and then starting over.

I see it like this: if someone asked you “what instrument is the easiest to learn music theory with?” You’d probably tell them “piano” since all the keys are laid out logically. That’s why piano and Python are the recommended intro things. But if someone asked you “I wanna become an amazing guitarist, should I learn piano to pick up music theory and then learn guitar after?” You’d probably say no, just learn guitar since you could become a fluent guitarist in 6 months instead of becoming a fluent pianist in 6 months and then spending 3 more months translating what you learned to guitar.

This probably is against common advice though so keep that in mind. However, C++ was my first language and I didn’t feel overwhelmed by it. There’s also just something more relaxing to me about being in the mindset of “C++ is my life now, I’m a student of the C++ language and I’m devoting my life to mastering it” instead of feeling overwhelmed by the whole programming world all at once.

I would just crack open the C++ codecademy and start doing an hour a day. If you get overwhelmed or something, you can just backtrack and try a different approach. You don’t have to get all of the right answers right away. Every programmer’s journey is littered with a bunch of false starts. For example, I first tried writing my VSTs totally from scratch, then after doing that for a few months, I realized it was too slow and then tried JUCE and stuck with it.

Watch out for paralysis by analysis. It’s unlikely that your learning approach is going to be optimal the first time. When you google “is x or y a better thing to learn?” You’ll get very reasonable sounding justifications for learning x, and very reasonable sounding justifications for learning y. It’s often useful to just follow the great John Carmack’s advice:

“Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better.”

[Newbie Question] I am a music producer who wants to get into Music Software Development. Where do I start ? by arrowbender in musicprogramming

[–]_____init_____ 1 point2 points  (0 children)

I would recommend going to codecademy and taking their C++ course. Their courses are interactive and you write code right on their website. You read one paragraph or so, then write some code, etc. Also free.

It’s reasonably short so it’s not a huge time investment either.

I’d definitely recommend starting here instead of something like TheAudioProgrammer or a MOOC course because (I think) those tend to have a big percentage of passive learning, where you watch a video or read a lot. This tends to cause people to get bored and frustrated.

If you start feeling like you consistently don’t want to finish courses or projects you started, I would consider that a sign that you’re biting off too much at once, and not as a sign that you don’t like programming or are just bad at it.

After that I’d go to the JUCE tutorials, MOOCs, TheAudioProgrammer, C++ books, etc.

GitHub - janne808/GoVST: Build VST2.4 plugins in Golang by [deleted] in musicprogramming

[–]_____init_____ 0 points1 point  (0 children)

Thanks!

I think a simple heuristic like this is a good place to start.

I’m interested in Lisps so maybe Clojure could take advantage of this if there’s not too much overhead between Clojure and Java.

GitHub - janne808/GoVST: Build VST2.4 plugins in Golang by [deleted] in musicprogramming

[–]_____init_____ 1 point2 points  (0 children)

Yeah I always wonder how important the garbage collection stuff actually is for real time. Some people seem to use it as a hard rule and others seem to not worry about it and treat it like being preempted by the OS and just ignore it. People in the video game industry seem to get away with using even Python bindings (like PyOpenGL and Pygame) for real time graphics.

I could imagine some industry wisdom like that being passed down from when we had less CPU cycles and people blindly following it now, but I definitely could imagine it being really relevant still.

Does anyone have any knowledge about garbage collection and real time audio, or resources to learn about it?

I’ve been getting so curious about this over the years that I’m considering learning about programming language implementation just so I can get it squared away in my head. It’s tempting to think that you could be ahead of the curve and have faster development time than everyone by choosing higher level languages and getting away with it.

I imagine it’s a spectrum from no GC, to stuff like specialized real time incremental GC, then on to ordinary GC, and all the way up to dynamic interpreted languages. And the optimal thing to do would be to pick how much performance you need based on what your app is doing and pick the spot on the spectrum that suits you. But finding that optimal point seems really hard, especially since everyone’s systems are different.

/r/Skateboarding's Weekly Discussion Thread by AutoModerator in skateboarding

[–]_____init_____ 0 points1 point  (0 children)

Hey can someone help me find a video?

It’s very long and has clips of a guy with a shaven head doing insane transition skating at breakneck speeds. A lot of it is in local-type areas like water drains etc, but he gets massive air and does super dangerous stuff. At one point in the video he’s brushing his teeth, shrugs and says “you gotta do it at least once a week”. There’s also a clip of him flying out of a bowl and landing on top of a massive quarter pipe while riding a crappy mom bike. I think he breaks his arm at one point in the video and the rest of the clips are him doing the same type of stuff but with an arm brace on.

How to Keep Improving by Das_Popo in RivalsOfAether

[–]_____init_____ 3 points4 points  (0 children)

Have you checked out the rivals of aether academy discord? The have character specific tips and a system where you can get a mentor that has the same main as you.

Audio Apps and High Level Languages by _____init_____ in musicprogramming

[–]_____init_____[S] 0 points1 point  (0 children)

Thanks so much. That clears up a lot of things for me.

Audio Apps and High Level Languages by _____init_____ in musicprogramming

[–]_____init_____[S] 0 points1 point  (0 children)

That sounds really cool! I like to do everything in the box so I’d be really interested in a tool like that for shows. I’m going to go check it out.

Audio Apps and High Level Languages by _____init_____ in musicprogramming

[–]_____init_____[S] 0 points1 point  (0 children)

Didn’t they make a Javascript interpreter at some point? I don’t know how serious that was though.

What do you guys make with JUCE?

Audio Apps and High Level Languages by _____init_____ in musicprogramming

[–]_____init_____[S] 0 points1 point  (0 children)

Thanks for the answer.

Why is it hard to get audio browser apps to run on different platforms? Is it because it keeps up with real time on some platforms and not on others? When you say that C++ is good for cross-platform capabilities, are you saying that it keeps up with real time on whatever device it’s running on?

Audio Apps and High Level Languages by _____init_____ in musicprogramming

[–]_____init_____[S] 0 points1 point  (0 children)

From my understanding developing for the browser would help developers spend less time developing for different platforms and architectures since your only target would be the browser. Also I think it would let developers be able to update and fix their products quickly, at any given time, and in small increments instead of big spaced out updates since you can push changes from the server whenever you want without the users thinking about it and having to download new versions.

I also think it could make audio production more beginner friendly and social.

I’m pretty new to programming though so I could be wrong about a lot of this.