Go Down

Topic: Midi direct via USB? (Read 22998 times) previous topic - next topic

kuuk

ok, i didn't see the "source" tabe on the google page, thanks.

Quote

The serial port speed seems to be the big problem with MIDI output directly from an Arduino.  I ran into that limitation and decided to do the software route to solve the problem.

hmm well. i know about the speed issue concerning midi's 31250 vs the ftdi driver. i thought i'd just use a faster standard baud rate for usb communication. (but didn't realize that would make the standard midi port useless:-( or at least non-standard) I have to think about that.

i have a usb2midi adapter which works great. it's just that i'd like to make these things usb-powered and "one cable" for something like garage band. still i'd like to maintain the old school midi ports because they let me easily connect devices without a computer.(if you're interested: http://www.youtube.com/watch?v=hQhV601jIpg) i realize i want too much at the same time.

still your app is a huge step forward. i hope to be able to test it tomorrow as i don't have an arduino here. so far the app runs fine, and the interface is self-explaining.


Westbam

For Windows

You can try GlovePie/MIDIyoke combo. GlovePie can translate many types off inputs to MIDI code, and MIDIyoke can be used as a bridge between Glovepie and your Windows aplication. MIDIyoke is a virtual MIDI port (we use it to hook up our Wii to the computer)

Glovepie, MIDI Yoke and an
helpfull forum

pixeldoc2000

#32
Nov 13, 2007, 08:41 pm Last Edit: Nov 14, 2007, 05:03 am by pixeldoc2000 Reason: 1
Quote
Quote
Quote

Look for [FtdiPort232.NT.HW.AddReg] and change the the second line below to the one that i've got here.

HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,
71,02,00,00,38,41,00,00,9C,80,00,00,60,00,00,00,34,00,00,00,1A,00,00,00,0D,00,00
,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00


Which second line do you mean exctly?
1 [FtdiPort232.NT.HW.AddReg]
2 HKR,,"UpperFilters",0x00010000,"serenum"
3 ;HKR,,"ConfigData",1,01,00,3F,3F,10,27,88,13,C4,09,E2,04,71,02,38,41,9c,80,4E,C0,34,00,1A,00,0D,00,06,40,03,80,00,00,d0,80
4 HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00


I think this question isn't answered yet.
If re-installing the ftdi drivers wasn't such a pain I could change stuff by trial and error, but somehow I'm not able to uninstall the drivers or change windows' register...

Thanks in advance, Ben


it's 4!

for FTDI USB Driver v2.00.00 included with arduino-0010 you have to change Line 84 in arduino-0010\drivers\FTDI USB Drivers\FTDIPORT.INF :

original
Code: [Select]
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00

to

changed
Code: [Select]
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,60,00,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00

or even better insert ; in front of line 84 to comment this line out and then past the changed code in new line below.

ftdi published some infos about changing baud rates as mentioned before: http://www.ftdichip.com/Documents/AppNotes/AN232B-05_BaudRates.pdf

For easy reinstall the ftdi windows driver, search through c:\windows\inf\oem1.inf ... oemX.inf (windows xp) or c:\winnt\inf\oem1.inf ... (windows 2000/NT) and simply delete the old ftdi inf file, for example oem7.inf and oem7.pnf (be carefull to delete only the correct files, its possible that there exist more than one copy of the ftdi inf, depends on your setup. ensure to disconnect arduino before remove driver !!!)

download Roland Serial MIDI Driver Ver.3.2 for Windows XP / Windows 2000 here: http://www.roland.com/products/en/_support/dld.cfm?iCncd=724&ln=en&SearchBy=RcId&dst=P&iRcId=0000010777&dsp=1

arduino>usb>serial>midi setup (Window$):
  • install modded ftdi driver
  • install Roland Serial MIDI Driver, choose COM3 (depends on your system)
  • upload sketch to arduino, i used http://todbot.com/arduino/sketches/midi_drum_kit/midi_drum_kit.pde as reference to create my sketch. for infos about midi notes look at http://www.harmony-central.com/MIDI/Doc/table2.html for example
  • optional: install MIDI-OX (http://www.midiox.com/app.htm) to look what's going on (goto "Options" > "MIDI Devices" > choose "Roland Serial MIDI" at "MIDI Inputs") OR use arduino serial monitor (set to 38400 baud) to check if data is send by arduino
  • setup your MIDI target (for example ableton live) to listen for MIDI input from Roland Serial MIDI Driver, Channel 1


Tested with arduino diecimila + modded ftdi driver + roland serial midi driver + modded midi_drum_kit.pde by todbot + some switches connected to arduino + ableton live.

Hope this usefull and answers some questions ?!?  :)
Why is it that only drug dealers and software developers call their clients "users"?

Majlosh

Weeehaa!
Thanks guys, this thread helped me a ****ing lot!!!

Im kind of new in Arduino comunity (know it since summer, have it since friday) and Im working in a similar project for my master thesis. (Interfacing Arduino equipped with bunch of different sensors via MIDI with software running on PC - in my case Resolume)

So perhaps in the future we can share experiences.

Once more thx for FTDI driver hack quide   ;D

The_Bongmaster

I'm planning on trying a simple midi control keyboard (1 octave) once I understand the arduino a bit better.. I'd like to use it with cubase, or reason (whatever i am using at the time). Mayben if i try a layout like the arduinophone  (stylaphone thingy) that i saw on youtube, i could get some kool sounds :). i'll look into getting some peizos tot. the drum kit i saw on youtube using peizo speakers as drum pads was way kool :)

no doubt i will be in here asking umpteen questions (im such a noob with the arduino and programming and stuff i dont even have the arduino yet :D its in the post as we speak {and is taking its sweet merry time too}, cant wait to build it :d at least i can solder :P)
I hope this thread will help me out :)

the plan:
Switches/sensors => Arduino => usb|midi => Cubase/Reason.

fingers crossed :P its blinking led's 1st tho. gotta take it slow :D
B-dui in creation.

The_Bongmaster

having trouble getting cubase or any other sequencer to listen to my arduino or the serial midi port.. i know the arduino is sending data because i see it in the serial monitor of the IDE

hasnt someone created a step by step tutorial on how to get an Arduino to run over serial midi for beginners. with full what port and what settings information. i must be missing something somewhere..

I got the Roland serial midi drivers in, and i implanted the registry data (i assume it went in ok) one program says it cannot open port, and cubase doesn't seem to be listening at all.. Are the ports sposed to be set up the same? ( serial midi- com3 and usb serial- com3).

also can a standard serial port be used for serial midi, to make life a little easier for me? (i have doubts tho, may have to try and get a usb midi cable)
B-dui in creation.

undervand

Ok.. I"m not sure if anybody else out there got there arduino MIDI device to work via USB on Mac, but if anybody still have trouble I made a workaround that works.

Basically, instead of sending MIDI data to a USB port, which then needs a driver to allow you MIDI receiving program to see it (Ableton fx), you send data in a format you are comfortable with (like MIDI code fx) and then make a Processing sketch that converts that data into MIDI data and pass it on to your IAC MIDI port on your OS X system. To do this you need to install Processing as well, download the proMIDI Processing library and install it, and download the MMJ Java library which you install in your /Library/Java/Extensions directory. (It might work without the MMJ library but a post I read suggested using it. Look for the post by "basti")
Then you make a sketch in Processing that listens for serial data on your USB port, sort it out according to the type of messages and pass it on to your IAC MIDI port. It works like a dream :D
I"ll post a Processing code example as soon as I get home to my Mac and extend the sketch a bit. So far it only recognizes simple controller messages.  

andypenning

undervand, thanks!! This is exactly what I was looking for. I'd love to see your example processing sketch if you ever got around to writing it.

trebor

Quote
Quote
Quote
Quote

Look for [FtdiPort232.NT.HW.AddReg] and change the the second line below to the one that i've got here.

HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,
71,02,00,00,38,41,00,00,9C,80,00,00,60,00,00,00,34,00,00,00,1A,00,00,00,0D,00,00
,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00


Which second line do you mean exctly?
1 [FtdiPort232.NT.HW.AddReg]
2 HKR,,"UpperFilters",0x00010000,"serenum"
3 ;HKR,,"ConfigData",1,01,00,3F,3F,10,27,88,13,C4,09,E2,04,71,02,38,41,9c,80,4E,C0,34,00,1A,00,0D,00,06,40,03,80,00,00,d0,80
4 HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00


I think this question isn't answered yet.
If re-installing the ftdi drivers wasn't such a pain I could change stuff by trial and error, but somehow I'm not able to uninstall the drivers or change windows' register...

Thanks in advance, Ben


it's 4!

for FTDI USB Driver v2.00.00 included with arduino-0010 you have to change Line 84 in arduino-0010\drivers\FTDI USB Drivers\FTDIPORT.INF :

original
Code: [Select]
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00

to

changed
Code: [Select]
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,60,00,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00

or even better insert ; in front of line 84 to comment this line out and then past the changed code in new line below.

ftdi published some infos about changing baud rates as mentioned before: http://www.ftdichip.com/Documents/AppNotes/AN232B-05_BaudRates.pdf

For easy reinstall the ftdi windows driver, search through c:\windows\inf\oem1.inf ... oemX.inf (windows xp) or c:\winnt\inf\oem1.inf ... (windows 2000/NT) and simply delete the old ftdi inf file, for example oem7.inf and oem7.pnf (be carefull to delete only the correct files, its possible that there exist more than one copy of the ftdi inf, depends on your setup. ensure to disconnect arduino before remove driver !!!)

download Roland Serial MIDI Driver Ver.3.2 for Windows XP / Windows 2000 here: http://www.roland.com/products/en/_support/dld.cfm?iCncd=724&ln=en&SearchBy=RcId&dst=P&iRcId=0000010777&dsp=1

arduino>usb>serial>midi setup (Window$):
  • install modded ftdi driver
  • install Roland Serial MIDI Driver, choose COM3 (depends on your system)
  • upload sketch to arduino, i used http://todbot.com/arduino/sketches/midi_drum_kit/midi_drum_kit.pde as reference to create my sketch. for infos about midi notes look at http://www.harmony-central.com/MIDI/Doc/table2.html for example
  • optional: install MIDI-OX (http://www.midiox.com/app.htm) to look what's going on (goto "Options" > "MIDI Devices" > choose "Roland Serial MIDI" at "MIDI Inputs") OR use arduino serial monitor (set to 38400 baud) to check if data is send by arduino
  • setup your MIDI target (for example ableton live) to listen for MIDI input from Roland Serial MIDI Driver, Channel 1


Tested with arduino diecimila + modded ftdi driver + roland serial midi driver + modded midi_drum_kit.pde by todbot + some switches connected to arduino + ableton live.

Hope this usefull and answers some questions ?!?  :)


The setup of the Roland driver keeps saying that it can't use COM4. I changed the bits per second to 38400. But it doesn't work. Do you know a solution?
Thanks :)

(just bought a Arduino yesterday, but have worked with it for a month last year.)

trebor

Quote
Weeehaa!
Thanks guys, this thread helped me a ****ing lot!!!

Im kind of new in Arduino comunity (know it since summer, have it since friday) and Im working in a similar project for my master thesis. (Interfacing Arduino equipped with bunch of different sensors via MIDI with software running on PC - in my case Resolume)

So perhaps in the future we can share experiences.

Once more thx for FTDI driver hack quide   ;D


Like WTF? I want to do exactly the same :)
I want to control Resolume with a dance pad (Dance Dance Revolution thing).

dshay


Researching this, I found a new resource I'm surprised I didn't hear about here. Haven't used it yet....

It's called Maple Virtual Midi Cable.

http://www.hurchalla.com/Maple_driver.html

trebor

The driver is working! On another Xp install (for resolume).
Going to experiment now for a bit :)

ByMinotti

I have done all of the steps required to get the arduino to work as midi but I am still having problems. The arduino software recognizes when the piezo is touched but MIDI-OX and the midi drum software (CakeWalk Studio Instruments) I am trying to use it with dosen't respond to it. I am using the midi drumkit pde code. I don;t know if I have to change anything in that code? If anyone can help me with this problem or tell me a different way to do this please let me know as soon as you can. I am building a drum kit from piezos for my sound class and I am supossed to display it this weekend at our show. I need to get this working by then.  Thanks

acidhax

Is there a forum for this dedicated to windows, im sick of seeing mac

nomuse

Most forums in the world, acidhax.  If it doesn't name the OS explicitly then it will be Windows.

Looks like maybe three posts in this thread mention Mac OS at all, and none of them talk about a Mac-specific solution.  As opposed to the three posts giving a solution that only works on a Windows PC.


Sorry for the mini-rant.

I'm puzzling over the same keyboard issues myself.  I've got MIDI working fine, and I've got Arduino-to-Processing working fine.  Haven't gotten MIDI out of Processing yet -- library problems to sort through still.

But on the hardware side, I've got a real tempting shape to work towards.  And that's a one-octave (with octave key) keyboard designed specifically to work with monophonic instruments such as those in the Garritan libraries.  The aim is a keyboard that doesn't attempt to emulate a piano, but instead allows expressive entry of a monophonic line -- and is small enough to stick in a laptop bag (and either battery or USB powered, to boot).

Mono means easier implementation of MIDI on the Arduino side.  To make the keyboard properly expressive, however, would need to add the mod wheel CC (Garritan libraries use the mod wheel to control dynamics.  Keyboard velocity is mapped only to attack).

And, of course, would help greatly if the keyboard was velocity-sensitive.

I've played one of those roll-up pianos.  Unless someone can really improve the sensitivity and feel of piezo's I don't think my fingertips are up to hammering out 120 bars of music on them.  The technique in the keyboards I've disassembled is using a lever-type key that hits two contacts in succession.  Timing the difference between them becomes velocity.  That seems simple enough to handle in Arduino; the question becomes more mechanical at that point.

Go Up