# Busy Little Core

**URL:** <https://forum.midibox.org/t/busy-little-core/17486>\
**Category:** Design Concepts\
**Tags:** mainboard, arpeggiator, scanning, analog, keyboard, synth\
**Created:** [April 9, 2013, 3:59pm UTC](https://forum.midibox.org/t/busy-little-core/17486 "2013-04-09T15:59:37Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![the\_exploding\_pineap](https://forum.midibox.org/user_avatar/forum.midibox.org/the_exploding_pineap/32/420_2.png) [@the\_exploding\_pineap](https://forum.midibox.org/u/the_exploding_pineap)\
**Post date:** [April 9, 2013, 3:59pm UTC](https://forum.midibox.org/t/busy-little-core/17486/1 "2013-04-09T15:59:37Z")

</div>

I heard about MIDIbox some time ago from a dear friend. Not&nbsp;realizing&nbsp;its potential at the time, it ended up somewhere in the back of my head.

&nbsp;

However, now that I am planning to build an analog(ish)&nbsp;synthesizer, I can start to see attraction of the system.

&nbsp;

My question is this: How much will the&nbsp;CORE\_LPC17 board be able to process at a time?

&nbsp;

Here follows a list of functions:

- Scan a 49 key keyboard, using a six-bit polyphonic decoder. (Requires six Douts and one Din)

- Mix note events from the keyboard into the external MIDI stream.

- An internal clock, with tempo derived from either a pot or tapping.

- A basic arpeggiator with the following functions:

- Output a CV, a gate, and clock pulse (to LFOs)

- Potentially a MIDI output, combining the data from the original MIDI stream, the keyboard, the internal clock (if being used), and the output from the arpeggiator on a&nbsp;separate&nbsp;channel.

I think that is all for now. Shall write back if I remember something else…

&nbsp;

So, would the core board be able to process all of this simultaneously?

&nbsp;

Regards,

&nbsp;

Steve.

---

<div class="post-metadata">

**Author:** ![nILS](https://forum.midibox.org/user_avatar/forum.midibox.org/nils/32/19_2.png) [@nILS](https://forum.midibox.org/u/nILS)\
**Post date:** [April 9, 2013, 4:33pm UTC](https://forum.midibox.org/t/busy-little-core/17486/2 "2013-04-09T16:33:11Z")

</div>

Hiya and welcome aboard,&nbsp;the\_exploding\_pineapple&nbsp; :flowers:

&nbsp;

Very doable.

---

<div class="post-metadata">

**Author:** ![the\_exploding\_pineap](https://forum.midibox.org/user_avatar/forum.midibox.org/the_exploding_pineap/32/420_2.png) [@the\_exploding\_pineap](https://forum.midibox.org/u/the_exploding_pineap)\
**Post date:** [April 9, 2013, 4:47pm UTC](https://forum.midibox.org/t/busy-little-core/17486/3 "2013-04-09T16:47:12Z")

</div>

Here’s a quick diagram of what I’m looking at doing…

&nbsp;

Any suggestions or hints as to how to approach this?

 ![post-16368-0-81165700-1365525918.jpg](https://forum.midibox.org/uploads/default/original/2X/7/7bec0c6d1f86b425f0a6df8bd7f05934205a9e40.jpeg)

---

<div class="post-metadata">

**Author:** ![Hawkeye](https://forum.midibox.org/user_avatar/forum.midibox.org/hawkeye/32/223_2.png) [@Hawkeye](https://forum.midibox.org/u/Hawkeye)\
**Post date:** [April 9, 2013, 5:50pm UTC](https://forum.midibox.org/t/busy-little-core/17486/4 "2013-04-09T17:50:05Z")

</div>

Hi and welcome!

IÂ´d suggest you go for the new LPC17 core - as it is by far more easily programmable as the old PIC - also, there is a fantastic “learning” tutorial section available - you may find most of the routines you are looking for in there:

[http://ucapps.de/mios32\_c.html](http://ucapps.de/mios32_c.html)

&nbsp;

Have lots of fun!

Peter

---

<div class="post-metadata">

**Author:** ![the\_exploding\_pineap](https://forum.midibox.org/user_avatar/forum.midibox.org/the_exploding_pineap/32/420_2.png) [@the\_exploding\_pineap](https://forum.midibox.org/u/the_exploding_pineap)\
**Post date:** [April 9, 2013, 6:10pm UTC](https://forum.midibox.org/t/busy-little-core/17486/5 "2013-04-09T18:10:01Z")

</div>

Spent too long looking at the old diagram.. So here is a new one!

&nbsp;

Hopefully it is easier to understand.

 ![post-16368-0-94107600-1365530972.jpg](https://forum.midibox.org/uploads/default/original/2X/0/0e379da3125465739faa83e851a2e103e08ed221.jpeg)

---

<div class="post-metadata">

**Author:** ![T.K](https://forum.midibox.org/user_avatar/forum.midibox.org/t.k/32/7_2.png) [@T.K](https://forum.midibox.org/u/T.K)\
**Post date:** [April 9, 2013, 8:30pm UTC](https://forum.midibox.org/t/busy-little-core/17486/6 "2013-04-09T20:30:13Z")

</div>

I don’t see a blocking point for such an application, the LPC17 has more than enough power to handle this! 🙂

&nbsp;

[http://discourse.midibox.org/t/topic/16127](http://discourse.midibox.org/t/topic/16127)

&nbsp;

Sources:&nbsp;[http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fprocessing%2Fmidibox\_cv\_v2%2F](http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fprocessing%2Fmidibox_cv_v2%2F)

…just combine it with the keyboard driver:&nbsp;[http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fmodules%2Fkeyboard%2F](http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fmodules%2Fkeyboard%2F)

&nbsp;

&nbsp;

&nbsp;

> Scan a 49 key keyboard, using a six-bit polyphonic decoder. (Requires six Douts and one Din)

&nbsp;

Why do you want to scan the keyboard with such an exotic matrix configuration?

&nbsp;

Here you can find typical circuits:&nbsp;[http://www.ucapps.de/midibox\_kb.html](http://www.ucapps.de/midibox_kb.html)

they are all supported by the keyboard driver

&nbsp;

Best Regards, Thorsten.

---

<div class="post-metadata">

**Author:** ![the\_exploding\_pineap](https://forum.midibox.org/user_avatar/forum.midibox.org/the_exploding_pineap/32/420_2.png) [@the\_exploding\_pineap](https://forum.midibox.org/u/the_exploding_pineap)\
**Post date:** [April 9, 2013, 9:20pm UTC](https://forum.midibox.org/t/busy-little-core/17486/7 "2013-04-09T21:20:11Z")

</div>

> Why do you want to scan the keyboard with such an exotic matrix configuration?

&nbsp;

It’s just what I had found stumbling around on the internet. And there is a certain elegance to it… (in my mind at least)

&nbsp;

See attached diagram.

&nbsp;

Source:&nbsp;[http://www.soundonsound.com/sos/jan01/articles/synthsec.asp](http://www.soundonsound.com/sos/jan01/articles/synthsec.asp)

&nbsp;

&nbsp;

Having said all of that, I think I will be using the keyboard driver. No need to solve a problem that has already been solved, right?

 ![post-16368-0-63428700-1365541777.png](https://forum.midibox.org/uploads/default/original/2X/3/32925cc80d9e9ba02befdbe1f2cec0a948e85e28.png)

---

<div class="post-metadata">

**Author:** ![the\_exploding\_pineap](https://forum.midibox.org/user_avatar/forum.midibox.org/the_exploding_pineap/32/420_2.png) [@the\_exploding\_pineap](https://forum.midibox.org/u/the_exploding_pineap)\
**Post date:** [April 10, 2013, 5:13am UTC](https://forum.midibox.org/t/busy-little-core/17486/8 "2013-04-10T05:13:39Z")

</div>

How difficult would it be to take lines of code from various MIDIbox projects and combine them into one specialized project?

&nbsp;

Another thing I may not have mentioned is that I am looking to build this box with a physical interface. (ie. knobs and switches) Just to keep up with the analog synth feel.

---

<div class="post-metadata">

**Author:** ![T.K](https://forum.midibox.org/user_avatar/forum.midibox.org/t.k/32/7_2.png) [@T.K](https://forum.midibox.org/u/T.K)\
**Post date:** [April 10, 2013, 8:02pm UTC](https://forum.midibox.org/t/busy-little-core/17486/9 "2013-04-10T20:02:38Z")

</div>

> Having said all of that, I think I will be using the keyboard driver. No need to solve a problem that has already been solved, right?

&nbsp;

The linked article describes an expired approach anyhow, no need to scan a keyboard this way with modern hardware…

&nbsp;

&nbsp;

&nbsp;

> How difficult would it be to take lines of code from various MIDIbox projects and combine them into one specialized project?

&nbsp;

&nbsp;

This isn’t so difficult, because all code modules have an own namespace, so that they can be combined without conflicts.

&nbsp;

I would propose to read through the tutorials to get a basic understanding, how the framework is organized

-\> [http://www.ucapps.de/mios32\_c.html](http://www.ucapps.de/mios32_c.html)

&nbsp;

It’s important to read it from the beginning, otherwise you could miss important informations which are helpful to work with the more advanced examples.

&nbsp;

Once the framework is understood, you should also be able to do modifications in an existing application, or to build up a new one from scratch.

&nbsp;

Best Regards, Thorsten.

---

<div class="post-metadata">

**Author:** ![the\_exploding\_pineap](https://forum.midibox.org/user_avatar/forum.midibox.org/the_exploding_pineap/32/420_2.png) [@the\_exploding\_pineap](https://forum.midibox.org/u/the_exploding_pineap)\
**Post date:** [April 15, 2013, 1:57pm UTC](https://forum.midibox.org/t/busy-little-core/17486/10 "2013-04-15T13:57:18Z")

</div>

How about the addition of two LFOs to the original recipe? Either driven&nbsp;independently, or to the beat of a midi clock. Could the MIDIbox deal with three CV outputs? Five even? (separate&nbsp;CVs for each of the three oscillators? (for future development)

&nbsp;

[http://www.electricdruid.net/index.php?page=projects.taplfo](http://www.electricdruid.net/index.php?page=projects.taplfo)

&nbsp;

^ Above link contains the sort of thing I am talking about.

---

<div class="post-metadata">

**Author:** ![T.K](https://forum.midibox.org/user_avatar/forum.midibox.org/t.k/32/7_2.png) [@T.K](https://forum.midibox.org/u/T.K)\
**Post date:** [April 15, 2013, 5:31pm UTC](https://forum.midibox.org/t/busy-little-core/17486/11 "2013-04-15T17:31:42Z")

</div>

I would propose to read the MIDIbox CV thread, which I linked earlier - it gives you a better insight into the possibilities, and it especially answers your questions!

&nbsp;

E.g. on MBCV each CV channel has a dedicated Arpeggiator, step Sequencer, two LFOs, one “normal” envelope and one multi-step envelope + a modulation matrix.

8 CV channels are supported by default, the achievable update rate is ca. 5 kHz as far as I remember.

To give you a comparison: typical “modern” synths are working at 1 kHz update rate only.

&nbsp;

Btw.: I’m planning a “synth-like” control surface for MBCV as well… it just needs some time because so many other topics are on my TODO list… 😉

&nbsp;

Best Regards, Thorsten.
