Jump to content

Question about MIDIO128 V3 & midi file player


jjonas
 Share

Recommended Posts

Thanks for testing! :)

There is a new version: http://www.ucapps.de/mios32/midio128_v3_011_pre2.zip

with following changes:


MIDIO128 V3.011pre2
~~~~~~~~~~~~~~~~~~~

o rotary encoder now selects the tempo (BPM) in main page

o BPM mode can be switched between Auto/Master/Slave by pressing
shift button + soft button 2

o MIDI recorder: tempo now stored in MIDI file

o record event monitor: display input port name instead of output port name

o record event monitor: display "DIN" instead of "Def"(ault) when DIN
generated events are recorded

o only in this pre2 release: whenever the next/previous file is selected,
the searched files are listed in the MIOS terminal

o MIDI router config: renamed SrcD to DstP
[/code]

Something else happened that locked up the MidiBox has to do with the file system processing.

I wasn't able to reproduce this.

But in this pre2 release I enabled some additional debug messages for the file selection: the searched files are listed in the MIOS terminal.

So: if it happens again, please show me the terminal logfile

Something else I don't understand is the “Def.” selection in the “Rout” tables. All I can think of is that it stands for “Define” and when selected, the table entry is not used. Is this the case?

Def. stands for "Default" - actually this is a free assignable port (normaly USB1, but could also be MIDI1 or MIDI2)...

This feature isn't configurable in MIDIO128, but I could enable it in future.

One of the usecases: if you've two MIDI synths connected to OUT1 and OUT2, and only one of them should receive MIDI events from multiple INs, you could assign the default port to this OUT and change the default port assignment at a single place in order to select the synth. The router configuration doesn't need to be changed in this case.

I know that the original player outputs its data to all ports when playing. Was it in the plan to add both the REC and PLAY options to the Router tables so that you can select the patches? I can only assume it is since there was talk about masking channels from the playback function.

No the REC/PLAY port and channel selection won't be available in the MIDI router page, as this feature is based on a "plugin" which doesn't allow extensions.

Instead, I will add a new configuration page to the MIDI menu.

All other issues fixed (see changelog) - even the minor ones (I'm always interested on unexpected or confusing names)

Best Regards, Thorsten.

Link to comment
Share on other sites

  • Replies 66
  • Created
  • Last Reply

Top Posters In This Topic

Based on how may responses you are getting on your new features Thorsten, it looks like I am the only one with a unit to test them. Or maybe the interest isn't there. I don't know if this is very good since I would want more feedback about how it works which I don't think we are getting.

All of the following relates to the Midio128 V3.011pre2 build.

I wonder if I found what happened with the Midio128 unit locking up. But it doesn't seem to be anything that I said in my previous message. To lock it up just pop the SD memory card out of the slot and start the record function. The software locks up tight every time. I know I did some of this testing on the previous release but I didn't relate it to locking up for some reason.

I also noticed that you added code that when backing up in the file structure that you loop back to the last entry. This was only working when going forward on the previous release but it is now much easier to get to the last file that was recorded on the card under POR conditions. I wasn't going to even mention this but thanks, it work great.

I don't know if this is a issue or not but when I remove the SD card and then insert it again, the software doesn't seem to reset back to the first file. I don't see this as a problem since it just seems to work properly, even if I change cards. But was wondering what would happen if it was pointing to a file and I popped the SD card and made changes with a PC that included removing or changing that file entry. It would seem like you have some fairly complicated software to make sure that things didn't get mixed up but I just don't know. Just wondering if this is an issue that might be a bug in the future.

I noticed that when I get to recording file names that are displayed as REC10.MID or larger, that the file pointer on the right side of the display starts jumping left and right on the display since the file string being one character longer. This is seen when the display is alternating between the “*RECORDING* 15. 5†message and the “REC10.MID 15. “ message. The last character in the field is going past the last character on the display. Not a big issue but its there.

I am surprised at the amount of functionality that has been added to the TEMPO feature. I was expecting something simpler like always recording at a 120 BPM rate and only being able to change it when playing back a file. But what we have is something that I guess might be found in a real Midi studio player/recorder. BTW-I don't know much about these features since I have never needed them or used units that could even function with them. Things like if I set it to SLAVE mode, it doesn't play the song at all. I think it is just waiting for a train of Midi “Timing Clocks†(0xf8) to be received to define the tempo. And MASTER mode probably sends the 0xf8 command based on the current TEMPO knob settings (as a guess but not verified). I also noticed that when cycling thru the BPM modes, it takes 2 pushes of the button to move out of AUTO mode.

I don't know now many people will use these different modes of AUTO, MASTER, and SLAVE but it seems like over-kill to me. I'm not even sure what AUTO mode does. I would probably want a tempo mode to ignore any 0xf8 commands and never send them and would set the BPM selected rate at the start of the record session and never modify it since it inversely affects the BPM rate when played back. On play back have the tempo set to the parameter in the Midi header, like it does now, but allow the user to change the tempo from the encoder knob while playing. Maybe this could be a 4th mode called Manual?

Respectfully, Pete

Edited by kpete
Link to comment
Share on other sites

Based on how may responses you are getting on your new features Thorsten, it looks like I am the only one with a unit to test them. Or maybe the interest isn't there. I don't know if this is very good since I would want more feedback about how it works which I don't think we are getting.

For what it's worth, I hope I'll have a unit running this weekend, I just need to put the enconder + buttons on it, and that's it. I'll then test the firmware at least concerning the functions I have planned using.

Link to comment
Share on other sites

Ditto, all my LPC stuff has been in bits whilst it was moved to a new enclosure, I then got the man flu and am currently in bed wishing I could stop coughing for long enough to put it back together.

Have loaded the application so it won't take long when I do recover.

Does this application output to MIDI Out 3 & 4?

Link to comment
Share on other sites

I finished my build 30min ago and tested a midi file I have been making for band practice background and which I exported from Rosegarden. It works just like when Rosegarden is feeding the midi data into the synths! Just what I was looking for. TK better prepare for a beer.

As to testing, obviously I haven't had too much time for that yet, but when I was testing the Rewind / Fast Forward function, I noticed that when you try to FF beyond 35 bars, the song starts from the beginning.

Before further testing I'll have to read the user instructions carefully (as far as midi file playing is concerned), I'll do that on the weekend.

BTW here's my build :-)

8210722601_afba41cc3b.jpg

Link to comment
Share on other sites

Again: thanks for the valuable feedback! :)

We've a new pre-release: http://www.ucapps.de/mios32/midio128_v3_011_pre3.zip

With following changes:


MIDIO128 V3.011pre3
~~~~~~~~~~~~~~~~~~~

o application doesn't hang-up anymore if recording is enabled while
no SD Card connected

o first MIDI song already selected after boot

o play modes: aside from All and Single, we've now also a "Loop" mode
which repeats the selected song

o a fourth clock mode has been added: "Lock". It prevents tempo changes
from the MIDI file. The BPM generator is always in master mode.

o the "MIDI" page has been renamed to ".MID"

o if you scroll the .MID page to the right side, you will find configuration
options for MIDI ports assigned to the Rec/Play/Clock IN and Clock OUT functions

o all new options can now be stored/restored into/from .MIO files
[/code]

I wonder if I found what happened with the Midio128 unit locking up.

(hopefully) fixed.

> I also noticed that you added code that when backing up in the file structure that you loop back to the last entry.

Yes, sometimes I'm doing undocumented changes :)

> I don't know if this is a issue or not but when I remove the SD card and then insert it again, the software doesn't seem to reset back to the first file.

fixed. Now the first .mid file will be selected (also after power-on)

>I noticed that when I get to recording file names that are displayed as REC10.MID or larger, that the file pointer on the right side of the display starts jumping left and right on the display since the file string being one character longer.

fixed.

> I am surprised at the amount of functionality that has been added to the TEMPO feature. I was expecting something simpler like always recording at a 120 BPM rate and only being able to change it when playing back a file.

Tempo can now be locked with the fourth MIDI clock mode option

>don't know now many people will use these different modes of AUTO, MASTER, and SLAVE but it seems like over-kill to me.

From my point of view the MIDI clock synchronization features are one of the highlights! ;-)

- Master mode: use it if a groove box, drum machine or even a MBSEQ V4 is connected to a MIDI Out to synchronize the .mid file with such a device

- Slave mode: same, but in the opposite direction. In addition, slave mode is the preferred choice if you want to synchronize the MIDI player with a DAW running on your computer

- Auto mode: automatically switches between Master and Slaves (whenever a clock is received, it switches to slave mode)

- the new Lock mode: Master mode selected, Tempo only controlled from control surface

Ok thanks for the clarification. I guess it's up to you to decide whether to implement a separate loop function, I'm happy now as it turned out that SINGLE plays the selected song only once, i.e. without loop.

implemented.

Have loaded the application so it won't take long when I do recover.

Does this application output to MIDI Out 3 & 4?

OUT3 and OUT4 are currently disabled due to the reason, that somebody requested to enable all J5 pins for analog pots (AIN entries).

MIDI3 would allocate J5 pins as well, so we've a conflict here.

I could enable MIDI4 (at J4B), but fear that users would be confused about the non-working MIDI3.

Therefore I'm still searching for a solution to make the configuration as fool-proven as possible (so that somebody doesn't run into unnecessary HW troubleshooting sessions if he isn't aware of these dependencies)

Probably the most simple way would be to provide only 6 AINs, and to assign J5B.A6/7 to MIDI3 by default

I finished my build 30min ago and tested a midi file I have been making for band practice background and which I exported from Rosegarden. It works just like when Rosegarden is feeding the midi data into the synths! Just what I was looking for. TK better prepare for a beer.

Cheers! cheers.gif

As to testing, obviously I haven't had too much time for that yet, but when I was testing the Rewind / Fast Forward function, I noticed that when you try to FF beyond 35 bars, the song starts from the beginning.

The MIDI player is probably in 'All' mode, which automatically loops through all .mid files.

If only one .mid file is stored on SD Card, it will play the same multiple times.

Just enable Sngle Mode

BTW here's my build :-)

Great! :)

(my very first MIDIbox was built into a satellite tuner, therefore I like such constructions!)

Best Regards, Thorsten.

Link to comment
Share on other sites

The MIDI player is probably in 'All' mode, which automatically loops through all .mid files.

If only one .mid file is stored on SD Card, it will play the same multiple times.

Just enable Sngle Mode

EDIT: The following is based on the pre3 release.

I might be wrong (there might be a setting I've overlooked etc.), but I think that is not the problem. Here's some results I got this morning with a song that's 150 bars long and in Single mode. If I just select the song and press play, it plays fine from beginning to the end, moves location back to 1.1 on reaching the end of the file, and stops there.

When a file is playing, Fast Forward works ok up to the point where you want to FF from bar 35 onwards. If you want to FF from bar 35 to 36, the player jumps to bar 2 instead (i.e. not to the beginning as I mistakenly said earlier). Below the accuracy is on bar level, as the tempo of the song I'm using (150bpm) is too fast to register sixteenths. (I could use the new and very useful tempo function here too, but maybe we can manage with this :-)

Likewise:

- when FFing from 40 to 41, player jumps to 7

- when FFing from 50 to 51, player jumps to 17

- when FFing from 60 to 61, player jumps to 27

- when FFing from 68 to 69, player jumps to 35

- when FFing from 69 to 70, player jumps to 1

- when FFing from 70 to 71, player jumps to 2

When a file is selected but not played and you try to FF from 35.1 to 36.1, the player jumps to 1.14 instead.

With Rewind you get:

- when rewinding from 36 to 35, and with all smaller numbers than this, the player works as expected

- when rewinding from 37 to 36, the player jumps to 2

- when rewinding from 40 to 39, the player jumps to 5

- when rewinding from 50 to 49, the player jumps to 15

- when rewinding from 60 to 59, the player jumps to 25

- when rewinding from 70 to 69, the player jumps to 35

- when rewinding from 71 to 70, the player jumps to 1

- when rewinding from 90 to 89, the player jumps to 20

When you stop the file at 37.1 and try to rewind to 36.1, the player jumps to 1.14.

Another thing related to FF/rew: when a file is playing and you press stop, and then play again, the playing continues from the same place. This is good. However, if you stop a playing file, then FF or rewind to a place you want and press play, the file starts from the beginning. It would be useful if you could FF/Rew to a place you like and then start playing the file from there.

Edited by jjonas
Link to comment
Share on other sites

I'm not able to reproduce this...

@jjonas: could you please send me your .mid file in a zip package via PM?

Btw.: I'm currently working on a new feature which will not only be useful for MIDIO128, but also for other MIOS32 applications which store files on a SD Card.

-> a filebrowser which communicates with the application via MIDI!

mios_studio_filebrowser.png

Advantages:

- no need to switch to MSD mode anymore, files can be transfered on-the-fly

- pretty fast communication (in the example above, a 2 MB file has been received with ca. 50 kb/s!)

- a text and hex editor will be integrated as well, which means that configuration files can be directly modified in MIOS Studio :)

Best Regards, Thorsten.

Link to comment
Share on other sites

Thank you! I was able to reproduce the issue with this .mid file very quickly! :)

An update will be available soon, first I would like to check if the MIOS32 update helps to overcome the USB MIDI issues under Windows:

On success I will enable 4 USB MIDI ports for MIDIO128, which will be especially helpful if MIDI IN/OUTs should be routed to separate USB ports.

Best Regards, Thorsten.

Link to comment
Share on other sites

Here's the update:

http://www.ucapps.de/mios32/midio128_v3_011_pre4.zip


MIDIO128 V3.011pre4
~~~~~~~~~~~~~~~~~~~

o USB device settings have been changed.
IMPORTANT: please install MIOS32 Bootloader V1.009 before uploading
the application! Otherwise code upload via USB won't work anymore!
(Backup: upload via MIDI IN1/OUT1)

o 4 USB ports are enabled now.
Note: if your operating system still displays only a single MIDI port for USB,
then unplug the USB cable and remove the USB MIDI driver in your system setup,
so that the driver be installed again once the core module has been re-connected.
E.g. under MacOS this can be done with the Audio-MIDI Setup application
(search for "Audio" in Spotlight)

o 4 MIDI IN/OUT ports are enabled now.
Pin mapping for LPC17 (see also http://www.ucapps.de/mbhp/mbhp_core_lpc17_midi3_midi4_extension.pdf):
- MIDI OUT3 is available at J5B.A7
- MIDI IN3 is available at J5B.A6
- MIDI OUT4 is available at J4B.SD
- MIDI IN4 is available at J4B.SC

since MIDI IN3/OUT3 allocate analog input pins, AIN Pin #6 and #7 is
not available anymore!

o support for MIOS Filebrowser, which will be part of MIOS Studio 2.4

o fixed FFwd/FRwd function

o song not set back to 1.1 if song position was changed while
sequencer was paused
[/code]

Enabling all 4 MIDI IN/OUT ports will be a test, if anybody really uses AIN Pin #6 or #7 ;-)

Reminder: link to MIOS32 Bootloader V1.009:

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Thorsten,

FYI - Well I know I did something bad but was able to recover from it using the Midi In1/Out1. After loading the V1.009 bootloader over the USB cable, I powered my Midio128 unit off and then on again before loading the new application. Just warning you guys, DO NOT do this unless you have a backup plan. It gives me the message “Bootloader is up-to-date!†on the display but the USB connection doesn't work any more. I went to the backup plan using Midi In1/Out1 but had some problems getting MIOS Studio to recognize my USB->Midi converter box. Its a “CakeWalk Music Connector 1†with the advanced driver switch set to the OFF position. Even when I tried doing the “Rescan MIDI Devices†function and reselecting the MIDI IN and MIDI OUT windows on MIOS Studio, it still didn't work. Had to close the application down and bring it up again to get it to work. I've had this very issue happen before and the only solution is to close and reopen MIOS Studio.

Since I now have V1.009 bootloader and the V3.011pre software, its having problems communicating with my MIOS Studio 2.3.1. I am running on Windows 7 and you talked about deleting the drivers on the PC. Where do I go to delete them? I don't know if this will fix my problem or not. I did notice that the first Midibox ID is called Midio128 while the other 3 are called MIDIIN2 MIDIIN3 and MIDIIN4.

Pete

Edited by kpete
Link to comment
Share on other sites

I updated to bootloader 1.009 last night and then uploaded pre4 (all via USB), and for me it went fine (I was using MIOS studio 2.3.0. on Wine on Ubuntu). I tested the FF/Rew function and song position after pausing, and they work for me now. Also you can now see the song position when you're FFing/rewinding. Super! :-)

As a separate matter, just bouncing off kpete's comment, not necessarily responding to him: I have two USB-midi cables, one of them is a Cakewalk one, and I've have problems with it, whether "advanced" switch is on or not - not only with LPC17 core but also the PIC based core (with MBSIDv2). What did work (and what I've been using since) was a few euro cheapo cable that I bought later on eBay. That has been my answer to USB-midi communication with midiboxes ever since :-)

Link to comment
Share on other sites

What did work (and what I've been using since) was a few euro cheapo cable that I bought later on eBay. That has been my answer to USB-midi communication with midiboxes ever since :-)

The problem with these is that you don't know what you get until you test them in your setup. Unfortunately, chances are that they will not work properly, as evidenced in the blacklist over in the wiki. It seems you got lucky, but it's rather the exception to the rule I would say.

Link to comment
Share on other sites

Thank you jjonus for the info on the CakeWalk USB-Midi unit I am using. Will pick up a different one in the future to see how it works.

I want to add that I uploaded the bootloader from the directory mios32_bootloader_v1_009.zip\mios32_bootloader_v1_009\MBHP_CORE_LPC1769 since this is the board that I am using. Is this right?

Update: Found that whenever the Midibox is powered Off then On, that the MIOS Studio QUERY function doesn't work. You can see it retry multiple times but no response. If I push the > button a few times it started working. This was repeatable about 5-10 times than it locked up solid again. To fix it I had to restart MIOS Studio again. But once the Query works once, it keeps working until the Midibox is powered off and then on again. The problem just isn't always repeatable to get it working again. It sometimes starts working with just rescanning the Midi ports. All I know is that it doesn't come up in a usable state. Maybe the issue has to do with initializing variables on POR or something like that.

Pete

Edited by kpete
Link to comment
Share on other sites

Yes, you selected the right bootloader binary.

I think that I should replace the "rescan MIDI devices" option by a message box which informs the user, that it doesn't work reliable, and that it's better to restart MIOS Studio instead!

It would be interesting to know, if you restarted MIOS Studio after the update, and after reconnecting the USB cable?

Best Regards, Thorsten.

Link to comment
Share on other sites

I didn't see your response so I thought I would just do an update. Sorry

I didn't restart MIOS Studio the first time after loading the new bootloader. But since then I must have tried 100 different times to come up with a pattern. With your comment I am currently closing Mios Studio, then power cycling the MidiBox, then starting MIOS Studio after the indication the USB port is active. It is failing on bring up. If I reselect the Midi IN and OUT on MIOS Studio to the MIDIO128 port it doesn't even show the auto QUERY request being sent out. From this state the only way that I have been able to get things to work every time is to press the > function key that causes the MidiBox to send out a test message that displays the next file name. It takes about 3 presses of the key to start seeing the messages. From here on out everything on the Midi side seems to be working.

Now if I enable MSD mode from the MidiBox and try to copy the mios_studio.exe file onto the SD card it crashes with a “!! HARD FAULT !!†message at PC=0x511c244c. I have caused this failure a few times but the PC address was different each time. After this error I have put the SD card directly in a port on my PC so I can run a check disk and fix anything that might have been clobbered.

I also took my MidiBox to another PC with Windows XP. I loaded MIOS Studio 2.3.1 and tried to see how its different from Windows 7. It seems to work fine. I did have to do a rescan of the Midi ports if I power cycle the MidiBox (as expected) but the Query works every time.

Hope this information helps.

Pete

Link to comment
Share on other sites

Getting slightly different results here.

Bootloader update and application loaded fine.

Restart everything, Core not recognised until a few presses of < or > then all seems OK.

Mounting the card works, but unmounting causing the Core to be lost from MIOS Studio.

Restart MIOS Studio, core can be seen without unplugging the USB or pressing < or >.

Instead of pressing the <> buttons, might it be better to use the encoder to select a MIDI file?

I'm using WIn 7 for this, not tried on XP.

Link to comment
Share on other sites

I was able to reproduce this

From this state the only way that I have been able to get things to work every time is to press the > function key that causes the MidiBox to send out a test message that displays the next file name. It takes about 3 presses of the key to start seeing the messages. From here on out everything on the Midi side seems to be working.

Looks like the known multi-USB port issue under Windows is still not solved! :-(

Could you please try following release:

http://www.ucapps.de/mios32/midio128_v3_011_pre5.zip


MIDIO128 V3.011pre5
~~~~~~~~~~~~~~~~~~~

o Number of USB devices temporary set to 1 again

o OUT4 can now be selected in all config pages
[/code]

USB MIDI should be available immediately without pressing buttons multiple times. (background: the '>' button sends some messages. Once enough messages are sent, Windows accepts the USB MIDI connection and continues as normal... for unknown reasons)

This weekend I've the possibility to test this on a Win7 PC

Now if I enable MSD mode from the MidiBox and try to copy the mios_studio.exe file onto the SD card it crashes with a “!! HARD FAULT !!” message at PC=0x511c244c. I have caused this failure a few times but the PC address was different each time. After this error I have put the SD card directly in a port on my PC so I can run a check disk and fix anything that might have been clobbered.

MSD is really hard to debug. This code hasn't been developed by myself, it's based on an example from NXP and there are some parts in the code that I don't really understand...

However, the upcoming MIOS Filebrowser will help to overcome this issue! :)

Instead of pressing the <> buttons, might it be better to use the encoder to select a MIDI file?

Not so easy, because switching between MIDI files takes so much time, that they can't be selected without the "feeling that something got stucked".

Button Inc/Decs are slower (because you can't push the button fast enough), therefore you haven't noticed this performance issue.

The same for FRwd/FFwd

A workaround would be, that I stop the file operations when the encoder has switched to the next file (because you won't listen to a temporary selected file anyhow), but the implementation won't be straightforward.

Am also getting no output from OUT 3 and 4.

Works at my side - please check if you've enabled OUT3 and OUT4 in your .MID setup

Somebody requested to make the MIDI port selection option - and your confusion might be the result ;-)

From the AINS menu, OUT4 isn't shown.

Fixed

Best Regards, Thorsten.

Link to comment
Share on other sites

Tested V3.011pre5 release that changed back to 1 USB Midi port and it works fine now. Doesn't lock up and using the RESCAN function on MIOS Studio works every time.

As far as the MSD crash, it still does. I don't know when this crept into the builds since I thought I tested this early in my testing.

BTW-If you remove the SD card and use the control panel switches to enter MSD mode, the MidiBox switches lock up with no errors on the display and you get a message on the PC indicating that the disk needs formatting. This may be just another problem with writing files. I saw this issue before we upgraded to the new bootloader. Just forgot to mention it.

Pete

Link to comment
Share on other sites

Hi everybody and TK!

I have just joined to the community, as I built my first MIDIbox project yesterday! It is working fine! Many thanks to TK, as it is a really flexible and useful project.

I built a MIDIO128 v3 for midifying an organ console. It is working really fine. I am using a matrix for scanning the keyboards.

I have only one question (or request for improvement). Would it be possible to add a flag to invert the behaviour of the matrix. I mean there is a flag for DIN (midio_patch_cfg.flags.INVERSE_DIN). As I saw there is nothing for the matrix like this. I think it would be useful - especially for me :)

Or is there an other way to do this?

Thanks!

Cheers!

Marton

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