> Ok, I’ve begun to read the files from the MIOS d/l page
> and i’m beginning to see some structure in it. I’ve also
> d/l all the software that’s needed for writing the code
> and all. Haven’t installed it yet, so i don’t understand
> what activeperl is for.
without perl you are not able to convert the assembler code
to a SysEx (.syx) file, which thereafter has to be uploaded
to the core module by using MIDI-Ox
> Anyway, I looked at your SID control surface and i see
> something that resembles the Yamaha A3000 interface. Is
> it so that the rotary encoders beneath the display control
> the functions that are currently displayed exactly above the
> encoders on the LCD?
This is planned for Step-C of the control surface. Currently
the handling is different, see the Step-A introduction under
Projects->SID->Control Unit
However, the integration of more encoders is easy.
> If so, i could use this as a skeleton for my own control
> interface, right? I’m thinking about making it in such a
> way, is this still possible if i can’t use your SID CS
> as a skeleton?
yes, you can use it as skeleton, all files which begin with
cs_ are the code for the control surface itself
> Oh, and the rotary encoders on the A3000 can also be used
> as (digital?) pushbuttons. Is something like that easily
> integrated into MIOS? Would be very cool…
just connect the terminals of integrated push-buttons like
every other button. Button changes will be notified
in sid_din.inc and forwarded to cs_menu_buttons.inc
> All the CC messages and sysex messages that i want to use,
> will have to be put in MIOS_TABLES.inc, right?
No, mios_tables.inc are a standardized way to react on up
to 256 different common MIDI controllers (like CC or notes)
which are received from the MIDI In. SysEx is not supported
by this “simple” method.
If you want to receive more than 256 values, or if you plan
to parse SysEx streams, you could to program your own handler
instead (see the *_mproc.inc file).
However, possibly you don’t want to receive data, but only
transmit data, in this case ignore this and just use your
own table format
> I looked at the snippet you posted above for sending sysex
> to the DB50XG, but i don’t understand something. Why is
> it that the number of lines in your sysex message as less
> than what it says in the DB50XG manual? In other words, You
> only input the midi channel, parameter number and the parameter
> value. In the manual it says that you also have to send the
> following sysex messages if you want to change the variation
> effect type to for instance Echo:
there are different types of SysEx messages, I used only
a small supset. The high address corresponds to the MIDI
channel so far as I remember…
> So my question is, why are there less strings/messages/whatever
> in your snippet for sending sysex to the DB50XG? And if i have
> to do it like i described from the manual, can i put all of
> these ‘blocks of messages’ into MIOS_TABLES.inc?
exactly - but never into mios_tables.inc, you have to create
your own table. Advantage: in this way you can also insert
additional infos about the parameters, for example the full
name (string), the output number format, the function which
should be called when the parameter should be sent out, etc.
Everything in one line for each parameter - this will simplify
the maintenance.
> Display question. It’s possible to display for example the
> actual delay time in ms instead of the decimal/heximal
> value on the lcd that you have to input in the sysex
> message, right?
> If so, do these tables with conversion values to ms
> (there are about 9 of them) have to put into MIOS_TABLES.inc
> or do they have to be somewhere else?
yes, you can do this by creating additional tables
(not mios_tables.inc ---- this is a standard table which can
be found in every application for some system functions, put
your own tables into another file)
Example: see cs_menu_tables.inc
> How much space is there in the MIOS to build a menu for the LCD?
Your application has about 16k, and with every BankStick you have
additional 32k. So, if there are too much strings, just copy them
into the BankStick. You could also write the whole table into
the BankStick.
> You also got an DB50XG Thorsten ( that’s what i’ve understood!),
> so you know how big the menu could be. I want almost every
> parameter to be accessed from the menu if possible.
> The menu should also diplay all correct values and names of
> effects, parameters and values. Some encoders have to control
> functions that are diplayed above them on the display as yoy
> go through the menu, other pots, encoders and buttons should
> control fixed functions. Would there be enough space in the
> PIC to implement all of this?
when you program it on a good way: yes
> One thing i don’t understand about the bankstick. Is it possible
> to implement a code into the MIOS that allows two buttons to
> directly load and save a setup into the bankstick?
you mean “into your MIOS application”
Sure - there are functions which allow you to write and read to/from
BankStick - your application can react on a button event and
do anything with the BankStick
> Or have i overlooked it and is this code already present in MIOS?
no, this wouldn’t be much usefull as this is a very application
specific function (i.E the SID Control Surface has a different
Bank management compared to a MIDIbox64 or a MIDIbox64 SEQ)
> Isn’t there any space in the PIC for saving user setups?
> Or will this space only be used to implemnt future functions?
You’ve 256 bytes in the integrated EEPROM, you could also write
into internal flash, but this depends on the space which is
required for your application itself. The MIOS program space
is reserved and will never be greater than planned (goes from
0x0000-0x3bff)
Larger setups should be saved into a BankStick
> And how is midi feedback handeled by the hardware or MIOS?
MIOS merges all incoming events with your own events when you
enable the merger with “MIOS_MIDI_MergerSet”. You only have
to ensure that you never send an incomplete MIDI event
>Do you know of any sites or ebooks that have some really
> good info for starting PIC programmers? When i search with
> google i get so many sites, i don’t know which ones are any good!
http://www.piclist.com
unfortunately not too much info about the new PIC18f family…
http://www.microchip.com
look for the PIC18F452 datasheet (especially the chapter about assembly
instructons is interesting), the PIC18F manual and the
application notes
Best Regards, Thorsten.