About Monkey 2 › Forums › Monkey 2 Development › audio
This topic contains 42 replies, has 7 voices, and was last updated by
EdzUp
2 years, 2 months ago.
-
AuthorPosts
-
July 7, 2016 at 12:23 am #1814
Hi, just had some time for m2 (outside of ted2). I think the audio department could use some improvements (too). Whilst this isn’t fmod, there are still a bunch of interesting effects and formats available. Just wav (sadly no 24bit, flac) and not even having the options implemented from the docu is a little bit little. Thanks for that color function!
July 11, 2016 at 1:47 am #2026I had some time to play with m2. One of the tests in its aliased bumpy glory (OS X). Input: esc,f,space,mouse. Image
I miss more sound options. Compile times are fast again, hurra! (What you really want, is realtime feedback). The docs are meh-> grep on source -> … Sometimes m2 feels great, sometimes cumbersome. The structure of Mojo is weird. I had a couple of freezes (slowed down input), canvas colors and pixmaps do strange things, couldn’t do stuff like Max(0.0,Sin(ang*d2r)), … still it was fun!
[hint: $ff-$59]
July 13, 2016 at 1:56 am #2085Ahh, i ran out of time (wanted to do this and that) but anyway it was fun (OS X). Input: esc,f,space. Image
@Mark nice update!
[hint: 4,5,6,?]
July 13, 2016 at 6:58 pm #2097feedback:
‘ audio (quirks & suggestions)
a) Sometimes the audio is rather unclean.
b) FLAC/mod/ogg support.
c) Convert audio formats.
d) Softsynth
e) fft analysis and some effects (like equalizer, distortion, high/low-pass, flanger, reverb).
And whilst i’m at it …‘ ted2
a) Retina support.
b) Nice font/settings, btw. scrolling down source the source cuts the text at the top.
c) Vertical text scrolling works with the trackpad (two finger swipe), horizontal scrolling doesn’t.
d) Find&Replace: You can only ‘return’ through the results until you click on the text; clicking on the find/replace box doesn’t reactivate it.
e) Adding OS X typical shortcuts (like, cmd+x/c/v/z/…, instead of ctrl+…). Weird when switching apps.
f) Double clicking on a text/command, marking the whole text/command.
g) F1+command under the text cursor firing up help with a search on the choosen command.
h) Highlighting all the signal commands and types and …
i) Keep the flat and easy look&feel, no shadows/icons/kirmskrams.
j) Trying to mark text on the right border (outside of the screen – scrolling) resets you to the left without marking anything.
:
‘ questionsa) Can you also load data without #Import (like in Max, a folder structure outside of the package)?
b) I very much like that Keyboard.KeyDown is an autofire etc. but isn’t it confusing that EventType.KeyDown differs?
c) How to add fragment shaders (post processing)?
d) How to swap between fullscreen and windowed into different resolutions?
e) Where is my (virtual) heart gone?
f) 3d 3d 3d …
‘ overalla) It’s easy and fun whipping up ideas (as long as you stay within boundaries).
b) I still miss zebra’s code indentation. For some reason i enjoy throwing #rems and #ends into the code (and afterwards deleting them again).
c) A guide on how to modify/add functions in the source, like sdl or ted2, could save people some time.
d) Some stuff could be implemented (more efficiently), sometimes there are many options how to use a method, sometimes you miss an option, a balancing act.
e) My issues were about memory access violations (typos [blame the keyboard/editor, not me], early double times import drama, [strings defs baby]), not putting canvas in front of certain commands (used to Max here) and how to define some properties correctly (every entry in the doc could use an example).
f) Hopefully more people will join m2. The more i use it (time *sigh*), the more i like it.July 16, 2016 at 6:08 pm #2198What I would really like to see is some kind of direct access to the audio buffer in mojo. Most of this extra stuff will take care of itself when there’s a standard/easy way to hook existing audio generation libs into an OpenAL stream without having to hack around in OpenAL directly or circumvent it entirely.
July 17, 2016 at 12:01 am #2209Oh no, not OpenAL (again).
July 17, 2016 at 12:11 am #2211> What I would really like to see is some kind of direct access to the audio buffer in mojo.
There is actually limited/experimental support for this in now – see my blog update, but note there are issues with doing realtime stuff like audio in a single threaded app.
There’s a little demo in the vsynth bananas folder called vsynth_mojo.monkey2. It basically does the same thing as vsynth – ie: realtime audio generation – only through a single openal audio channel, so you can mix it with stuff playing through other audio channels easily. I have no idea how well it runs on other machines though!
July 17, 2016 at 12:45 am #2213I made a movie with vsynth on pi. I love the idea of going 3d with the voice positioning not that I have surround sound ATM.
July 17, 2016 at 4:05 pm #2229OpenAL, Midi, … that’s not what you want when you’re into music and after more control and precision. I would love to see something different. OpenAL had quite some issues and i remember the official dev on it being discontinued.
[@What’s next: I still disagree with the many platforms approach. I prefer if there would be focus on ‘finishing’ desktop first. The more platforms there are, the larger the possibility is that m2 will share monkey’s fate: available for many platforms but not working convincingly on any of them.]
July 17, 2016 at 10:50 pm #2240There is actually limited/experimental support for this in now – see my blog update, but note there are issues with doing realtime stuff like audio in a single threaded app.
Glad to hear it’s there. I’m sure in the future there will be a straightforward way to handle more realtime stuff, either with a thread specific to the feature, or when threads start getting worked into the language, or whatever.
@taumel: If you wanted to be helpful, what would you suggest as far as audio libs go? If my focus were a music writing application specifically, I’d probably wrap bass.dll or libOpenMPT and skip the middleman. OpenAL has the advantage of being free, and OpenALsoft has a liberal license (and afaik is still being maintained). FMOD is old and has a rather expensive license, and FMOD Studio (while nice) would be a large undertaking to wrap, and might add a bit of heft to the runtime. It also has licensing which is incompatible with distribution with mx2, as far as I know.
[The only talk about multiple platforms so far I’ve has been about the Pi…]
July 18, 2016 at 1:01 am #2247“If you wanted to be helpful”
Dude, i think it’s valuable giving honest feedback.
Both fmod (yep studio) as well as wwise offer indie, non/limited-commercial licences which probably suite a range of applications already. Check them out. The realtime mixing and mastering alone can make such a difference. Secondly it would be nice supporting a free (and limited) alternative too, just in case your sound design is basic or your budget is tight/# of assets are high.
Dunno about the current state of bass, i’ve only used it a couple of times with Max. Do bass and its extension work together well? From a quick observation, it looks less feature rich than fmod or wwise but like it also could offer some more than what we have right now.
Does libopenmpt work? I remember that some tracker libs allegedly supported a number of formats but once you threw various modules at them, they tended to crash or refuse to play. In the best case you have both replay and also pattern access (selection).
Part of the problem is that there is such a huge difference between a modern updated sound engine and the ability to replay samples with a few basic adjustments. For the later you at least want some accuracy, low latency, quality, reliability and read/write access to the data in order to feed it (gen/mic) or analyse the audio spectrum, best working in 2d and 3d mode. I would love to see attention to detail on sound (as well as other aspects m2 covers, it seems like such a huge amount of work for one person on all the platforms, therefore …).
The fun of m2 is the way you can directly code, its readability and that the source is available. Its downsides are that some aspects of it feel only wip or not up to date. Every section i’ve covered so far had their hick ups and lacked polishing. These days it’s early adopter but it shouldn’t stay like this in the future, otherwise the audience might stay small.
*updated*
July 18, 2016 at 6:28 pm #2263taumel: Sorry, I didn’t want to make it sound like your post was entirely unhelpful. However, focusing on the things that are “not what you want when you’re into music and after more control and precision” without talking about what it is you think people actually want, that just sounds like, well, a critique that lacks much substance if your intent was to help improve that situation.
I want to encourage your musing on what you think would be a better option, or barring that, at least explaining that the situation seems suboptimal but you’re not sure if there’s a clear and obvious way to improve it. I apologize for sounding a bit confrontational in my previous post.
BASS is a pretty good lib, I used to use it all the time back when I made mostly freeware stuff. It’s pretty straightforward and runs on a load of platforms. Its source license isn’t compatible with mx2 however, and costs money if you want to use it for commercial or shareware projects.
LibOpenMPT (not to be confused with libmodplug) is the core of OpenMPT — you could theoretically write an entire tracker with it. This probably isn’t what most people making games with Monkey are looking for, but it is a viable option. It also has the benefit of having a BSD license. It supports all formats OpenMPT does, with the same level of compatibility.
For basic stuff, it seems like OpenAL might be the way to go. The big missing feature in MonkeyX seemed to be audio streams, which theoretically would let us hook anything else up into it that wasn’t originally supported. Setting loop points in streamed audio (ogg) would’ve been nice, too, but I never really dug into whether that was nontrivial to implement.
July 18, 2016 at 8:46 pm #2266Something to relax (worked for me, V1.0.1, OS X, 1440×900). Input: esc,f,space. Image
It would be nice having support for fmod/wwise. Oggs can sound strange (frequency issues)?
[hint: Two letter acronym for monkey2.]
July 22, 2016 at 1:19 am #2327Tested some sound and image stuff, ran out of time, so, wip (OS X). Input: esc,f,space. Image
This one is ani heavy.
[hint: Simon Arm?trong]
July 27, 2016 at 9:59 pm #2489I want some satisfying shooting thing again, first step (OS X). Input: esc,f,space,cmd,cursor. Image
Not this sound related (yet) but they say that there is no sound in space too.
[hint: If a hand had one more finger.]
-
AuthorPosts
You must be logged in to reply to this topic.