Using Midi Translator to program FCB1010 for Ableton Live

mythhealer

2008-05-17 12:29:49

Background info:
I have been utilizing Live for the past few years, and over the past few days--managed to program the Classic MT. My FBC1010 has been programmed with the following capabilities: Undo, Delete, cursor left, cursor right... along with several functions that are assignable through Live. I will continue perfecting the programming of my FBC1010 with Classic MT before I begin any new session work. (to bypass all the BS about the evolution of this foot switch assignment system, and to go strait to the final program file itself, scroll down to my last post #6)

To be more specific about what I wish to achieve:
Fully MIDI controlled guitar solo recording process. I wish to capture a great idea, and have the computer edit this idea into a perfect two bar clip. This action is done over and over and over again durring the recording... so... a smooth flow between editing and recording with the computer acting as editor for me... that would be heaven!

How I use MT Classic:
The background music is started when I press the FCB1010's play button. It takes me anywhere from five two fifteen minutes to come up with a good melody, at this point I press the record button (launch). I now perform this melody until I'm happy with my performance (I am extremely picky here). The majority of the attempts at a good take are deleted. To delete it I press the stop button followed by the undo button. I, for the second attempt hit record (launch) once again. When I am satisfied with the recording, I move onto the next clip. It is this moving onto the next clip where I don't know how to automate the clean up of the recorded clip. When I coursor down to the next clip, the previous clip has a tail end greater than two bars in length. It is this little 'imperfection' I wish to have automated. The programming of a "clip save" button that includes a clip clean up prior to the moving onto the next clip -- followed by a play background music. In this way I have a clean recording session where I don't have a great deal of crap on my hard drive, and all clips are interchangable. Additionally, I never really know the order of melodies/clips until I have about three minutes of various melodies to choose from.

The FCB1010 button assignments I wish to have programmed, and their sub functions:

FCB1010 controller button assignments/functions:
Button 1
toggle - play/stop switch

Button 2
Record (activates launch in Live, pre set to record on launch)

Button 3
Undo - more specifically: stop music\undo currently recorded clip\record (launch) -- It removes my unwanted clip and re starts the recording process for additional takes. I will often press this button 5 to 10 times before I'm happy with the performance.

Button 4
Save - more specifically: stop music\change clip length to a perfect two bars\move down to next clip\start music playback. I go back to playback (not record) in order to come up with the next melodic idea.

If you go down to the 6th post in this string, I provide detailed information on how I got this 100% hands free, guitar solo recording process to work with MT Classic. It is version 3 (previous versions had problems that had to be corrected). The MT Classic file was opened in notepad file format, saved, and copied into post #6 of this string.

metastatik

2008-05-19 02:24:53

EDITED...Live's manual, page 193

florian

2008-05-19 10:52:46

Hi mythhealer,

I hope you don't mind that I edited your subject to a more meaningful one... and, as you see, I'm not the best one to answer your questions :) I'm rather off doing some coding for Midi Translator!

Later,
Florian

mythhealer

2008-05-19 20:44:57

After about three hours of hacking at the FBC1010, Live 7.0.5, and MT Classic, I've finally gotten the 100% foot controlled guitar solo recording process to work to my satisfaction. You will be able to set the loop bracket at a few bars, record, and/or save the take. The process automatically moves forward upon save, allowing you to continue recording (indefinitely).

There are a few absolute requirements in the set up of the live arrangement window. There are also a few requirements in the way you input quick key commands in MT Classic. You will probably want to know why I've done things in the way I've done them, I can answer that as well. I've had buttons programmed with more keystrokes (than you see here) only to determine that Live has a problem with quick keys when they are executed too quickly. This problem was overcome by assigning half of the quick key commands to a down press of a button, and the other half to the release of that same button. The point where the quick key command was ignored, I assumed Live didn't have enough time to 'digest' the execution of the previous keystroke, and simply 'ignored' the next keystroke. It was the solving of this problem where, I gave Live more time to execute keystrokes by assigning half to the press of the button and the other half to the release of a button (MIDI data is sent out on the press of the button, and on the release of the button).

Set up requirements: If these rules are not followed, the 100% hands free, guitar solo recording process will fail to operate properly.

Must be in arrangement view with the following items selected:

1) loop at top of window must be selected
2) track you wish to record on must be armed
3) the loop must be set at desired length (1,2,3,4, bars) this will continue throughout entire recording.
4) The top of the loop bracket must be clicked upon with the mouse.

This next section gives the programming, and button assignment requirements.

Button 1
Play (assigned through Live w/o the aid of MT Classic)

Button 2
Record - Controlled by MT Classic
Live set up requirements for button 2: you are to assign a Shift+X to the play button in Live, and a Shift+Y to the record button in Live.
MT Classic set up requirements for button 2: OUTPUT - (ctrl+shift+L)+(shift+x)+(shift+Y)

Button 3
Delete - Controlled by MT Classic
button 3s press assignment: (space)+(ctrl+shift+L)+(delete)
button 3s release assignment: (ctrl+shift+L)+(delete)+(space)

Button 4
Save - Controlled by MT Classic
Button 4s press assignment: (space)+(up arrow)
Button 4s release assignment: (space)

Don't provide recommended alterations to the above method until you've tested it out with Live 7.0.5 and MT Classic FIRST!!!!!!

florian

2008-05-20 22:46:05

Looks like a nice setup!

btw, you can copy/paste a MT preset into a forum message by selecting all translators in the preset, then use copy(Ctrl-C), and paste into your forum text (Ctrl-V).

Florian

mythhealer

2008-05-20 23:56:39

The following is a version 2. This is a different approach to the 100% foot controlled solo recording process. I believe it is more functional for many reasons, but I will spare you that long and borring struggles of a hacker BS. For now its all about the recording.

I've put an additional four hours of work on this little 'program' and it is more solid and effective in helping a guitarist get that great take. I don't see any reason why any soloist who utilizes Live can't bennifit from this set up.

It is extreemly well thought out, and utilizes some effective key/switch combos. I've had some continuity issues that had to be corrected. Tried key combinations out of anticipated sequence and was able to program for those misshaps. It resets itself once you get that great take, and when you hit play, you are back in business. I was so excited when I realized the ability to hold down the record button, loop until you get the take you like, releasing the record button for the punch out (a virtual auto-saving of the take). I wasn't intentionally programming it to do that, but WOW, nice serindipitous event! I am totally drained at this point. I don't want anyone to hand type this assignment sequence into their MT Classic. I recommend you copy and paste it in. A single mistake will make the switching toggle behavior of live get all out of wack. Things must be perfect! You should at least refer to it as a strict guide, altering nothing. You may change the key assignments, but not what switches are activated.

The following was posted DAYS after the above info. was posted

Button #1 (The press of the button)
(Live is translator 1, MT Classic is translator 2)
Translator 1: Play (press - activated by Live)
Outgoing: (none) (none because I've assigned live to do this)

Button #1 (the release of the button)
Translator 2: Play (release - (activates loop)
Outgoing: Keystroke: U

The next Translators 3, and 4 do something that is impossible without a foot switch (woo hoo!) the downpress punches you in at the beginning of the loop, w/o jumping to the beginning upon button press (was a problem until I hacked it away). The release turns ON live's punch out point "o" and, also deactivates Live's looping feature. You will need to program Lives Loop and punch in/out points to key strokes (almost forgot to mention that). I used "o" for out and "i" for in. The release of the foot switch tells Live to stop looping, and to punch me out at the end of the loop. Be carefull that you don't release your foot from the button prior to the end of the loop... :-). If you think you'll need more than one pass (due to high difficulty in the performance) hold down the record button through multiple loop passes. When you've performed to your best ability on the compleation of your last pass, release the record button. If you release before the end of the loop, you will be punched out cleanly. If you release after the end of the loop, you may need to delete that little bit. I Plan to work more on this button's functionality. I want multiple loop passes to be the recording norm and only the last pass to be saved. Remember to have NOT A SINGLE ITEM ACTIVE when beginning the use of this assignment sequence. No loop active, no track armed, no punch in symbol active. Everything with this assignment sequence assumes that everything is toggled off. You should have your loop set to 2, 4, or 8, bars, track clicked upon and top of loop bracket clicked upon. You must be in arrangement view only.

This took me about 12 hours to figure out, so don't be too hard on me if you don't like some of my key stroke combos. If you don't try it, yourself, you won't understand the reasonning.

Record Button #3 (the downpress)
Translator 3: Record (press - sellect record, sellect punch in, arm track)
Outgoing: Keystroke: X I Shift(Q ) [Shift Q is assigned, through Live, to arm the track, I is the punch in key assignment located at left of loop symbol in Live, X is assigned in live to the big red record dot symbol at top of Live window ]

Button #3 (the release)
Translator 4: Record (release - Punch out at loop's end, toggle loop off)
Outgoing: Keystroke: O U

The following translaters not only delete the take, but prepare for the next recording attempt.
Translator 5: delete (press - sellect loop & delete)
Outgoing: Keystroke: Delete Ctrl(Shift(L ))Delete Space

Translator 6: delete (release)
Outgoing: Keystroke: Shift(Q )I O U Space [This series of dissarming the track (shift Q), turnning off the punch in/out points as well as the loop, are setting you up to press the record button once again. If you didn't have them, you would be all out of wack for the next recording attempt.


The following translators (7&8) simply move the loop forward one loop length and thereby 'save' the previous loop recording.

Translator 7: Save (press - dissarm track, sellect loop)
Outgoing: Keystroke: Shift(Q )Ctrl(Shift(L ))

Translator 8: Save (release - move forward one loop length, toggle punch in point to off, toggle main record button at top of window to off, stop the music. )
Outgoing: Keystroke: Up I X O Space

The following are simply loop navigation controlls. I thought it would be nice to moove back and forth with your feet.

Translator 9: Move Loop Forward
Outgoing: Keystroke: Ctrl(Shift(L ))Up

Translator 10: Move Loop Backward
Outgoing: Keystroke: Ctrl(Shift(L ))Down



The following is a copy direct from the clipboard and w/o any comments (for the purests at heart). I've noticed that my final working process is different from the output comments. I kept hacking at it until it worked. I didn't go back and update the function key sequence discriptions. I hope this doesn't piss anyone off. At least you get to see how far I've gotten with the program.

Translator 1: Play (press - activated by Live)
Options: stop=false
Incoming: MIDI 9F 6F 64
Outgoing: (none)

Translator 2: Play (release - (activates loop)
Options: stop=false
Incoming: MIDI 9F 6F 00
Outgoing: Keystroke: U

Translator 3: Record (press - sellect loop)
Options: stop=false
Incoming: MIDI 9F 70 64
Outgoing: Keystroke: X I Shift(Q )

Translator 4: Record (release - sellect loop, then arm track)
Options: stop=false
Incoming: MIDI 9F 70 00
Outgoing: Keystroke: O U

Translator 5: delete (press - sellect loop & delete)
Options: stop=false
Incoming: MIDI 9F 07 64
Outgoing: Keystroke: Delete Ctrl(Shift(L ))Delete Space

Translator 6: delete (release)
Options: stop=false
Incoming: MIDI 9F 07 00
Outgoing: Keystroke: Shift(Q )I O U Space

Translator 7: Save (press - stop music, sellect loop)
Options: stop=false
Incoming: MIDI 9F 71 64
Outgoing: Keystroke: Shift(Q )Ctrl(Shift(L ))

Translator 8: Save (release - move forward and play)
Options: stop=false
Incoming: MIDI 9F 71 00
Outgoing: Keystroke: Up I X O Space

Translator 9: Move Loop Forward
Options: stop=false
Incoming: MIDI 9F 0A 64
Outgoing: Keystroke: Ctrl(Shift(L ))Up

Translator 10: Move Loop Backward
Options: stop=false
Incoming: MIDI 9F 05 64
Outgoing: Keystroke: Ctrl(Shift(L ))Down

mythhealer

2008-05-23 23:27:15

Version 3 of the 100% hands free melody recording process. The official name is "Audio Melody Harvester"

What you will need:

1) Midi yoke http://www.midiox.com/index.htm?http:// ... /myoke.htm (Warnning! this is NOT A PROGRAM! This is a driver! don't go looking for a program on your desktop once you've downloaded it... I wasted about an hour thinking I couldn't find the 'program'. and/or didn't download it properly?!? It shows up as a driver like your midi keyboard, trigger finger, controller, sound card.... viewable in Live's midi input/output.)
2) MT Classic: http://www.bome.com/midi/translator/mt_classic.html
3) Live:
4) FCB1010 (or some similar type midi foot controller)

I've updated the keystroke discriptions, and simplified them as well. The only thing you need to program (other than for MT Classic to capture MIDI data) is to assign the letters: p, r, i, u, o, a to various switches in Live's arrangement view. Remember, MT Classic is a MIDI-to-keystroke converter, so Live must have keystrokes assigned to the various switches we will be controlling.

While in the Live window, mouse click on the word "KEY" to activate the Live keyboard assignment function, and assign the following six keys:

p=play button icon at top of screen
r=record (red record dot) at top of screen
i=punch in icon at top of screen
u=loop icon at top of screen
o=punch out icon at top of screen
a=arm track, this is assigned to the red record dot in the track you plan to record into.

This MT classic MIDI/keystroke application, in conjunction with Live 7.0.5, and the FCB1010-- is designed with the assumption that everything is DEACTIVATED. No loop Lit up, no armed track lit red, no main record button lit red, no punch in lit green, no punch out lit green. The program does everything for you, but is not smart enough to know that a specific switch is already turned on. Therefore, it will toggle the wrong way on, or off if things are other than what the program 'assumes' them to be. Once the key assignments have been made to Live, save it as a template. If done, all future recording sessions (guitar, acoustic, or any instrument) will have a more soloist-friendly work flow.

The play button is going to do more than just start the music (as you will soon see). It is a (in most instances) fail safe that corrects for errors. If you find that your playback has run outside the loop, hit play to bring it back home. If your loop has unintentionally toggled off, press play to toggle it back on again.

Remember, when recording, you must press and hold the record button until the loop returns to the beginning (before release). This allows for clean punch ins/outs. To get a better understanding of how the switches interact with Live, hold down each button for a few seconds-while looking at what's being manipulated in the Live window. Release each button and note the additional manipulations. Go through emaginary recording scenarios where you press play, let it loop a few times, press and hold record... release record. Hit delete and note how the loop begins again, ready for take 2, 3, 4, ... Try a save (after recording) and watch the loop and playback move forward, waiting for the next idea to be seamlessly added to the previous melody, or part.


The unique characteristic of a piano note (relative to switching) is that they send an ON signal when pressed, and an OFF signal when released. The MT Classic can take advantage of this, and I have configured the audio melody harvester with that advantage integrated. Each foot switch: play, record, delete and save - all have keystrokes assigned to both: the press (*127 or *64) and the release (*00) of the switch. Make certain you capture MIDI data ONLY for the switche's down-press, or release where indicated.

With Midi Yoke installed, and visible as one of Live's MIDI 'devices/drivers' sellect midi yoke 1. Also, set input and output in MT Classic. At the top of the MT Classic window is an input and output drop down menu. Set the INPUT to FCB1010, and the OUTPUT to midi yoke 1. There may be an exception to the FCB1010 being assigned to the input. In my set up the Delta1010 (or your audio/midi card) shows up in the MT Classic's input list, although I know I've plugged the FCB1010's MIDI input/output directly to the Delta1010.

This configuration assumes that you are utilizing the FCB1010 with the buttons assigned to piano notes. Assign the first button (the play button) by capturing its data in the MT Classic (you will need to OVERWRITE my data). This must be done to all buttons viewed in the translator list. Each button has two separate data stream assignments (translators) one for the PRESS, and one for the RELEASE. Verify, with each data stream captured, that MIDI data-to keystroke conversion-IS working properly. You MUST activate the translator every time you edit its information. So.... after you capture the play button's data (down press and release)... don't forget to activat IT! To activate the HIGHLIGHTED translator, click on the apropriate drop down menu, and click the word ACTIVATE. To verify that you've done things correctly, look down at the bottom of the MT Classic's window. You should see the incoming and outgoing data stream indicators. If you only see the ones on the left (or none) light up, you have a problem. Use the stop sign icon at top right to activate the translators (if they don't show activation and you HAVE activated them individually, as instructed). If you are having further troubles, you should go back over the previous information and double check your work.

Good luck!

The MT Classic\melody harvester file:

slight 'bug' found in the configuration on May 31st. If you are confident, you could make the change yourself. I will spare you the details--just replace the MT Classics output (delete key) with two ctrl+z commands, and add in a redo button while you're at it.

Download here:
BehringerFCB1010_AbletonLive_MelodyHarvester.bmtp