I would like to band together anybody who is willing to create a module or plugin to use Mac’s AVTools to replace the depreciated movie features we grew to use and love with Quicktime.
The idea is that this module will be free for all to use and it will greatly improve the usability of Xojo media heavy apps to move to cocoa as well as be available to sell on the app store.
I have looked at MBS AVFoundation - but it only works if you buy the complete MBS plugin collection. That’s a deal breaker for me and I guess others here…
These are the features I would make use of:
rate, some form of trimming, export to, record, choose record and playback outputs, play, stop, volumn level output, synchronized playback and recording (useful for 4-track tools).
I heard that declares are the way to go… I confess I don’t know where to start with those.
Is anybody here willing to collaborate on this?
perhaps, we could also offer an second module for windows so that they do not need to download quicktime also.
Naudio is a piece of software I used to make use of. I didn’t need to download any additional software.
I used .Net however. We’d need to convert it to Xojo!
I think AVFoundation is 64bit only, like SpriteKit, so we can’t declare to it until Xojo has 64bit. At least I’ve never been able to make them work.
How Christian does it I have no idea. I’ve made plugins a few times but never managed to link AVFoundation into one. If someone can setup a plugin I might be able to follow the template and help.
You will not be lucky with declares and AVFoundation. It uses a lot of threading and blocks. That will be a challenge.
Better just use the plugin
Maybe it can be added to the MacOSLib … you should ask Thomas Tempelmann about this. Maybe he can help you.
But starting from scratch is a H U G E task and it would make more sense to just buy a MBS license.
Are you interested in just the audio of the AV stuff or the video as well?
There’s a group of people in REAL/Xojo Land that develop for audio specifically and we’ve got to know each other pretty well over the years. Playing just a sound on REAL/Xojo is easy, but when you get into real-time features and streaming off disk and DSP when you are doing that, you get a lot of resistance from REAL/Xojo. We all have experienced it and shared ideas between ourselves.
Exactly what Christian said, it’s the threading and blocking, and really REAL/Xojo doesn’t have the giddyup-and-go to handle this type of thing yet, not until they really overhaul those things - which are not high-priority because of the sheer number of people that benefit.
And this applies to anything attached to REAL/Xojo, whether it’s declares or plugins.
In my mind, the solution is something completely separate from REAL/Xojo that you communicate via IPC. That way the app is freed from enslavement to REAL/Xojo’s rules and internal limits. This is something I’m going to be working on for the remainder of the year; the outcome will be a console-type app that will run by itself and will have a API interface to communicate with so you can start/stop, get progress from, and get and set data on the fly. And it should stream off disk, support multiple-streams (like a sampler) and maybe more. (I’ve said this for awhile but it would really benefit myself.) I wouldn’t give it away but at least it’s something.
I’m not saying you can’t do the moderate stuff with declares and expand that, and perhaps Christian is talking about that as well. But if you haven’t figured it out by now, MBS is so worth the money. It pays for itself almost immediately, doing things that you’d have had to code yourself.
Seriously go with MBS and save yourself a whole bunch of pain.
I’ve been looking at using RB/Xojo for audio for a few years now. I needed access to audio units and the AV foundation stuff but it was just impossible with declares. In the end I wrote a player in Obj.C (that was a nightmare in itself!) and gave the code to Christian who packaged it up as a Xojo plugin. It’s now available as the AU Player in his latest plugins.
I would have packaged it up as a plugin myself but I have no idea how to do it. Obj. C is not my strong point. It also took me so long to pull together the Obj. C player that I didn’t want to waste any more time. Hopefully other MBS customers will find it useful and it will save them the pain I went through!
Seriously, don’t waste your time messing around with declares and AV foundation / Core Audio. It’s just not feasible.
Anything that requires a Objective-C block may be a tad difficult to do without Joes plugin