Jump to content

Documentation for MIOS?


Chomsky
 Share

Recommended Posts

@TK:

That's just ruude!! How do you mean to get payed if you don't want to write a GOOD documentation upon a request from someone with 10 posts?! :)  :P

BTW: I' intend to try to make some order in that whole pile of information when I get my MB done.

Link to comment
Share on other sites

Would you help me to write a GOOD documentation?

Best Regards, Thorsten.

Yes, of course! I would be happy to do this! Really! But before I can do this I need to know how all these MIOS-functions work and what they do. Please tell me where I have to start to learn all about those MIOS-functions. And when I'm finished with it I will write a better documentation!

Link to comment
Share on other sites

lease tell me where I have to start to learn all about those MIOS-functions

Just don't ignore the hints of the others, and spend some time to read the relevant postings in the forum. I've explained the purpose of a deadband several times in the forum, I've also written some more details at the http://www.ucapps.de/mbhp_mf.html page (search for deadband), I drew diagrams, I demonstrated the behaviour with pseudo code, and not at least I released the source code which contains some helpful comments.

This is my distribution, now it's your term - you could be the man who takes care that other people don't have to spend the same work in searching for all these scattered informations.

I've created a Wiki page where you can start explaining the AIN deadband function with your own words:

http://www.midibox.org/dokuwiki/doku.php?id=mios_details_ain_deadband

Hope that you understand this motivation.

Best Regards, Thorsten.

Link to comment
Share on other sites

... The documentation is pretty good, actually..

Were you expecting something like the Java API Reference?

That said there definatly has to be a section added to the WIKI about the MIOS functions so that people can add their practical expirience in as they go along, thus achieving a more robust description of the MIOS functions. 

One thing I would like to see is a posting of the source for each function, but in reality I'm not going to have time to make a serious attempt at this until August at best (nor will I really understand MIOS until then anyway). 

... I've still gotta post a writeup on various distortion circuts.. once I build them..

Link to comment
Share on other sites

One thing I would like to see is a posting of the source for each function,

this doesn't make much sense once the function uses subfunctions.

Why not using the search function over the source code? (Windows: "search" button, Unix: "grep")

Best Regards, Thorsten.

Link to comment
Share on other sites

Word.

Download the source code then!

If it helps, here's how I figured out MIOS. I downloaded the MIOS source and an application. I started at the main loop of the app (MBSEQ, FWIW) and read through the code, figuring out what each and every command does, until I had read through it a few hundred times in order to exhaust all the possibilities. Where the code made calls to MIOS functions, I went to the MIOS source and did the same. All in all, it took me a few weeks of using all my spare time. I suggest you do the same. If you don't understand something, you can google it and you'll soon find an explanation.

I think that TK has provided perfectly sufficient documentation, provided that you read that documentation and know the background info. If you don't know the background info, it's not hard to teach yourself.

Link to comment
Share on other sites

My suggestion is, that there should be one central place where all the information is gathered. Mostly it takes hours to find the information I need because the information is scattered in many different places. So why don't have a central place, where everybody can find what he/she is searching for?

Link to comment
Share on other sites

This is the intention of the Wiki - instead of buring the informations in the forum, they should be collected there.

But this is a long process, and it especially relies on the contribution of the users.

The target is, to have ucapps.de as some kind of "reference manual", which describes things in a compact and exact form, and the Wiki as "user manual", which describes things more detailed for non technical experts.

Therefore I asked you for help (please read my posting again)

You are now going to understand the Deadband feature, so once you know how it is working, why not writing down a report at http://www.midibox.org/dokuwiki/doku.php?id=mios_details_ain_deadband, so that next time it will be easier for other people to get into this topic?

Best Regards, Thorsten.

Link to comment
Share on other sites

I should qualify my comment a bit better:

A posting of the source, with hyperlinks!

Tell me that wouldn't be useful  ;D

And, yes I realize that is going to be alot of work, and I still have alot of source code to peruse before I can tackle such a thing.

Link to comment
Share on other sites

When you search in wikipedia for deadband, you get:

Deadband is an area of a signal range or band where no action occurs (the system is dead).

I see it like this: Deadband defines the length of a very small rang so that the value of a pot or slider will result in no change if the length of the pot-movement is shorter than the length of the Deadband-range. Am I right?

Link to comment
Share on other sites

Yep.

And just to complete this:

if you look at the MF-Page you can read:

later a hysteresis loop had been added to the firmware in order to prevent the unstable state, where the fader is very close to the target position, but never reaches it exactly, and therefore oscillates around this position. This hysteresis feature has been replaced by the so called "deadband" in the meantime - this is a threshold value which defines the area of a value range where mismatches are ignored. The mathematical term:

"target_position_reached = ABS(target_position-current_position) < deadband"

if you search the forum you get:

http://www.midibox.org/forum/index.php?topic=5272.msg32427#msg32427

If you still notice the flickering values, you have to reduce the resolution of the AIN driver. The easiest way is to increase the value which is passed to MIOS_AIN_DeadbandSet (7 means: 7bit resolution, 15 means: 6bit resolution)

and:

http://www.midibox.org/forum/index.php?topic=725.msg4145#msg4145

The deadband itself is just the value range in which changes are ignored. For example, if the analog input has some noise which causes jitter, you can increase the deadband in order to filter the unwanted changes. With an increased deadband value you also decrease the resolution. For a 10-bit value a deadband of "0" is recommented. For a 7-bit MIDI value, a deadband of "7" is perfect (just try it to find out the difference).

The PIC16F firmwares are working with a deadband of 7 by default.

Maybe an additional hint: if you search the forum while being in a thread, the search is filted by that topic!

As the C-Section is relatively young, you will miss important informations from the huge Assembler section. So try hitting "midibox.org Forum" first ;)

Link to comment
Share on other sites

Yes, thats it!

Please: add this description to the Wiki (http://www.midibox.org/dokuwiki/doku.php?id=mios_details_ain_deadband) so that it won't get lost, it's really good and could be enhanced later if required.

Best Regards, Thorsten.

Slowly! First I need to know what the parameter value in the MIOS_AIN_DeadbandSet(unsigned char deadband) function do? Because the type of the parameter value deadband is unsigned char it can range from 0 to 255. What is the effect of this parameter value?

Link to comment
Share on other sites

Normaly you are using a deadband of 7 for 7bit, 3 for 8 bit, 1 for 9 bit, 0 for 10 bit resolution. There is no need for providing values higher than 255, therefore it's only an unsigned char (this saves memory)

What is the effect of this parameter value?

did you write this question before or after you've read audiocommander's quotes?

Best Regards, Thorsten.

Link to comment
Share on other sites

In this case the distance between a value change (-> USER_AIN_NotifyPin() is called) is 3, 5, 6, 7; accordingly the hook might be called more often then required.

Calculation example: a common 7bit CC should be sent, the 10bit conversion result is rightshifted 3 times to get the 7bit value (the same as if the conversion value would be divided by 2^3 = 8 )

lets move a pot from 0 to 25. With a deadband of 6 following values would be propagated to USER_AIN_NotifyChange: 0, 7, 14, 21

The converted 7bit values are: 0, 0, 1, 2

With a deadband of 7 (which is the recommented value for 7bit transformations), USER_AIN_NotifyChange will only be called three times:

0, 8, 16 - and the converted 7bit values are: 0, 1, 2

Best Regards, Thorsten.

Link to comment
Share on other sites

First I need to know what the parameter value in the MIOS_AIN_DeadbandSet(unsigned char deadband) function do? Because the type of the parameter value deadband is unsigned char it can range from 0 to 255. What is the effect of this parameter value?

just 3 lines above your reply, I copied and pasted for you:

[tt]"7 means: 7bit resolution, 15 means: 6bit resolution[/tt] (...) [tt]For a 10-bit value a deadband of "0" is recommented"[/tt]

This is the second time, my copy-and-pastes for you out of the infos that can easily be found on ucapps & the forum were ignored.

I'm out of this game >:(

==> http://www.midibox.org/dokuwiki/doku.php?id=forum_netiquette

Link to comment
Share on other sites

This is not correct, and I must say: I'm also out of the game; it doesn't make much fun to "discuss" with somebody who ignores most of the previously written stuff. Hope that you at least know, that MIOS is copyrighted and especially not allowed to be sold via Ebay...

My last hint: you can easily find out the real behaviour by doing some experiments on a MIDIbox.

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...