Exchange tips and tricks for the Akai MPC4000

By benjamin9999 Wed Jul 26, 2006 1:53 pm
@modnar: dont get too excited, not much has changed recently... i started re-routing the effects, and also improvements to the midi-in timing, which is acutally quite coarse previously. the new one will have millisecond accuracy, which is about as good as win32 can do. pseudo-submillisecond is probably possible by taking into account notes that arrive with the same MS timestamp, and advancing them very slightly in ppq-time.

past few weeks i have been too busy with work, and preparing to head off to sweden & finland this weekend. i thought it would be fun to make a "release" of cXL from the assembly 2006... but i also have my c64 entry to finish with limited time !
User avatar

By Mr modnaR Wed Jul 26, 2006 6:41 pm
benjamin9999 wrote:i thought it would be fun to make a "release" of cXL from the assembly 2006... but i also have my c64 entry to finish with limited time !


i don't understand what that means. :cry:

By Renich Wed Jul 26, 2006 6:53 pm
Congratulations benjamin9999! It would be great to try it out!

Getting a bit back into subject, how about if we concentrate on the proposal part. I will make a draft at the site i've managed to setup: http://www.woralelandia.com/openmpc/

I would like people to revise and edit it. I promise to put the first version of the draft tonight around 11 pm (GMT -05:00).

What I am saying is: Let's forget the develpment of an entire new OS for the moment. Let's try and ask akai to release, at least, some beta version source.

Please, visit, register and make participate as much as you like.

Renich
User avatar

By Kalei Wed Jul 26, 2006 6:54 pm
First let me just state that I am not a programmer so my questions might be stupid as f*ck but I'll ask em anyway:

Why cant an already open sourced OS be used just recompiled to work with whats inside the 4k? Assuming there IS drivers and stuff already written for the hardware? Wouldnt it just be a matter of finding the right stuff matching the cpu and other used hardware inside the 4k with whats already out there? That would ease the load for any potential programmers of such and project Im sure...

What about reverse engineering the current OS? Look at how the crack group h2o made Nuendo/Cubase SX to work? That was an insane amount of work and Im thinking the 4000 OS must be easier to reverse engineer since it doesnt really have a copy protection scheme (Im assuming)...

Please be gentle with my n00bish programming questions 8)

By Renich Wed Jul 26, 2006 7:00 pm
I think you have a good point here. There are some issues covered by Iliac that need to be worked around.

But, using the Linux Kernel (ported) to run the mpc4000 would definetly be an option! I think we can experiment and make a great proposal.

If Akai turned us down, I think that we could try and make it boot and sequence. With some work done, I am sure Akai would reconsider.

Our first goal is to ask Akai to release us the source code of the current OS and/or give us detailed info on the internals (program and multy format, effect algorithms, etc)

By _Stilo_ Wed Jul 26, 2006 8:01 pm
Renich wrote:But, using the Linux Kernel (ported) to run the mpc4000 would definetly be an option! I think we can experiment and make a great proposal.

I was about to say "Forget it!", cause the DSPs usually used, like the ones in the 1000 or 2500, are highly specialized hardware. Even the compilers for these are usually not easy to get, as the manufacturers only give them out to valued customers :D

But I saw in the 4000 Service Manual that it obviously has some kind of Intel CPU. So maybe there's really a possibility to use something baed on Linux. But only Akai would know about that.

By illiac Wed Jul 26, 2006 8:50 pm
There are four big components to the software in this thing:

-RTOS
-sampler and sound engine
-sequencer
-controller

The RTOS manages the physical resources and schedules the CPU, and also interfaces to the file system, USB port, etc.

The sound engine manages the playback of sounds, and does a bunch of signal processing on the sound.

The sequencer manages MIDI events and their reception and transmission in and out of the internal sound engine and the MIDI ports

The contoller reacts to real-time playing by generating MIDI events

I'm going to guess, but this is an educated guess because I've managed some pretty sizeable software development projects. The sound engine is the most difficult piece here. It requires real mathematical sophistication -- experience in DSP. This experience can't be faked. Sample-rate conversion, time stretching, reverberation algorithms, etc. all must be coded at a low-level, usually in the native assembly language of the machine but perhaps using a good C compiler, by someone who is fluent in signal processing.

The RTOS is the second most difficult piece, but there are quite a few available. There is still a great deal of work to do even when you get a good RTOS, because the prioritization of threads and the overall management of resources is not magically solved by an RTOS; it just provides low-level facilities for scheduling, context management, some simple I/O, etc.

The sequencer and controller are probably the easiest parts. The time scale at which they work is much higher (coarser) than the sound engine, and there is not so much mathematical precision involved. There is of course a lot of real-time programming involved.

I'll say again: the chances of someone -- even a very good professional team -- writing a replacement OS that is bit-for-bit compatible with the current one and that improves on its stability are just about zero. The chances of this happening with an unpaid team of volunteers, geographically distributed, is very very small. Of course, you can write an OS that does *something*, but the question is whether it is useful to do anything less than full compatibility?

-illiac

By Renich Wed Jul 26, 2006 9:48 pm
Illiac, I am glad to have someone like you interested.

You sure are literate! In any case, here are some questions.

Could it be possible to develop starting from a beta version? (0.1, 0.5 or 0.9)

If the beta version is not released, you think we could start an alternative OS that had the MPC4000 Working as much as possible as it works today?

If we manage to start an alternative OS with no/little support for the actual Akai files, would that give us better ground on asking them to provide the format definitions so it can be compatible?

Is it hard to add compatibility to a working OS if we manage to make one (and if Akai supports this part)?

Who will benefit the most if we manage to release a stable OS that is fully compatible and bug free?

I just need some POVs here... I am glad that so much people is participating.

By Renich Wed Jul 26, 2006 10:05 pm
Well, found some interesting links.

Please check out the Development Resources at:
http://www.midicase.com/akai/

By _Stilo_ Wed Jul 26, 2006 11:22 pm
Renich wrote:Well, found some interesting links.

Please check out the Development Resources at:
http://www.midicase.com/akai/

Yes, good info in there. Mostly useful for interfacing with the Akai machines however, that is, file formats, storage devices and so on.

I remember reading in some of those sources that Akai was even reluctant to give out their proprietary S-series file format, to enable independent programmers to code PC-based software to read sample CDs. Must have been a long struggle. Picture this.

Here's another collection:

http://www.synthzone.com/akai.htm


And by the way, I don't see why Akai should be more willing to give out a Beta OS, with all the bugs still in it, but otherwise everything that the actual OS has too.
User avatar

By thamessage Wed Jul 26, 2006 11:43 pm
Just wanted to add my vote of support to to this undertaking. I think its a great idea. It seems like alot of work but hey if you enjoy that type of stuff go for it! I'll be following the blog too.
User avatar

By jahrome Wed Jul 26, 2006 11:57 pm
So...you guys are talking about Open Sourcing the 4000s OS? Who ever takes this on will have to spend alot of time and resources..which basically equals money. So, you will mostly likely end up paying for the software (unless the programmers give it away out of the kindness of their hearts). But hey, if one person gets a copy, what will stop them from sharing?? A USB dongle? What happens when this Open Source OS screws up your 4000? Run to Akai or run to the individuals that created the OS in the first place ???

Who would benefit? The better question is, who would be brave to try it in a real-world situation...meaning people that produce/create for a living...

Its taken years for the 4000 to get where it is today. To install a 3rd party OS would mean another 3-4 years of playing with that machine and its OS.

By drumtrack Thu Jul 27, 2006 12:04 am
"mostly likely" ?
"a usb dongle" ?
User avatar

By jahrome Thu Jul 27, 2006 12:13 am
'Most likely' just speculation..which is what everyone is doing. Who would be willing to take on such a task for free..even if they did, when bugs pop up, will they be willing to continue to support it? People have lives/jobs. I know there are probably programmers that will do it as a hobby..but this would be a huge project. As you guys state..Akai, can't even get it right with paid programmers...

'USB dongle'.....just to emphasize what would programmers gain for all their time and resources..bragging rights? Warm fuzzies? Money?

By Renich Thu Jul 27, 2006 1:52 am
Thank you _Stilo_ for the great link!

Thanks to everybody that is supporting/following this. I understand that there must be some exceptisism. It is fair.

I know we are gonna get somewhere. Guys, it's for our benefit. Ours, as users, and Aka's too.