Jump to content

Meta event


superdavies
 Share

Recommended Posts

Hi to everyone

For my midibox64 project i'm using the mk_sys and the file in it called "midibox64.ini"; I made some changes in the .ini file and all works for my needing; but I have some question, because I need more.

Is it coded in C? If so why I can't see files like main.C ecc?

I need to make up other changes but I can't understand where I have to made them and how:

These are my needs: I would like to assign some metaevent to some dins...very easy messages like this:"when you push the button assigned to din number 1, the value of controller assign to pot 2 must go to 40, the value of controller assign to pot 5 must go to 0, and so on; in other words, a single din "telling" to all the value of some controllers to go to a specific value from 0 to 127. is it possible?

Second question: there's the possibily, as I can understand with metaevent too, to choose beetween the pots rows? I try to explain: we have two dins with metaevent and two potrows of 15 pot each, by pressing the first din only must work the first row, by pressing the second din only must work the second row possibly making snapshot like on startup.

Is it possible? Anyone would like to help me with coding? :)

Thank you very very much!!!

Superdavies

Link to comment
Share on other sites

Hi,

mb64 is written in ASM.

this sounds like you possibly want to program your own application.

see here:

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

and here:

http://www.ucapps.de/mios_c.html

there are lots of examples on the bottom of that page, for example like this one:

http://www.ucapps.de/mios_c_send_din.html

If you know a little bit C or any other programming language, this should be no big problem.

Although you should of course consider that mb64 has many cool features your own app won't have (at least not until you re-program these. You might also want to check out some C-based applications from the ucapps download section and adapt these.

regards,

Michael

Link to comment
Share on other sites

ok

Let's talk for real.

I have seen all your links ( just seen so much times...) and I probably understand that for things I have to do it's better another application coded in C, so I choose ain64_din128_dout128_v2_0 . ( also for the reason that I don't need the lcd)

So I need to assign a "metaevent" to some of my dins for doing things I told yesterday ( pressing a din cause some controller to go to a specific value ) How can I start?

suggestions?

Thank you very much!!!

Andrea

Link to comment
Share on other sites

First of all, I'm not really sure what you mean with "meta-events".

There's a meta-event used in Java meaning System-Realtime messages (like Timecodes, SongPositionPointers etc.; also see => http://www.midibox.org/dokuwiki/doku.php?id=midi_specification ), but I think, you just want to control different variables with your Encoders/Pots or reset their values to some specific content when you press a button (like a "reset"- or "shift"-key). That should be pretty easy, that's what I gave you the links for.

You have two basic functions in the C-Skeleton for that purpose:

- DIN_NotifyToggle() that gets called whenever a button is pressed

- AIN_NotifyChange() or ENC_NotifyChange() which get called whenever a Pot or Encoder has been turned (for Encoders you also need to edit mios_tables.inc)

The rest is just changing and setting variables. If you don't know how to do that, you should grab a basic C-Book and learn. If you have some experience in programming, you should be able to complete this task in a weekend; if you're a bloody n00b (;D) don't be scared, once you know these C-basics you can also program PHP,JavaScript,ActionScript or any other similar language, 'cause in theory it's all the same, just the syntaxes are slightly different.

Do concentrate learning about variables (types, declarations and scopes) and functions.

Avoid multiplications and divisions as well as any include-files from standard-libraries (eg. <stdio.h> or something like that, 'cause these are not available on MIOS).

Everything you can use with MIOS is listed in the MIOS-function ref:

http://www.ucapps.de/cmios_fun.html

Regards,

Michael

ps: even if you don't need an LCD, you should connect one. It helps developing a lot if you see what's going on, else it's more like guessing than knowing...

Link to comment
Share on other sites

Yes

In my thought, meta events stands for many midi events by pressing a button or turning just one pot.

Ok, I'm learning C but for me it's a little bit difficult, I try so many times also with differents apps in asm, in c and so on but, also for the english language that is not mine, it's not so easy for me!

Many people tell me just a couple of days, just a week and things like these but it's three months and still can't understand so many things!!!

Ok, just tryin' another time understanding C but I'm a bit demoralized...

No problems with electronics but BIG probles with programming!!!

Thank for your help.

Andrea

Link to comment
Share on other sites

  • 2 months later...

I'm working on an application in C that does something similar to what you are asking. Maybe I can help if this is still a valid project for you.

For your project:

With 99% certainty, you can get DIN1 to only send the "top" row CC values and DIN2 to only send the "bottom" row CC values.

When you say "pots", do you really mean rotary encoders? It seems like you should be using rotary encoders if you want buttons to change the current value of a knob. For instance, if a knob is rotated 100% and your button tells it to send 0, you will not be able to raise the parameter anymore with a pot. It would be fine with a rotary encoder. Then again, I'm not a hardware guy, so hopefully I'm not giving bad advice.

Link to comment
Share on other sites

For instance, if a knob is rotated 100% and your button tells it to send 0

Most synth/controllers use a soft takeover function for that - the knob does nothing until it's value reaches the target (0 in your example) and then it's movement is tracked (so in your case you would turn the knob to 0, and then turn it up)... That said, encoders are certainly a better solution.

Welcome aboard!

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...