Audio Streams...

Monkey Forums/Monkey Beginners/Audio Streams...

Taron(Posted 2015) [#1]
I've only found one 2 year old post on the subject, while I've just started playing around with Monkey X, but I'm wondering, if there's any chance it could ever support audio streams to create your own real time sounds?

I've written a bunch of real time synthesizers with BlitzMax at the time, which work beautifully. To imagine a browser game that could boast amazing audio whilst being the tiniest download is quite thrilling! Not to mention for mobile devices!

Anyway, I really like Monkey X thus far, but there are a few things like that, which still have me on hold a bit...

Just knowing that it's still alive and kicking and Mark is still working on it would really put me in a buying and promoting mood. I'm still hyping BlitzMax every chance I get and I'm getting some really powerful chances these days! 8)


Pharmhaus(Posted 2015) [#2]

I've only found one 2 year old post on the subject, while I've just started playing around with Monkey X, but I'm wondering, if there's any chance it could ever support audio streams to create your own real time sounds?


I just took a look at the HTML5 implementation of Monkeys mojo and it looks like it currently only supports loading samples from a path via http GET, not sure if mark would implement a load routine which uses a databuffer / array instead.



Just knowing that it's still alive and kicking and Mark is still working on it would really put me in a buying and promoting mood.


Peoples opinion tend to differ on this one, but to me mark is working on it just in the same way he worked on blitzmax.
82b just came out and he finally came out of his corner and did a partnership with ziggy&playniax which is a great improvement too.
People always b*tch about the development speed but I still remember the depressing Max3D thread were mark had put so much effort into something but people were not interested in a alpha/beta version but wanted a finshed product instead. rock-solid and light speed simply don't go together well. Compared to Bmax, Monkey steps a bit further away from its basic roots and into professional programming introducing new concepts that might require additional orientation time for you if your programming style is close to the original basic style of B3D / B+.


Taron(Posted 2015) [#3]
Thanks Phramhaus,
oh, I get along beautifully with Monkey X already. I've been programming in C and C++ as well as BlitzMax, thus the general concept of Monkey really makes sense to me. I'm coding a little test racer right now, which is great fun and I haven't had any hickups, yet. I want to use GL next, where I have to look into FBO use and rendering to texture, which all seems to be available as far as I can tell. OpenGL ES is limiting, but for a little game it most likely is just fine.
That's, however, also the reason for why I'd want to be able to generate sound in real time. I have found a web audio API, which seems very promising. I think, it would be awesome, if Mark could have a look at that, assuming that web related matters are most restrictive and could present the greater challenge in regards to cross platform implementations of Monkey.

Anyway, I'm not complaining, just wondering. Currently I'm going a bit slow with my "Verve painter" development myself and I'm so thrilled with the community to be so patient and supportive. I happily extend that courtesy to all developers. 8)

Since I'm not yet totally immersed in Monkey X, I can't yet tell how lively the community here is going, but it seems like it is rather intimate and quiet still?! I sure hope I can contribute to change that eventually, hehehe! 8D

By the way, I totally ignored the Max3D stuff, too, since I never had planned on making any 3d games or the likes. Eventually I wrote a tree/coral obj generator in Blitzmax, though, and almost all my little game experiments and apps ended up using openGL shaders, but bmax just does the trick there quite well. I'm sorry that it was such a letdown for Mark with the Max3D. 8{
He should hold his head high, though, because he's doing awesome stuff that deserves plenty of praise! Without BlitzMax I probably wouldn't have started "Verve" along many other things I've done with it already and the countless things I've learned because of it. Yay Mark! 8D

Thanks again!


abakobo(Posted 2015) [#4]
Being able to "draw" sound realtime would be surely great for custom synth and audio oriented games! (with an array of 16bits at 25-60 fps not the xxK fps of sound.;)p) but i suppose it's a real challenge, especially on VM like flash or html5.
May be writing some small files (like 1 or 32 or 24 beats (not bits nor bytes!)) and play them consecutively would work (where .wav is available)? (Actualy i never tried to write/delete custom files with monkey-mojo)

I personnaly think the new version's releases rate is sufficient... i'm still on 81. But i'm using monkey as a hobbyist.
Old Android and PS have left the party but you can use versions that allowed this.(All?) the different versions can be found on the site once you have your license.

Monkey-x is great and i think it will continue to be great! I don't undestrand why people are complaining/freaking because Mr Mark Silby has said he is in trouble with Monkey-Mojo because -it's not selling well and if he stops he would put it opensource-(Maybe because they love it or need it for their job?).
I didn't expect a LTS when i bought it! For me it's the cheapest (and worth to be used) "easy to go" multiplatform 2d game programing soft you can find and it's also one of the greatest. Once i bought this solution i stopped checking about 2d game programming environement (i was a Basic language user too and i'm very happy to come back and leave JS AND Java AND all the C♪♪ because i have no time for it i just want GAMES). But i'll shurely be disapointed if mojo goes openSource because i'm more confident in a code made by a single person..
However Monkey-x-Mojo is not the most powerfull and you could encounter lack of performances when using huge amount of resources/processing though it's compiled. But you can test by yourself with the demo.


Taron(Posted 2015) [#5]
Thanks, abakobo! I'm already playing with it and think it's more powerful than one might think?! Also, I'm the kind of guy who always tests stuff first before writing posts with requests, hehe. Yes, only some sad few of that kind are left! 8}
If I hadn't found the web audio solution, I would not have expected Monkey X to ever do such a thing, but since even browsers can support pretty powerful rates for audio, seems like it's totally a viable option.

HOWEVER, I'd love to see, if we can help Mark boost the sales of Monkey X!?! I think, I'm in a fairly decent position to make some extra noise for him for sure.

Well, I may need a few more weeks to playing around, but I'm excited enough to give it a real go. It can only really be on the side, but it's a BIG side, hehe! ;o)

Anyway, thanks again and I'm hoping, too, that he keeps going. Open Source...eh...well, with all the mods out there, it's almost open source anyway, but Mark has really a brilliant mind that should stay firmly in the lead of it.


ImmutableOctet(SKNG)(Posted 2015) [#6]
I'd just like to add that Monkey is in fact open source already. All of the targets are available on GitHub, and I assume the same goes for the free version. The only things that haven't been 100% free are Mojo's native implementations. Currently, the standard GLFW implementation is free (Should work for both GLFW2 and GLFW3), as well as the HTML5/JS implementation. The other implementations of Mojo are closed-source, and that's what you pay for when you buy Monkey (That, and supporting Mark / keeping the website up). So, you could theoretically make an HTML5 or desktop game, then from the money you'd make off of that, buy the full version of Monkey.

Also keep in mind that what I'm talking about is the main Monkey version most people own here ("Pro"), not the new bundles (Which come with "Pro").

And technically speaking, Monkey has its own "Game" framework, which can be built upon by anyone (Including Mark; that's what Mojo uses). This technically means you could use different game frameworks like what BlitzMax has (Only a bit more unified). The only issue is that you'll probably need to write some native code (Per-target/per-language) to plug everything together. Though, technically, you might be able to get away with making a new framework using the OpenGL (ES) modules and Monkey code for this. Mojo is just a possible framework to use, and it's what most of us use, but that doesn't mean we couldn't use others. What Mark stopped/paused working on was the "Mojo3D/MojoX" project; in other words, that OpenGL/DirectX/Other wrapper that was supposed to give us multi-platform 'low-ish' level 3D functionality. And of course, shaders for standard Mojo (Something which we really should do as a community at this point).

The whole shader issue could be done somewhat easily, we basically just need to write some GL (And possibly DX) code to work with shaders (Something we already have to some extent). Hell, we already have this working with MiniB3D, don't we? And if we're really feeling advantageous, we could look into making Monkey targets for GLSL and HLSL (They're basically variations of C/C++ anyway; we already have a builder for that).

That's just my two cents on the issue. It's not like Mark ever stopped working on Monkey, he's just not really working on "MojoX" currently.


Taron(Posted 2015) [#7]
Thanks, Sonic, I totally get it. If I can help in any way, I'll happily do so. So many things I have to wrap my head around these days. But it's good to have some landmarks for the journey ahead! 8D
We all have our role to play on this big trip and Mark has placed himself pivotal to the engine that drives us, doing a marvelous job at that. I see my own function to be elsewhere, but I'm really happy, if I can contribute with my experiences and see a place and a proper way to do that.
Sometimes I'm a little afraid of my own tendencies, you know. If I'm excited about a specific target, like JS, I may drift off into actually doing that directly instead. With the browser implementations it is very tempting, as they are meant to be able to go cross platform to begin with. In a way I'm kind of forcing myself to keep my focus on Monkey instead. Weird how that works. 8P
Anyhow...Monkey makes a beautiful platform alone from the perspective of using a framework. Thanks for the reminder for sure!