Jump to content

MidiBox64 driven synthesizer & sequencer.


Gioxannes
 Share

Recommended Posts

Hello to all!

I've taken the plunge and order the MB64 kit at Mike's and a truckload of pots, faders, encoders, buttons and LED's.

The idea is to create a fully functional synthesizer driven by MB. As well as to combine the keyboard and the sequencer with it in a flightcase. Sounds ambitious, but most of the setup I got already working in a prototype. Now I have collected some old computer gear and it is time to make things sexy.

Currently I am using a Quickshot qs-5836 midi composer. This is a great cheap device capable of sending the whole range of midi commands, but it is a pain to alter it while recording or performing.

The sequencer I use is the Linux Rosegarden studio which is running on my desktop. Great, but I has some problems playing recorded tracks while in loop mode. I guess I have to download the source and patch this in myself, but this will be for later.

The softsynth I am using is the linux fluidsynth for which I have downloaded some great soundfont patches. The great part of fluidsynth is that I can change the instrument settings like modulator and velocity settings by CC commands while it is running. Currently I use the swami software for it, but again for live performance this is not sexy.

So this is where the MB64 comes in handy. With some pots and encoders sending CC commands to the softsynth to alter the soundfonts settings while the sequencer is running. With the midi composer playing/recording additional tracks, and again using the MB64 to enable or disable midi tracks.

If there is processor power left I try to use the MB64 as well to play with the creox audio after processing.

The remaining problem I have to tackle while building is how to use the MB64 to send commands to different processor boards, but I think a midi chain will be able to handle this. I probably have to do some programming for this, but that's my profession.

The parts that I will use:

- an old 100mhz laptop with a broken tft screen to take the keyboard out

- a proper 700mhz laptop with a broken keyboard to put the keyboard in

- the quickshot midi composer

- an old 3000mhz pentium motherboard

- an MidiBox64 extended with encoders

The setup:

- the midicomposer will send played notes and effects to the sequencer

- the sequencer is running on the 700mhz notebook sending its' output to the MB64

- the MB64 sends its' output to the 3000mhz motherboard running the softsynth, as well as some output to the notebook.

The reason I keep the sequencer hardware seperated from the softsynth is that i will try to get the most out of the softsynth. I am currently running two softsynths with 256 polyphony capabilities on a 1.6Ghz virtual machine and I noticed it is better to take all unnecesary software and tasks off for smooth processing with a minimum of latency (currently 35ms). With the 3000mhz pentium I want to be able to run 8 synths.

The sound is is currently producing is absolutely great, but again performing mouse operations on two different computers is a bugger. Plus, the whole setup is not portable.

Wish me luck! The last time I was soldering a midi interface was in 1987 for a Commodore Amiga 1000.

Link to comment
Share on other sites

Sounds fun. As we'd say in the chatroom: Pics! Or it didn't happen!

I wonder how you are interfacing the PC motherboard to the laptop LCD?

Also, I'm curious as to why you chose to put one controller (keyboard) upstream of the seq, but the other (MB64) downstream? Personally I'd put them both upstream... That way you can control the sequencer with the MB64 too.

Link to comment
Share on other sites

Ooh, gonna have to follow this one... :)

Been thinking about doing something like this... But probably in say 10 years or so when there's more powerful hardware at power levels closer to current netbooks. (Would't care for fans in a synth.) Also Nvidia's CUDA and/or Intel's Larrabee could open up a lot of possibilities. Also I'm holding out for an open source equivalent of Reaktor. ;)

But I also demand pics! :)

Link to comment
Share on other sites

Passive? Liquid?

Yes, but if I wanted something that could manage monster Reaktor patches with current processors we're easily talking about a hundred watts of heat to remove. In ten years the same thing will likely require 5-10 watts, or less. Fortunately just building my current project and then a SID will take plenty of time. ;)

Gioxannes is using sampling, so with something like that you can get away with much more modest hardware. But you'll still need to consider cooling it properly. I'd go for heatpipes and slow fans / passive rather than liquid. Liquid is tricky to build so that it doesn't require regular maintenance. (Eventually stuff starts to grow in the lines, or alternatively you get evaporation or leakage issues.)

Link to comment
Share on other sites

Hi Guys,

Thanks for your enthousiasm about the project. Tomorrow my parcels with the equipment will arrive so I can start soldering.

In the meantime I have stripped the PC into parts and took only the minimum necessary to run the synth software. I took pictures before and after, but haven't figured out how to get them here yet. But don't worry they are on their way.

The synth software is running and my processor keeps at a steady 41 Celcius. The whole thing is now:

- a 775 motherboard with 1GB memory on 400mhz

- a Pentium Celeron 3Ghz with air cooler

- a 2GB USB stick for the boot and sotware

- the power supply with fan.

and weights 2,5 kg (before stripping 11kg)

The first step was to change everything in the BIOS for the parts no longer used

- disable SATI interfaces

- disable ATI/IDE interfaces

- enable boot from USD-HDD as first boot device

(I must admit, I kept one IDE for the CDROM to install the OS, and removed it later)

I installed Mandriva Linux 2009 on the USB with the minimum software. First I though running it without X, but during the configuration phase I found out is is really nifty to have it. So I installed FVWM as window manager (small size) and X11.

Other software I installed:

- alsa soundcard software

- jack daemon (running real time 5.2ms latency 48Khz stereo)

- fluidsynth with the Unison [20Mb] and PC51f [55Mb] soundfont files

and for testing purposes:

- rosegarden

- Qsynth for configuring fluidsynth

- qjackctl to keep a graphic overview of what is connected to what

The whole package is less than 1000Mb and I am sure it can be minimalized, but on the moment this is not an issue.

I have to mention that it is really important to have the latency of jack under the 7ms. This because the fluidsynth software is running on an event handler with 7ms timer interrrupt. For drums which are sending fast noteon and noteoff events this could lead to both events handled at the same time resulting in no drum sounds at all (and I like the drum parts  ;) )

Another way to solve this would be to install the hydrogen drumkit software and automatically lead all drum tracks to this package, but I would like to stick with fluidsynth.

So much for now.

No, some more notes about the OS.

It must have a user clockrate of 1000hz. Some distributions use 250hz but this is not fast enough.

Disable the swapfile functions. The USB is not fast enough for it anyway and it secures as well that all samples are loaded into ram.

1024Mb is more than enough. I noticed it could have been done with 512 as well. Without X11 running, all the software needs only 363Mb (running two synth instances with 75Mb of soundfile data) and I am sure this can be minimized further as well.

All the best, and don't forget to have fun!

Gioxannes

Link to comment
Share on other sites

Ok, here come the pictures. I hope I am not floading the serverspace now.

Photo110.jpg The original case 11,5 Kg.

Photo116.jpg Only the parts that are needed. 2,5 Kg. In front the black usb stick [2Gb]. On the right the on/off switch. On the left the power supply with lots of spare power due to the absence of harddisks and cd/dvd drives.

Photo117.jpgThe case in which it all has to fit.

Photo118-b.jpgThe stuff I'm working on.

4425_Photo110_jpg050e0a51bfdd4d419839ea4

4427_Photo116_jpg5c304ba553069d6872c8cfa

4429_Photo117_jpgcca762569cea394ba569d09

4431_Photo118_b_jpge33d3a1b959e84f881c8a

4425_Photo110_jpg050e0a51bfdd4d419839ea4

4427_Photo116_jpg5c304ba553069d6872c8cfa

4429_Photo117_jpgcca762569cea394ba569d09

4431_Photo118_b_jpge33d3a1b959e84f881c8a

Link to comment
Share on other sites

If you wanted to downsize the power supply you could look at those used for mini-ITX builds. If you're booting of usb the wattage should indeed be minimal, processor+motherboard load only basically.

Keep us posted on your progress! :)

Actually better still would be to look for a Shuttle PSU, They are higher rated than the MINI itx ones and are about the same size

They will even run two drives if needed no problem

Link to comment
Share on other sites

I was actually thinking of using the power supply for the midibox as well. Including the LED's.

I got a few amps spare. Normally the diskdrives get their power after the motherboard, so if I connect it to one of those sockets and add an elco I should do fine? Or is there somethiong about the midibox  I do not know? (Yes, I have read the part about using computer power, but since the motherboard is running itself as well, I am not expecting a problem with this).

Link to comment
Share on other sites

  • 2 weeks later...

Hi to All,

Just a line to let you know I am still working on the project. It will still take a couple of months though.

On the moment I am back in my own home in Greece doing the PCB's: 3 done, 5 to go.

On the pic you see a small part of the Quickshot (lower keyboard, the upper is a Yamaha).

All the best, Johan.

4497_Photo128_jpg757563e3b150aeb98e731e5

4497_Photo128_jpg757563e3b150aeb98e731e5

Link to comment
Share on other sites

Just a line to let you know I am still working on the project. It will still take a couple of months though.

Hehe :)

I envy your progress... My project is going a lot slower than yours. Then again I did anticipate this from the start. After work and the kids there's not a lot of extra time except for the occasional late night. ;)

Link to comment
Share on other sites

Sorry to hear Max,

As a freelance consultant I got quite a lot of spare time lately. And the girl just got a new horse...

So, there is more progress. I know I am  not going to win the beauty contest with it, but I felt obliged to post at least one picture of my soldering qualities. ;)

So, picture one is the backside of the core module. I noticed too late that I did not have to put in the power part since I use an external stabalised power. I will change that (take the rectifier and the 7805 out and connect the outer part of the 7805 holes with a bridge to enable the elco).

And I got the lexan for the box. It's time to make things sexy.  :D But this is going to be my worst part. I'm not good at it at all, so wish me luck.

Gio.

4537_Photo141K_jpg0749ad264161ea819ae6c5

4539_Photo142K_jpg4dc69c46efb4401877f813

4541_Photo143K_jpg7eae646c7076d3416cb788

4537_Photo141K_jpg0749ad264161ea819ae6c5

4539_Photo142K_jpg4dc69c46efb4401877f813

4541_Photo143K_jpg7eae646c7076d3416cb788

Link to comment
Share on other sites

the girl just got a new horse...

Once upon a time there was a Prince and a beautiful Princess.

The Prince said unto the beautiful Princess, "if you wouldst marry me and buyeth me a midibox kit, I will love thee forever and be the happiest man in all the lands!".

The beautiful Princess did reply in a boisterous manner: "Buy me a pony!".

So, the Prince bought her a pony, and she bought him a midibox, and they all lived Happily Ever After.

Until he found out she used his paypal account at avishowtech. That bitch!

The End.

Link to comment
Share on other sites

Double trouble in MB land...  :-[

First my cellular phone with digital camera got stolen (Samsung G800). So there are problems getting the latest pics here.  >:(

The second problem is controlling the sequencer by my midibox.

I was planning to pre program the sequencer with tracks/patterns and mute/unmute them with buttons from my MB. But the

Rosegarden sequencer is exactly as it is. A sequencer. It does not take any look at the MIDI events itself, and therefor does not take any commands from it. All is forwarded to the synth, with exception of GUI settings of filters.

Unfortunately the synth (fluidsynth) does not accept cc local commands either. I downloaded the source and found NIY (Not Implemented Yet). Now I spent a few hours more and it is not so difficult to implement a per midi-channel based local on/off cc command. Would take me a day with testing, but probably the fluidsynth developers will be happy with my patch as an extra feature. This would allow me to have 16 channel with mute/unmute capabilities. Not what I actually wanted, but feasible.

So I downloaded the Rosegarden source to see what can be hacked in there. The only way I see it, is to build a wrapper around it. The wrapper creates a midi-in where it takes the input from the MB, interpretes NRPN commands to change track settings in Rosegarden through API calls and forwards the rest of the events to a midi-out. Bluh!

Now. NRPN command I have to implement in my MB anyway, since it it THE way to alter all possible synths settings in the fluidsynth. But building a wrapper is quite a lot of work.

But now I am thinking of using a different sequencer. I can always use Rosegarden to prepare the midi-files and export them to the sequencer I will use with the MB. Then I found the SEQ24 Controller in the design concepts by Stryd_one.

So:

- What is the status of th SEQ24 Controller project? Is it capable fo fiddling with tracks the way I want it?

- Is there another solution I am overlooking?

I was really hoping to be able to have at least 64 tracks and making the composition by enabling and disabling them from my MB. Even over 16 midi channels.

Maybe this is a strange place to put my question, but I have the idea quite a few people are following this thread.  ;)

Gio.

Link to comment
Share on other sites

Thanks Stryd, but you misunderstood something.

I know Muse (like Rosegarden, but without the audio mixing). I consider them rather equal studio/composer software.

What I need is a sequencer that can play my pre-recorded tracks with the possibility to mute/unmute tracks through MidiBox.

Fluxus seems to be a 3D effect generator, unless you know another program with the same name.

I was hoping that Seq24 could easily be integrated with the Mb.

AlsaModularSynth is a synth. I don't need. I already made my pick. Fluidsynth, of which i have and even understand the source code (and it is able to allow changes to the soundfont settings in real time). You can check this out with Swami.

Now I am looking at Dino. It is very small and might suit as a basis of my writing my own dedicated sequencer...

All the best to all!

Gio.

Link to comment
Share on other sites

Totally misunderstood!

I mentioned the synths because you said that fluid was'nt accepting CC's,

Right, so you want an *audio* sequencer then! I hear "sequencer" and think "midi sequencer". That's because back in the day the audio 'sequencers' were called 'multitrackers' (not to be confused with trackers as in sequencing samples with hex, but as in, 'multi-track audio editors'). After a time the midi sequencers took on audio multitracker features, but the name stuck - Cakewalk Pro Audio, Cubase Audio, etc. So really when you say sequencer, it means midi by default. This is similar to the "DAW" thing where once a DAW was a hardware+software unit (DAWorkstation - hardware! A bunch of bits on disk is not a workstation...) but these days dudes call audio+midi sequencers a 'DAW'(and manufacturers themselves of course, they have to tell people what they're selling and if dudes want a 'DAW' they better be selling a 'DAW' heh), which kinda leaves the name for the whole unit an unfilled gap... Anyway enough history lesson,  we're gettin too old for this sh*t ;)

I was trying to figure out what you meant when you said "A sequencer. It does not take any look at the MIDI events itself"... I was like....uhmm.... that's what sequencers do... maybe you're running your web browser by mistake? hehehe

I'm clueless in the audio seq/multitrack software field.... Sorry dude... Hope you'll keep us posted!

When I said fluxus I was thinking Pawfal: http://www.pawfal.org/index.php?page=PawfalProjects They have some cool toys but I don't think they're relevant to you now...

Link to comment
Share on other sites

I totally agree with you about the DAW. Even the wiki these days says that a computer with dedicated audio software is a DAW.

My multitrack recorder is for the museum...

To make thinks more (or less) complicated, I meant: pre-recorded midi tracks. Again I totally agree with you that a sequencer is MIDI only.

I was hoping (in vain) that the sequencer would have a peek in the NRPN messages.

Even so. For those who are interested. These are the diffs for fluidsynth 1.0.8

src/fluid_chan.c

--

97a98,100

>

>  /* Local Control On */

>  SETCC(chan, LOCAL_CONTROL, 127);

234a238,243

>  case LOCAL_CONTROL:

>    if (value == 0) {

>        fluid_synth_all_sounds_off(chan->synth, chan->channum);

>    }

>    break;

>

src/fluid_synth.c

741a742,747

>  channel = synth->channel[chan];

>

>  /* check if we still have control over this channel */

>  if (channel->cc[LOCAL_CONTROL] == 0)

>    return FLUID_OK;

>

747,748d752

<  channel = synth->channel[chan];

<

This does the trick of muting channels through a MIDI LOCAL_CONTROL message (cc, 122).

Now according to the specs this local control is for synths with embedded keyboard (I will call composer). It actually tells the synth to sent the midi data through the midi out and not process it itself. In case of fluidsynth it decided not to process it itself, but there is no midi out.

There are several functionalities to be achieved with this. For example if you have the midi out of a composer send to different instruments at the sdame time, but want to mute one of them with a external controller. I will post this patch to the fluidsynth boys, and I am sure they want it implemnted on a synth basis and not channel. But I do not see composers sending data to multiple channels yet (through midi-routers yes)/ Anyway enough for today. Patches are tested and ok. :D

Gio.

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