Scirra / Construct-feature-requests

A place to submit feature requests and suggestions for Construct.
https://www.construct.net
10 stars 1 forks source link

Built-In "Midi" Object #195

Open dk865 opened 5 months ago

dk865 commented 5 months ago

Reviewed guidelines

Checked for duplicate suggestions

Summary

There should be a way to use MIDI in Construct 3 without any addons or 3rd party tools. I've seen before (like 11 years ago) that Ashley planned to add it when more browsers supported WebMidi by default, and now most browsers do, and it's been 11 years, and I've heard nothing else. I think this would be a great addition, and people would love this feature, and it would be worth your guys' time.

Possible workarounds or alternatives

It is possible, but with need to know (advanced) Javascript, or spend money buying the only one from the addon store: These are insufficient because it shouldn't cost money (especially for students) or require too much knowledge with Javascript Midi (mainly for beginners.)

Proposed solution

You should add a "Midi" object type in the default Construct 3 object picker.

Why is this idea important?

This is important because some students can learn not only coding with Construct 3, but also how to play instruments, and can put out tutorials and games on Construct using Midi where all the user needs to do is plug into a piano keyboard, and play!

Also, many people are making Midi Visualizers (My main reason behind all of this) in Unity, using Midi, and Construct 3 seems to lack this feature; It would be a great addition, and maybe reel in some of those Unity folk to try out Construct's Midi.

Additional remarks

Just saying, I may have to switch to Unity to make a Midi visualizer if I can't find a way to use Midi in Construct (3rd party or Built in (what I'm really hoping for))

Thanks though for reading all of this!

WilsonPercival commented 5 months ago

JavaScript is no more difficult than playing the piano. It's a pity that you don't want to teach him.

dk865 commented 5 months ago

Sure, learning JavaScript is a valuable skill, but comparing it to playing the piano oversimplifies things. Playing a song on the piano from an easy piano tutorial on Youtube can be quick, taking just a few minutes. However, learning JavaScript involves understanding complex concepts like syntax, logic, and data types, which can take a lot more time and effort, especially for beginners, let alone trying to understand the Midi parts along with everything else.

Also, Construct 3 is advertised to be Code-Free, (view second heading) and easy for beginners and educators. MIDI would just be a nice addition to their library of objects.

Thanks for you comment though! Have a good day.

WilsonPercival commented 5 months ago

To use an analogy, you can simply copy and paste the code into your project and you don't even have to learn the syntax. Also, if you have problems, there is AI to help solve them. If you don't want to have more features, you will always come up with excuses like "Construct 3 is advertised to be Code-Free".

dk865 commented 5 months ago

I'm just wondering, what is your purpose of commenting on this? If it doesn't suite you, just move on! Simple as that.

Also, I've spent around 7 hours trying to figure it out using ChatGPT and DeepAI's chat with online mode. First, I was trying to say, "Hello! Can you give me some javascript code for my Construct 3 project, so that when I press any note on my piano keyboard, it will spawn the object, 'note' at 500, 200?" then after a while and that not working, I moved on to try and have them code me a plugin, file by file. This was the time consuming part, and I wasted many hours, and even gave them the whole addon sdk manual 4096 character at a time, and they could not understand how to put 2 + 2 together, and get 4. I'm sorry if I "Offended" you by posting this "Stupid" request because not everyone wants to learn Java, and just make a simple game. Also, if you're so concerned about it, would you be willing to look through my plugin files that failed me? I uploaded them to GitHub, and posted 4 different forum posts requesting help (none got answers)

https://github.com/dk865/MidiPro_Construct3

Again, thanks for commenting.

WilsonPercival commented 5 months ago

https://webmidijs.org/

dk865 commented 5 months ago

I've seen that, the only thing is that I would enjoy using it in event and action based things, not entirely JS. Sorry if this is off topic, but would I be able to have the javascript call an event function? Like when the webmidi receives a note, it calls the function "noteRecieved" in the no-code functions?

WilsonPercival commented 5 months ago

I could easily give you an example of this, but unfortunately I don't have a piano to test the functionality.

NickR-Git commented 5 months ago

I'm just wondering, what is your purpose of commenting on this? If it doesn't suite you, just move on! Simple as that.

Also, I've spent around 7 hours trying to figure it out using ChatGPT and DeepAI's chat with online mode. First, I was trying to say, "Hello! Can you give me some javascript code for my Construct 3 project, so that when I press any note on my piano keyboard, it will spawn the object, 'note' at 500, 200?" then after a while and that not working, I moved on to try and have them code me a plugin, file by file. This was the time consuming part, and I wasted many hours, and even gave them the whole addon sdk manual 4096 character at a time, and they could not understand how to put 2 + 2 together, and get 4. I'm sorry if I "Offended" you by posting this "Stupid" request because not everyone wants to learn Java, and just make a simple game. Also, if you're so concerned about it, would you be willing to look through my plugin files that failed me? I uploaded them to GitHub, and posted 4 different forum posts requesting help (none got answers)

https://github.com/dk865/MidiPro_Construct3

Again, thanks for commenting.

Agreed that the lack of MIDI support natively in Construct is a little disappointing. Web MIDI wasn't all that reliable for a long time. However, with the recent addition of support for the BBC Micro:Bit, which also supports MIDI, wider support for MIDI-based custom controllers on other microcomputer platforms (Arduino, Raspberry Pi, etc) as well as more widespread support in modern browsers, it sounds like a reasonable request for consideration.