Jump to content

MIDIbox SEQ V4 Release + Feedback


TK.
 Share

Recommended Posts

Yes, it will be integrated into the Juce based emulator.

 

Of course, it can be compiled for Linux, and with a newer Juce version it should even be possible to compile it for a Raspberry Pi which then will be the cheapest solution to connect the controllers. ;)

 

Best Regardsm, Thorsten.

Link to comment
Share on other sites

I've enhanced the BLM Emulation so that it supports Novation Launchpads, and I updated the MBSEQ V4 firmware so that it properly supports 16x8 matrices.
 
Up to 4 Novation Launchpads can be connected to emulate a complete BLM16x16+X, here only two for a BLM16x8+X
 
mbseq_novation_launchpad_mini.jpg
 
The BLM Emulator is currently only tested under MacOS, but it should also run under Windows and Linux.
@borfo: which OS do you prefer? I could build & test the binary for you.
 
Best Regards, Thorsten.

Link to comment
Share on other sites

I assume the top row of buttons selects the step page (steps 1-16, 16-32, etc.) - if you can let me know how the side buttons are set up, I'll write a "using novation launchpads as a BLM" article as my first wiki documentation article.  If 4 launchpads are connected, do the second horizontal row of round buttons, and the extra 2x8 columns of vertical round buttons do anything?

 

 

That reminds me, actually, I should also write a "using a Seq V4L as a force-to-scale device and midi effects processor" article, to document the use of that V4L force-to-scale LiveKeepChannel feature you added recently.

Edited by borfo
Link to comment
Share on other sites

Here is the MIDIbox SEQ V4 firmware: http://www.ucapps.de/mios32/midibox_seq_v4_087_pre1.zip

Here a (temporary) BLM build for Linux: /edit: removed, now available at http://www.ucapps.de/midibox_seq_manual_blm.html

 

After you've started the BLM emulation, select the MIDI IN/OUT port which connects to your MBSEQ. Don't take the 1st USB port (normally used for other purposes), I usually take the 3rd

In the MBSEQ MIDI->Misc page, select USB3 (for the 3rd USB MIDI port)

 

Back to the BLM emulation: select the "16x8+X" layout and click on the "Ext. Controllers" button and configure the MIDI ports to which your Launchpads are connected, and the "rotation" (this is freely configurable, but I only tested 270° for the first, and 0° for the second Launchpad as you can see on the photo above).

 

It's currently too late in Europe to give you more details (or test the BLM emulation under Linux)...

More informations tomorrow - just try out whatever is possible today.

It also makes sense to start a separate thread for this topic, because I think that you will have a lot of questions and proposals ;)

 

Best Regards, Thorsten.

Link to comment
Share on other sites

It works almost perfectly, and it's great.  Thanks so much for getting this working.  Amazing that you were able to do it so fast, too.  The only bug I've noticed so far is that sometimes the red step indicator line gets left behind, and sometimes notes disappear until the step indicator line makes its next pass.  Here's a video:

 

http://youtu.be/zgrTF639Nek

 

you can see the bug happening at around 17 seconds and 27 seconds.  Sometimes a red step indicator line is left behind until the step indicator makes its next pass.  In the video only one line is left, and it's left in the same place each time, but I've seen several red lines left at once, and they are not always in the same column.

Also, sometimes the green active steps disappear after the red step indicator line passes.  They are restored on the next pass of the step indicator. You can see this happening with the note in the first column of the second launchpad at the start of the video, and with the same note a few more times throughout the video.

 

It seems that the place(s) where notes disappear and step indicator lines are left depends on the layout of the notes shown on the BLM.  Different note patterns leave lines and have disappearing notes in different places.

When notes disappear from the launchpad, they also disappear from the onscreen display.  When the red line is left behind, it's also left behind on the onscreen display.

 

I'll save usability suggestions for a dedicated discussion thread.  Thanks again...

Edited by borfo
Link to comment
Share on other sites

One other thing:  I guess you're compiling MIOS Studio and the emulator on an i386 system?  They don't run on 64 bit ubuntu 14.04 unless you install some i386 libraries:

 

apt-get install libfreetype6-dev:i386 libasound2-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev:i386

 

They work on 64 bit linux if you install those libraries.

Link to comment
Share on other sites

Thanks for testing! :smile:

 

I was able to reproduce the problem, it only happened under Linux and was related to a special method that I added for MacOS.

It should be fixed now. The official binaries (MIDIbox_BLM_1_1) are now available under: http://www.ucapps.de/midibox_seq_manual_blm.html

 

The 32bit build is intended, because my good old Linux laptop which I'm using for testing can't run in 64bit mode, and I guess that some other users could have the same problem. A 64bit build won't give us any advantages anyhow.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

This new version is segfaulting shortly after the SEQ starts playing the sequence. It's fine as long as the SEQ is paused, connects to the launchpads, displays notes, notes can be toggled on and off, etc. But about 4 beats after playback is started, it segfaults.

If playback is already running when you start the emulator, and the current step is not displayed on the BLM (ie: it's in a different step page - eg: BLM shows step 1-16, the current step is step 31) it will run ok until the step indicator is shown. It will segfault about 4 beats after the indicator appears on the BLM.

The old version from yesterday doesn't segfault.

Here's gdb output:

(gdb) run

Starting program: /home/rob/Desktop/BLM1.1

[Thread debugging using libthread_db enabled]

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

[New Thread 0xf7831b40 (LWP 23578)]

[New Thread 0xf6b7bb40 (LWP 23579)]

[New Thread 0xf61ffb40 (LWP 23580)]

[New Thread 0xf57ffb40 (LWP 23581)]

Program received signal SIGSEGV, Segmentation fault.

0x080e7ee2 in juce::InternalMessageQueue::dispatchNextInternalMessage() ()

(gdb)

Edited by borfo
Link to comment
Share on other sites

Ok, these are no good news. :-(

 

As you can see in the diff, for Linux I'm calling the MIDI parser (which is doing some GUI updates) directly whenever new MIDI messages are received instead of putting the messages into a queue for later processing from a timer callback: http://svnmios.midibox.org/comp.php?repname=svn.mios32&compare[]=%2Ftrunk%2Ftools%2Fblm_scalar_emulation%2Fjuce%2FSource@2056&compare[]=%2Ftrunk%2Ftools%2Fblm_scalar_emulation%2Fjuce%2FSource@2058

 

This measure was necessary for MacOS, and it seems that it's also required for Linux (although the app didn't crash at my side... maybe because the timing conditions on my slow laptop are different).

 

On the other hand it seems that the queue doesn't work reliable under Linux - maybe because it isn't thread-safe.

 

I need some time to understand the backgrounds before I can provide a proper solution for Linux.

If anybody wants to try it out by himself: the sources are in the repository under tools/blm_scalar_emulation/juce

In order to build the application, just change to the Builds/Linux directory and enter "make"

 

Best Regards, Thorsten.

Link to comment
Share on other sites

I'm getting a compile error when I try to build - am I missing an obvious dependency?

 

Compiling UdpSocket.cpp
../../Source/UdpSocket.cpp: In member function ‘void UdpSocket::disconnect()’:
../../Source/UdpSocket.cpp:137:26: error: ‘close’ was not declared in this scope
     close(oscServerSocket);
                          ^
 
######## That's coming from here:
 
//==============================================================================
void UdpSocket::disconnect(void)
{
#ifdef WIN32
    closesocket(oscServerSocket);
WSACleanup();
#else
    close(oscServerSocket);
#endif
    oscServerSocket = -1;
}
 
 
Link to comment
Share on other sites

This is strange, something is different in your toolchain setup - I never had the situation that close() isn't available under Linux, maybe google will help you?

I'm using "gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"

 

However, I think that the change was successful: now the access to midiInQueue is protected with a lock.

Without the lock I can reproduce the error, with the lock messages won't get lost.

 

Here the prebuilt binary: http://www.ucapps.de/midibox_blm/MIDIbox_BLM_1_2.tar.gz

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Great! :)

 

 

sudo apt-get install libasound2-plugins:i386

 

ok, I added this info to the webpage:

apt-get install libfreetype6-dev:i386 libasound2-dev:i386 libasound2-plugins:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev:i386

 

Best Regards, Thorsten.

Link to comment
Share on other sites

I've only got two usability suggestions - this thing is totally usable as-is, but with these two additional things, I don't think the extra buttons on a 16x16 would really be missed.

 

There should be a way to toggle the tracks that are displayed between tracks 1-8 and 9-16.  Maybe button 3 on the right side could be a track toggle button: when green, tracks 1-8 are displayed, when red tracks 9-16 are displayed.

 

Is there currently a way to change which octave of notes is displayed on the BLM?  If not, it would be great if you could page up and down to display higher or lower notes.  Maybe a shift button could be added at the bottom of the right side buttons (on button 8), and shift+button 1-7 could select which octave is displayed on the BLM - if the octave select buttons lit to show which octaves have active notes, that would make it easy to see which octave-pages a user might want to look at.

 

 

...only suggestions though - this thing is very usable exactly as it is.  Thanks again.

 

edit:  this is soooo much better than using the lemur emulator...  Touchscreens are really no substitute for physical buttons...  Fun fun fun.

Edited by borfo
Link to comment
Share on other sites

I agree that these functions will be useful; let's collect more ideas before I implement the changes.

 

To summarize from my point of view:

- if 16x8 layout is selected, Button 3 should toggle between track 1-8/9-16 and indicate the current selected track range with the LED colour.

- a button to select alternative functions will be necessary. I will call it ALT (instead of SHIFT, because SHIFT is used for other purposes).

- ALT available at the lowest button (16x8 layout: Button 8, 16x16 layout: Button 16)

- Users of the original BLM16x16+X hardware have to press SHIFT and ALT at once to get access over the functions. Users of the emulation have direct access to the ALT button.

 

In GRID and KEYBOARD mode the ALT button will allow to select the octave with button 1-7. Octave from C-0, C-1, C-2, C-3, C-4, C-5, C-6 (C-3 by default)

16x16 layout: all octaves can be selected, not only 7

 

In TRACKS and PATTERNS mode the ALT functions are not allocated yet.

Feel free to request features for the "free slots".

 

Best Regards, Thorsten.

Link to comment
Share on other sites

I'd love a really easy quicksave function for patterns.  ALT+pattern slot to save just one track group's pattern into that pattern slot would be great.

 

 

 

In track mode, pressing and holding Alt could be used for trigger layer settings - Press and hold ALT - press one of the left round buttons to select which of the 8 trigger layers you're working with - then press buttons in each row to toggle that trigger layer on and off for the corresponding track/step.

Edited by borfo
Link to comment
Share on other sites

Here a new beta version with enhanced BLM support as discussed above + the ALL button fix:

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

 

I also created a new version of the BLM emulation which shows the new layout (with ALT and UpperTrk button):

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

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Yet another gamechanging set of improvements...  Thanks yet again.  You even added the pattern quicksave and track view/trigger layer things...  Awesome.

 

Everything's working great on my end.

 

If it's easy to implement at some point, maybe the pattern quicksave should require ALT to be held down - that way there would be less chance of accidentally saving over a pattern when you meant to launch it.

Link to comment
Share on other sites

...Testing this a little more:  Are drum tracks fully implemented yet in grid view?  Are only the first 8 drum instruments accessible, or am I just not realizing how to toggle to the other 8 drum instruments?

Assuming the toggle between instruments isn't implemented yet, what do you think would work best for toggling between drum instruments 1-8 and 9-16?  I guess the ALT button wouldn't conflict with anything here - when ALT is off,drum instruments 1-8 could be displayed, and when it's on, 9-16 could be shown.

OR, to follow the ALT octave selection model for note tracks: when ALT is on, the buttons on the left side could toggle between drums 1-8 and 9-16.  The left buttons could light like the top buttons do when a track is shorter than 256 steps...  Left buttons 1-4 could light for Drum Instruments 1-8, and left buttons 5-8 could light for Instruments 9-16.

Edited by borfo
Link to comment
Share on other sites

I agree with the ALT button behaviour change, although it will lead to the minor issue that BLM Emulation users who use a mouse to activate the buttons won't be able to access ALT+<function-key> anymore, since a mouse can only select a single button. However, sooner or later I will add a special key for this (like I did for the SHIFT button, which can be activated with the space key)

 

Drum instrument selection is now supported in Grid mode.

 

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

 

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