THATDIP Preamp - THAT1570/5171 Digitally Controlled Mic Pre [PICS]

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
PSU

innersonix_umpc_psu_v1.jpg


Tested and working - supports up to 8 preamps + front panel + MIDI remote board. In theory should power up to 16 channels, but yet to test. It supports +48VDC phantom, +/- rails for anything bipolar (I use +/-17V for THATDIP Lucidity Preamps), and +3.3VDC digital supply for all the control + display + relays. The digital rail is LM2676 based and could be modified to do +5VDC with a different part #. The PCB is $20USD + shipping.

UMPC - Universal Mic Preamp Controller

innersonix_umpc_front_panel_v4e.jpg


Tested and working - finishing up the firmware. The controller uC itself is going to be $25USD and the front panel PCB is $15, so as a kit = $40 + shipping. I will be doing firmware updates occasionally to support new features and/or fix bugs, so people who have purchased the UMPC chip from me before will get the new one for free and only pay for shipping or I can include it free of charge to any order they place with me.

UMPC MIDI - Remote Control Board

innersonix_initial_midi_prototype.jpg


Hardware is working but the firmware is not done yet. It will support both autonomous operation (i.e. with no front panel installed) and working in conjunction with the UMPC front panel. I want to get this out of the way quickly as I'm designing a network control system for these preamps. But this board would be VERY useful for Pro Too1s people as it will see the preamps as Av1d PREs and store their data in session files for later recall. The UMPC MIDI chip will be $25USD and the PCB is $10USD totalling $35USD + shipping for the whole MIDI remote control kit. As with the UMPC chip the same firmware upgrade scenario applies to existing customers.

Now, as far as the actual preamp: I've encountered a major design flaw in the boards I got and the workaround is not that user-friendly. Therefore I'm sending the revised layout to manufacturing this week and will order expedited shipping to get them back ASAP. I want it to be as straight-forward as possible for people to put these awesome preamps together. I want this to become a suitable DIY project for first-timers to consider and I am working hard to make this happen. =) My health has been fairly poor in the last couple of weeks and that slowed down the progress of this project considerably, but I'm slowly picking up the pace. Please bear with me. =)

QUESTION: Does anyone around here own a D1g1design (AV1D) PRE preamp or a Grace Design 802? I need to find out what heartbeat MIDI message PT sends each 8 seconds to the preamp and what message the preamp responds with. Please drop me a PM if you can help. Thank you!
 
ffarrell said:
looking to buy a few boards.  any link to buy the boards?

The only board that is 100% ready to use at the moment is the PSU. If you are interested please PM me and specify your shipping address + how many you need. Thank you!

Otherwise please read the first post on this page carefully - the preamp boards are being redesigned and are going to be available in a couple of weeks. Stay tuned!
 
Im trying to get you the DIGI/AV1D info you were asking about now.  Hopefully have an answer for you today.

Sure wish there was a way to hook this up to my neve or 312 clones..... :)

I'm interested in hearing the pres though. I'll be down for 4-8 ch by next month.
 
sr1200 said:
Im trying to get you the DIGI/AV1D info you were asking about now.  Hopefully have an answer for you today.

Thank you!!!

Sure wish there was a way to hook this up to my neve or 312 clones..... :)

Actually that's coming... =) Wasn't gonna give this away that soon. =) Have been working on a relay control board to substitute the gain/atten switch on a Neve 1290. The UMPC would control it in 5dB steps. I just need some help figuring out optimal impedances once the 2nd NV stage kicks in. But more on that in a separate thread.

I'm interested in hearing the pres though. I'll be down for 4-8 ch by next month.

There is a link to a preamp shootout between the early prototype Lucidity Preamp, Grace 201, and Millenia STT-1. Give it a listen. =)
 
sr1200 said:
OK the tech guy seems to believe there is no pulse going on besides the initialization when PT loads up. (basically 0's out the pre i guess). 

the midi implementation chart is at the back of this:
http://akmedia.digidesign.com/support/docs/PRE_Guide_v80_56123.pdf
but im sure you already had that stuff.

Look at page 15 of the Grace 802 manual - http://www.gracedesign.com/support/m802_manual_revH.pdf  - it explains the "heartbeat" part. The PRE MIDI implementation only mentions channel control protocol, not the general stuff. Hmm....  I wonder if someone could capture a minute worth of MIDI data between PT and PRE with MIDIOX or a similar tool.
 
I asked if they could set it up to see if there is something going out.  If not, i can set something up at home tonight and see if i get any results.
 
This is what I was sent... hopefully it helps.  I haven't done midi sysex stuff in forever and a day.

All messages are Continuous Controller(CC) messages and have a leading byte of 0xBX
where the B signifies that this is a CC message and
the X is the MIDI channel number (1-16)
--------------------------------------------------------

Rules for 3rd party developers:

1) ProTools only supports turning off all mutes after it receives the first heartbeat

2) Send status only works in one direction..... from ProTools to the preamp. In other words,
ProTools is responsible for making sure its UI is in sync with the Preamp front panel.
It does this by sending a send stautus message w/ the value 0x7f. When the preamp receives this message
it should send the state of every element on that channel then send a send status message w/ the value 0x00.
ProTools asks for preamp channel status sequentially. It will wait to receive the send status 0x00 message
before it asks for status on any other channel it needs to sync with.

3) The heartbeat is sent once every 8 seconds from ProTools and requires an immediate respopnse from the preamp.
This is how ProTools determines if it is still in communication w/ the preamp at idle.

4) ProTools currently does not use or request the version number. In a future release this may be used to upgrade
the firmware of our PRE preamp from within ProTools.

5) Preamp must send a "lockout off" message upon powerup if the preamp clears lockout mode when power cycled.

6) ProTools supports an input gain range of 0 - 69db in 3db steps as defined in the Gain Table.

7) The pad feature tells the preamp to attenuate its input gain. On PRE this is -18db and is reflected as such in
the ProTools UI. There is currently no method of dynamically changing the UI to reflect a different amount of attenuation.

8) Reset to defaults is a single message that causes the preamp to reset all its controls to their default settings. On
PRE this is currently and input gain of 0db and all other controls in the "off" state. Other preamps could implement
different default states but this may confuse a user who is used to the PRE defaults. 


---------------------------------------------------------

Gain Table:

3rd byte gain value
-----------    -----------
0x00 00
0x01 03
0x02 06
0x03 09
0x04 12
0x05 15
0x06  18
0x07  21
0x08  24
0x09  27
0x0A  30
0x0B  33
0x0C  36
0x0D  39
0x0E  42
0x0F  45
0x10  48
0x11  51
0x12  54
0x13  57
0x14  60
0x15  63
0x16  66
0x17  69

-----------------------------------------------------------


Heartbeat
2nd byte 3rd byte
------------- ----------------
0x0A 0x00 = sent from ProTools, 0x7F = sent from Preamp
---------------------------------------------------------



Lockout mode
-------------
2nd byte 3rd byte
------------- ----------------
0x0C 0x00 = off, 0x7F = on
---------------------------------------------------------




Reset To Defaults
2nd byte 3rd byte
------------- ----------------
0x0E irrelevant
---------------------------------------------------------




Version Number of Preamp
2nd byte 3rd byte
------------- ----------------
0x0F irrelevant
---------------------------------------------------------



Mic Pre channel #1
-------------
2nd byte 3rd byte
------------- -----------------
0x00 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x01 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x02 : Pad 0x00 = off, 0x7F = on
0x03 : Insert 0x00 = off, 0x7F = on
0x04 : Phantom 0x00 = off, 0x7F = on
0x05 : Phase 0x00 = off, 0x7F = on
0x06 : HP Filter 0x00 = off, 0x7F = on
0x07 : Mute 0x00 = off, 0x7F = on
0x08 : Input Gain (coarse) currently not implemented
0x09 : Input Gain (fine) see Gain Table
0x0D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools


Mic Pre channel #2
-------------
2nd byte 3rd byte
------------- -----------------
0x10 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x11 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x12 : Pad 0x00 = off, 0x7F = on
0x13 : Insert 0x00 = off, 0x7F = on
0x14 : Phantom 0x00 = off, 0x7F = on
0x15 : Phase 0x00 = off, 0x7F = on
0x16 : HP Filter 0x00 = off, 0x7F = on
0x17 : Mute 0x00 = off, 0x7F = on
0x18 : Input Gain (coarse) currently not implemented
0x19 : Input Gain (fine) see Gain Table
0x1D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools


Mic Pre channel #3
-------------
2nd byte 3rd byte
------------- -----------------
0x20 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x21 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x22 : Pad 0x00 = off, 0x7F = on
0x23 : Insert 0x00 = off, 0x7F = on
0x24 : Phantom 0x00 = off, 0x7F = on
0x25 : Phase 0x00 = off, 0x7F = on
0x26 : HP Filter 0x00 = off, 0x7F = on
0x27 : Mute 0x00 = off, 0x7F = on
0x28 : Input Gain (coarse) currently not implemented
0x29 : Input Gain (fine) see Gain Table
0x2D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools


Mic Pre channel #4
-------------
2nd byte 3rd byte
------------- -----------------
0x30 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x31 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x32 : Pad 0x00 = off, 0x7F = on
0x33 : Insert 0x00 = off, 0x7F = on
0x34 : Phantom 0x00 = off, 0x7F = on
0x35 : Phase 0x00 = off, 0x7F = on
0x36 : HP Filter 0x00 = off, 0x7F = on
0x37 : Mute 0x00 = off, 0x7F = on
0x38 : Input Gain (coarse) currently not implemented
0x39 : Input Gain (fine) see Gain Table
0x3D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools


Mic Pre channel #5
-------------
2nd byte 3rd byte
------------- -----------------
0x40 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x41 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x42 : Pad 0x00 = off, 0x7F = on
0x43 : Insert 0x00 = off, 0x7F = on
0x44 : Phantom 0x00 = off, 0x7F = on
0x45 : Phase 0x00 = off, 0x7F = on
0x46 : HP Filter 0x00 = off, 0x7F = on
0x47 : Mute 0x00 = off, 0x7F = on
0x48 : Input Gain (coarse) currently not implemented
0x49 : Input Gain (fine) see Gain Table
0x4D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools


Mic Pre channel #6
-------------
2nd byte 3rd byte
------------- -----------------
0x50 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x51 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x52 : Pad 0x00 = off, 0x7F = on
0x53 : Insert 0x00 = off, 0x7F = on
0x54 : Phantom 0x00 = off, 0x7F = on
0x55 : Phase 0x00 = off, 0x7F = on
0x56 : HP Filter 0x00 = off, 0x7F = on
0x57 : Mute 0x00 = off, 0x7F = on
0x58 : Input Gain (coarse) currently not implemented
0x59 : Input Gain (fine) see Gain Table
0x5D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools


Mic Pre channel #7
-------------
2nd byte 3rd byte
------------- -----------------
0x60 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x61 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x62 : Pad 0x00 = off, 0x7F = on
0x63 : Insert 0x00 = off, 0x7F = on
0x64 : Phantom 0x00 = off, 0x7F = on
0x65 : Phase 0x00 = off, 0x7F = on
0x66 : HP Filter 0x00 = off, 0x7F = on
0x67 : Mute 0x00 = off, 0x7F = on
0x68 : Input Gain (coarse) currently not implemented
0x69 : Input Gain (fine) see Gain Table
0x6D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools



Mic Pre channel #8
-------------
2nd byte 3rd byte
------------- -----------------
0x70 : Input Source 0x00 = Mic, 0x01 = Line, 0x02 = Inst
0x71 : Input Z 0x00 = 1.5K, 0x01 = 10K, 0x02 = 1.5M
0x72 : Pad 0x00 = off, 0x7F = on
0x73 : Insert 0x00 = off, 0x7F = on
0x74 : Phantom 0x00 = off, 0x7F = on
0x75 : Phase 0x00 = off, 0x7F = on
0x76 : HP Filter 0x00 = off, 0x7F = on
0x77 : Mute 0x00 = off, 0x7F = on
0x78 : Input Gain (coarse) currently not implemented
0x79 : Input Gain (fine) see Gain Table
0x7D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools
 
sr1200 said:
This is what I was sent... hopefully it helps.  I haven't done midi sysex stuff in forever and a day.

All messages are Continuous Controller(CC) messages and have a leading byte of 0xBX
where the B signifies that this is a CC message and
the X is the MIDI channel number (1-16)
--------------------------------------------------------

Rules for 3rd party developers:

1) ProTools only supports turning off all mutes after it receives the first heartbeat

2) Send status only works in one direction..... from ProTools to the preamp. In other words,
ProTools is responsible for making ... et al ...   


Doncha just love this site? A mine of information.
 
sr1200 said:
Heartbeat
2nd byte 3rd byte
------------- ----------------
0x0A 0x00 = sent from ProTools, 0x7F = sent from Preamp
---------------------------------------------------------

Lockout mode
-------------
2nd byte 3rd byte
------------- ----------------
0x0C 0x00 = off, 0x7F = on
---------------------------------------------------------

Reset To Defaults
2nd byte 3rd byte
------------- ----------------
0x0E irrelevant
---------------------------------------------------------

Version Number of Preamp
2nd byte 3rd byte
------------- ----------------
0x0F irrelevant
---------------------------------------------------------

You are THE MAN!!! =) Precisely what I needed! Thank you!

Also I had a question about implementing grouping on my UMPC. There are two ways of doing this:

1st is hard limiting gains - i.e. if the gain range is 20-75dB and, say, you group channel #1 and #2. #1's gain is 30 and and #2's gain is 45 (i.e. 15 dB apart). As you decrease #2's gain it stops at 35dB (because channel #1 is hit with its lowest gain limit - 20). Same applies when you increase channel #1's gain, it stops at 60, because channel #2 is hit its upper boundary of 75.

2nd way is "soft limiting" gains - i.e. it permits full gain range on every grouped channel and channels that are at their limits just stay there retaining the offset relative to the channel being currently modified. I.e. in the scenario above you can decrease channel #2 all the way to 20 and channel #1 will stay at 20 during the 15 steps of #2's gain decrease. As you increase #2's gain it goes back up to 35 before channel #1 starts moving upwards in sync with #2's changes. This way is much harder to implement than the 1st way, but I need opinions whether it's worth it and is much more useful than the 1st way in real-world practical scenarios. I hope it's clear the way I described it. =)

Thanks!
 
sr1200 said:
ProTools is responsible for making sure its UI is in sync with the Preamp front panel.
It does this by sending a send stautus message w/ the value 0x7f. When the preamp receives this message
it should send the state of every element on that channel then send a send status message w/ the value 0x00.

AND

Heartbeat
2nd byte 3rd byte
------------- ----------------
0x0A 0x00 = sent from ProTools, 0x7F = sent from Preamp
---------------------------------------------------------

AND THEN AGAIN

Mic Pre channel #1
-------------
2nd byte 3rd byte
------------- -----------------
.........
0x0D : Send status 0x00 = sent from preamp, 0x7f = sent from ProTools

Is it just me or is there a contradiction? Anyway, this isn't hard to reverse engineer the correct way from here. =)
 
the way i understood it, the heartbeat comes FROM protools and the individual channels are responding in sequence.  So a pulse goes out, and the pre responds from 1-8  with the correct responses... my question is if you only do a 4 channel unit... what happens to the missing 4 channels responses?  Thats going to be something to try.
 
sr1200 said:
the way i understood it, the heartbeat comes FROM protools and the individual channels are responding in sequence.  So a pulse goes out, and the pre responds from 1-8  with the correct responses... my question is if you only do a 4 channel unit... what happens to the missing 4 channels responses?  Thats going to be something to try.

Nothing happens - it will just ignore it (as well as Input Z, source, Mute, and HPF messages). It will respond to whatever it has capabilities to respond, which are determined dynamically at startup.

The question above was about the description contradicting itself saying that PT send 0x7F message to PRE, and below it says it sends 0x00 message to PRE. And then the other way around again. =) But I will figure that out - this info is enough for me to continue. Thanks!

What about the grouping implementation question above?
 
Back
Top