HD RadioPCRadioPC 

HD Radio For Windows PC’s

HD RadioPC is a software interface for the Directed “Car Connect” DMHD-1000 and Visteon Zoom HDZ300 HD Radio receivers.  It runs on computers that use the Windows XP or Vista operating systems.  A serial interface cable provides two-way communications with the HD Radio receiver.  Please consult the user manual included with your receiver for functional information on each button displayed.

 

Installing the HD RadioPC software.

 

Using the HD RadioPC Program

 

Monitor and Configuration Panel

 

Auto Record

 

Archived Songs

 

Editing Songs

 

Customizing the display

 

Ending the HD RadioPC application

 

Using HD RadioPC with other software

 

Program Options

 

Keyboard Commands

 

API Messages

Streaming and network remote control

 

Trouble Shooting And Error Messages

Copyright and License Agreement

 

 

Installing the HD RadioPC software.

HD RadioPC is distributed on CD or DVD rom disks, which can be obtained directly from the HD RadioPC website.  Insert the CD or DVD into your computers optical media drive.  If the drive is configured for auto-run the installation program will start automatically within a short duration, otherwise you will need to run the SETUP.exe file found in the root folder of the installation CD or DVD.  Once the setup menu appears, click on the Install button to start software installation.  In some cases prerequisite software may be installed to ensure that your computers operating system files are up-to-date.   You will also be provided the option of installing AIVMS during the setup process.  AIVMS controls secure remote access to HD RadioPC in addition to its audio streaming, scheduling, and event detection system.  The AIVMS built-in menu set includes all HD RadioPC commands to further extend the control flexibility of HD RadioPC software.

 


 

Using the HD RadioPC Program

 

When the program starts and a successful connection to the HD Radio receiver has been established the POWER button in the upper right corner is illuminated with the current backlight color rather than white. This is the "READY" operation  mode.   Please allow at least 2 minutes for the "initial" receiver connection to take place.  Port detection and other initializations will occur during the initial execution of the software,  receiver connections will be nearly instantaneous after this "first run" initialization.  If the POWER button remains white after two or three minutes and the initialization dialog has appeared more than once then you will need to check to ensure you have the receiver power and serial cables attached properly and restart the HD RadioPC application. Once a successful connection to the receiver has been observed (the software indicating operational READY mode), you can click the POWER button to switch the system on.

 

Preset Buttons

To set a preset button to the current station, click and hold the preset button down for approx. 5 seconds. 

The preset indicator at the lower left of the LCD display will indicate the preset change.  Hovering your mouse cursor over a preset button will display the current channel that has been set for that button.

The software functions quite similar to how the hardware controller functions other than extended MENU features such as recording.  The user manual included with your receiver provides in-depth functional information for each of the displays buttons. Various hdradio.ini file settings can modify the appearance of HD RadioPC, and there are also the following command line switches available:

 

/MINIMIZED

 

Starts HD RadioPC minimized to the Windows system tray.

 

/HIDE

 

Runs HD RadioPC in invisible mode.  No display will appeear on the windows desktop and no icon will appear in the Windows system tray.

While running invisible mode, all control of HD RadioPC must be provided though Windows COM messaging. 

See API Messages for more information on how to control HD RadioPC using API COM messaging.

 

 

 

Control Overview

 

 


1.
LCD - Display Screen
2.
BAND Button - Select AM or FM
3.
DISPLAY Button - Cycles between available display modes
4.
MENU Button - Access to MENU options;  record panel, 
    auto record, and volume.
Also acts as an Exit function when 
    in
MENU options.
5.
Up Arrow - Increases frequency selection or sub channel
    Down Arrow - Decreases frequency selection or sub channel
     Right Arrow
- Seek UP according to currently active Seek Mode
     Left Arrow
- Seek DOWN according to currently active Seek Mode
     SEL
Button - Used to select MENU options


6.
POWER Button - Turns the unit ON or OFF
7.
PRESET (1-5) Buttons - Station presets
8.
BANK Button - The BANK button is used to
     select the Preset Bank number for loading
     and saving channels. Pressing and
     releasing this button changes the Preset
     Bank in a circular list from A to D. When the
     bank changes, the radio tunes to the station
     last accessed in the newly selected bank.
9.
SEEK Button - Selects between different
     modes
10.
MUTE


 

 

MENU : Monitor and Configuration Panel

 

Recording features include a monitor panel that provides sound level adjustment and configuration of your PC audio hardware.  To view the monitor panel click or touch the MENU button to select the menu panel, then click or touch the Pane On/Off button located on the menu panel to display the monitor and configuration panel.

 

 

 

 

The HD RadioPC "Menu" panel. 

 

 

 

In addition to manual recording of songs played on the HD Radio receiver, there is an Auto Record feature.  The Auto Record feature is a smart system that detects the start and end of a song.  


For best recording results, adjust the recording input level by moving the "Rec Vol" slider so that the level indicators are close to their peak values without exceeding the max values displayable.  If you click or touch the “Start” button located on the monitor and configuration panel, recording will start immediately.  Forced record mode does not provide automatic song start or end detection, and you must click the “Stop” button in order to end the recording at the appropriate time. 

 

 

 

 

 HD RadioPC with monitor and recording configuration panel "On".


 

 

 

Auto Record

 

To activate the Auto Record feature, click or touch the Auto On/Off button located on the menu panel.  Recording is triggered when the start of a song is detected, and stopped when the song is over or  when an interruption of the song occurs.  The recording LED located at the lower left of the display will indicate that it is listening by lighting with the same backlight color of the display.  When recording is active the display LED’s color will change to red.  It is advantageous to add the channel you will be recording as a channel preset, as this will enable additional Synchronization options for fine tuning the song events. 

 

 

The HD RadioPC "Menu" panel with Auto Record "ON" and recording "ACTIVE".

 

 

Synchronization

The Sync value is a duration in seconds added to the song info event (Title switch) as well as to the end event for the song.  Most HD subchannels are software controlled and some stations will add a specified delay between the song information change and the actual start of the song.  This shift in the song timing is addressed by the Sync option.  Click on the Sync button when the song actually starts for the first song when the Auto Rrecord feature has been activated, all songs recorded after that will include the Sync timing.  You can also specify a Sync value manually by typing a valid value in for the Sync entry.  Synchronization data is stored for each channel that you have added as a preset channel and the Sync info will be recalled when the channel is selected at a later time. 

 

Best results are obtained when there is little or no announcer interruption over the actual song.  In cases where there is no pause at all between the announcer and the start of the song, the recorded song may contain some undesired elements.  Interruptions prior to the song completing may also be included in the recorded song.  A delay added using the Synchronization feature will typically address this when these interruptions are timed and repetitive.  Even in very severe cases, a perfect song recording can still be obtained since you can later edit the song to  remove any  remaining elements. 

 

There are rare instances where an HD Radio station interrupts the text data transmit with information other than the song artist and title of the current song while the song is still playing.  For channels such as this we have included an add-in module called "Info.msi".  The Info add-in requires an internet connection in order to work, and it simply determines the song duration from an extensive database of song information located on the internet.  It uses this determined duration to ignore any inadvertent interruptions of the transmitted text data until the song has completed.  When song duration has been determined by the Info add-in module, the elapsed time displayed  for the song recording will turn to Bold.  This typically occurs within seconds of the recordings start, and any changes of the text data transmit will then be ignored.  Once this duration has expired the recording elapsed time will revert back to its normal non-bold display, and song end detection will resume.


 

 

Archived Songs

 

HD RadioPC saves recorded songs in mp3 format.  The recorded songs are located in the “Audio Archives” folder within the software installation directory if you are running Windows XP.  If you are running Windows Vista the recorded songs are located in the "Audio Archives" subfolder within your "Documents" folder.  Song files are named according to the Artist and Title of the song, and will also include this information within the mp3 files ID3 tag.  The generated mp3 files can be played back with a variety of popular multimedia software such as WinAmp, Windows Media Player, etc. 

You can access the Audio Archives folder directly by selecting "Files" from the HD RadioPC windows system tray icon menu.

 

 

Editing Songs

To edit a saved mp3 song file, first ensure that the monitor and configuration panel has been activated.  Click the "Edit" button located at the lower left of the monitor and configuration panel and the edit pane will activate.  Receiver output will be muted automatically when the edit pane is activated. 

 

 

 

The illustration above shows the edit pane with an mp3 file already opened.  Clicking the "Start" button will set the start cut time and clicking the "Finish" button will set the end cut.  You can preview the new cuts applied by clicking on the respective "Pre" button.  Fine adjustments to both the Start and End cut can be made by clicking the left and right arrow buttons.  Clicking on the song position scroll bar allows you to move to any position within the song, and a right click will resume test playback at the clicked position. 

 

The information balloon is actually a button that will open the id3 tag pane.  Make any changes to both the id3 v1 and id3 v2 tags that you wish, and then click the "Close" button.  The new tag info will be saved when you save the opened file.

When you are done editing the song, click the "Save" button to save it to a file.  The default file save name can be changed so that the original song is not overwritten if you wish. 

 

Important :  Exit the edit pane by clicking on the "Exit" button to resume normal receiver control.

 


 

 

Customizing the display

 

The display itself  is actually a collection of image files (.bmp).  These files can be modified extensively if desired as long as each files original name remains unaltered.  The graphic files for the display are also known as a skin, thus the files are located in the “Skin/HD Radio” folder within the software’s installation directory.  The file names correspond to detected or forced screen resolutions.  HD RadioPC can also be used without its internal skins.  Setting the displayonly value to 1 in the hdradio.ini file will enable skinless mode in which only the LCD portion of the display is visible.  The display area can also be forced to a larger or smaller size by setting the “screen=” to a supported value.  The LCD display area  can be positioned anywhere on your screen by setting the hdradio.ini file coordinates “left=” and “top=” to a valid value in pixels.  For example, “ left=400” represents the exact middle of an 800x600 screen.  Button hotspots are specified in the hdradio.ini file allowing you to position your own button designs anywhere. You can essentially create your own totally new look as an interface if desired, only the LCD portion of the display graphics are somewhat static.  The color of the LCD display can be changed to any 24 bit color by setting the “backlight” to a decimal value representation of the color.

 


 

 

Ending the HD RadioPC application

 

Left click or touch the software’s icon located in the windows system tray and then click or touch on the “Exit” menu item.

 


 

 

Using HD RadioPC with other software

 

The LCD portion of the display can be used by itself within other software such as a front end like Road Runner.  The ”hdradio.ini” file located in the software installation folder contains several user modifiable settings.   The "Options" panel within the HD RadioPC application menu modifies this settings. The following excerpt from the hdradio.ini file should provide adequate explanation of these features :

 

; backlight is a 24-bit numeric color value.  Convert hex color values to decimal before using.

 

backlight=8438015

 

; displayonly toggles off HD RadioPC's skins so that the LCD portion of the display alone

; can be used in other skinable applications such as RoadRunner

; displayonly=1 for skinless HD RadioPC, default is 0

 

displayonly=0

 

 

;"Top" and "Left" are the screen coordinates of the display LCD. These settings

;can be used to position the display LCD in other skinable applications such as RoadRunner.

;When no entry is found the last detected position is used. 

 

top=

 

left=

 

; The "screen" setting specifies how large the display will appear

; This setting overrides automatic screen size detection and will effect

; both skinless and normal modes.

; If "screen=" has no entry then automatic screen size detection is used.

; Valid settings are : 800, 1024, or 1280

 

screen=

;The "skin" setting specifies the skin set to use for the display.  

;The text at the beginning of the skin names indicates the skin set.  

;For example, "darkready800.bmp" refers to a 800x600 skin graphic within the "dark" skin set 

;that appears when the display is showing as connected to the receiver and is currently turned off.  

;There are three modes of operation, and an individual skin file name will designate one of these specific operation modes:  OFF, READY, or ON

 

skin=visteon

; The keyscan entry toggles on or off the software keyboard key press

; detection. 1=On, 0=Off

 

keyscan=1

 

; ext_control is the Window name of your external controlling application (optional).

; Example:  ext_control=RoadRunner

 

ext_control=

 

; ext_status is the command required for HD RadioPC to obtain screen

; status info from your application. (optional)

; Example: ext_status=REQUEST;HDRadio Interface;RRSCREEN

 

ext_status=

 

; ext_trigger is the keyword sent along with the current screen status from your app. (optional)

; Example: ext_trigger=RRSCREEN

 

ext_trigger=

 

; ext_panels are the screens within your app where you want HD RadioPC to be audible. (optional)

; Example: ext_panels=MENU.SKIN, RADIO_PLAYER.SKIN

 

ext_panels=

 

; ext_show is the screen within your app where the HD RadioPC display will be presented. (optional)

; Example: ext_show=RADIO_PLAYER.SKIN

 

ext_show=

 

;  The following are button definitions. Button hotspot coordinates are in pixels.
;  You can use a graphics editor like paintbrush to find the coordinates of your 
;  button "hotspots" for a customized skin. In paintbrush the pixel coordinates appear 
;  at the lower right of the editor screen as you move your mouse over the image. 
;  The format is: "B#=left,right,top,bottom,command,label"
 
[buttons800]
B1=56,79,142,166,"preset 1","1"
B2=110,132,142,166,"preset 2","2"
B3=162,186,142,166,"preset 3","3"
B4=215,238,142,166,"preset 4","4"
B5=268,292,142,166,"preset 5","5"
B6=336,374,142,166,"bank","BANK"
B7=395,435,142,166,"seek","SEEK"
B8=336,374,106,126,"band","BAND"
B9=336,374,68,88,"disp","DISP"
B10=336,374,29,49,"menu","MENU"
B11=391,419,57,97,"left",""
B12=471,499,57,97,"right",""
B13=424,466,23,52,"up",""
B14=424,466,101,129,"down",""
B15=430,460,61,91,"select","SEL"
B16=491,515,20,44,"power",""
B17=491,515,108,132,"mute",""
B18=513,523,3,12,"minimize",""



 

 

Program Options

 

The "Options" panel allows you to set program options such as display appearance.  To access the Options panel, left click or touch the software’s icon located in the windows system tray and select "Options" from the menu. 

 

 

 

 

The Options panel settings will modify most of the setting values available in the hdradio.ini file.


 

 

Keyboard Commands

 

The HD RadioPC software communicates with other applications such as Road Runner.  The software will correctly hide itself when the front end screen changes, and also end at the appropriate time.  Keypresses  can be issued with a “Sendkey” type message or simply typed on the keyboard.  The mappings are as follows:

 

 

Home =  POWERON

       

End =  POWEROFF

 

Esc =  MINIMIZE

 

Left Arrow  =  LEFT

 

Right Arrow =  RIGHT

 

Up Arrow =  UP

 

Down Arrow =  DOWN

 

Page Up  = VOLUME UP

 

Page Down  = VOLUME DOWN

 

Enter =  SELECT

 

Ctrl =  SEEK

 

Spacebar =  MUTE

 

Alt =  DISP

 

Tab =  BAND

 

0 =  BANK

 

1 =  PRESET 1

 

2 =  PRESET 2

 

3 =  PRESET 3

 

4 =  PRESET 4

 

5 =  PRESET 5

 


 

 

API Messages

 

Each of the commands above associated with a keyboard key press can also be sent directly to the software using an api “SendMessage” routine

For example, the following command issued from your software application will cause the HD RadioPC software to Power On:

COMSend "HDRadio Interface", " POWERON "

 

The Visual Basic code for the COMSend function used in the above example is as follows:

 

Public Function COMSend(Window As String, data As String)

 

Dim lHWnd   As Long

Dim cds     As COPYDATASTRUCT

Dim buf() As Byte

 

' Get the handle of the target application's visible window.

 

lHWnd = FindWindow(vbNullString, Window)

 

' Copy the string into a byte array,

' converting it to ASCII. Assign lpData

' the address of the byte array.

 

ReDim buf(Len(data))

Call CopyMemory(buf(0), ByVal data, Len(data))

With cds

                                 .dwData = 1

                                 .cbData = Len(data)

                                 .lpData = VarPtr(buf(0))

End With

 

' Send the string.

 

Call SendMessage(lHWnd, WM_COPYDATA, 0&, cds)

 

End Function

 

 

The following declarations should be included in your codes module:

 

Public Const WM_COPYDATA = &H4A

 

 

Public Type COPYDATASTRUCT

    dwData As Long

    cbData As Long

    lpData As Long

End Type

 

Public Declare Function FindWindow Lib "user32" Alias _

   "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName _

   As String) As Long

 

Public Declare Function SendMessage Lib "user32" Alias _

   "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal _

   wParam As Long, lParam As Any) As Long

 

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _

   (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

 

 

 

 

 

There are also some specific commands not accessible by keyboard key press.  They are:

 

 

SHOW

 

Maximizes the software display.  Has no effect while in invisible mode.

 

 

TUNE

 

Tunes to a specific channel.

 

Example :  COMSend "HDRadio Interface", "TUNE 101.5 FM”

 

 

REC_ON

 

Start song recording.

 

 

REC_OFF

 

Stops song recording.

 

 

AUTOREC

 

Switches Auto Record "ON"

 

 

STOP

 

Switches recording off no matter what the recording state is (auto record or normal).

 

 

 

END or EXIT

 

Causes the HD RadioPC application to terminate.

 

 

ATTACH

 

The ATTACH command will cause HD RadioPC to send real time status updates to your own software.  An example of the command sent to attach your program to the HD RadioPC software API:


COMSend "HDRadio Interface", "ATTACH  yourwindowname"

 

The format of the string it sends to your app is as follows:

 

"HD Radio | analog signal  | volume | artist  | title  | station name  | call sign | genre | HD active  | HD lock  | sub channel  |sub channel count  | muted  | tuner seeking  | HD signal  | tuner tuned  | port opened | power on  ~"

 

Note that your software must have the correct receive function routines in place in order to receive windows COM messages.

 

Discrete power control is also provided by issuing the POWERON or POWEROFF commands.  Note that the POWER api command itself is simply a toggle.

 

AIVMS Integration

 

Any of the available API commands can be issued with AIVMS.  For example, if you wish the HD RadioPC application to run at a particular time and start automatic recording, you would schedule the run of an action shortcut with the target text box similar to this:

 "C:\Program Files\AIVMS\AIVMS.exe" CMD HD RADIO | SLEEP 4 | CMD POWERON | SLEEP 15 | CMD AUTOREC

 

Action shortcuts are easy to create using the AIVMS Task interface, just create a new task, select EVENT as the interval and  "Shortcut" as theTrigger, then point and click to select commands.  Click the LINK button to chain more than one command, and then the Add Task button to finish.

 

Note : The SLEEP commands just give the HD RadioPC software time to startup and tune to the last channel, you could also include specific channel "preset"  commands to select a different channel, etc.

 

"C:\Program Files\AIVMS\AIVMS.exe" CMD HD RADIO | SLEEP 4 | CMD POWERON | SLEEP 10 | CMD PRESETS | CMD THREE  | SLEEP 5 | CMD AUTOREC  (switches to PRESET 3 before starting auto record)

 

 

Once you have the action shortcut created  you can schedule a time to run the action shortcut quite easily.  Just drag and drop the action shortcut to the primary AIVMS program shortcut on your desktop and AIVMS tasks will open, ready for you to specify a time for the action shortcut to run.    There are various other nice uses for drag and drop scheduling such as a wake to music alarm, or even opening your eBay auction pages when an auction is about to end. 

 

TIP :  The drag and drop functionality is a very good reason to keep an AIVMS program shortcut ( a simple shortcut pointing to the AIVMS executable file with no command line switches ) on your desktop.

 


Streaming and network remote control

 

If you have AIVMS installed on the computer where HD RadioPC resides, you can easily stream your HD Radio receiver’s audio source securely over the internet to a remote client such as another PC or a mobile device.  You can listen to the stream and control the HD radio receiver using AIVMS client software installed on the remote device.  Applications for HD RadioPC's remote control capability include whole house distribution systems where each remote network connected terminal panel is capable of running the HD RadioPC client application.  To enable HD RadioPC remote client access a few initial setup steps need to be conducted:

 

Ensure AIVMS is running, then click on the AIVMS windows system tray  icon and select “Settings” and then “DJ Mode” from the menu.  Ensure that the “Enable TCP/IP Audio Stream Server” option is checked as illustrated below.  Click apply to save changes if required and then close the DJ Mode Settings screen.  Select "Settings" again from the AIVMS menu and then select "Defaults".  Activate the remote connections option  in the "Default Settings" screen by ensuring that the "Yes" option is selected in the Remote Enabled box.

 

 

 

 

 

 

 

 

AIVMS windows client login settings example.   The settings in the example above are used to connect to the local machines AIVMS system for testing purposes.  You would normally specify the remote host as the internal or external IP address of the system you are connecting to.
HD RadioPC NET connected to a remote HD Radio receiver equipped PC over the Internet.


Once you have entered valid login information and connected to the serving AIVMS system the login attempt will occur automatically whenever you start the client application. The client remote interface also initiates upon execution of the HD RadioPC NET application.  HD RadioPC NET has the same familiar interface as HD RadioPC, in fact it is quite difficult to tell the two interfaces apart when they are running side by side on the same system.

 

AIVMS PDA client login settings example

 client software

 

Trouble Shooting And Error Messages

 

HD RadioPC logs its connection attempts along with any error messages in a text file named ” HD_Radio.log” which is located in the software installation folder.  If you encounter issues it might be a good idea to attach this file to an email message and send it to the software developers.

 

 

 

 

 

 

 

Copyright and License Agreement

COPYRIGHT

HD RadioPC software and this User's Guide are copyright 1999-2008 with all rights reserved. The distribution and sale of this software are for the exclusive use of the original purchaser, for use exclusively on computers privately owned by that purchaser. Unlicensed copying, duplicating, selling, or otherwise distributing the software is in violation of the Federal Copyright Law. HD RadioPC software is protected by United States copyright laws and international treaty provisions. User acknowledges that no title to the intellectual property in the Software is transferred and further acknowledges that full ownership rights to the Software will remain the exclusive property of GMPCM. User will not acquire any rights to the Software except as expressly set forth in this license.

LICENSE AGREEMENT

Use of this product constitutes acceptance of these terms and conditions and an agreement to abide by them. This is a license agreement and not an agreement for sale. GMPCM owns copyrights in this software. The original purchaser is granted a personal, nonexclusive, non-transferable license to use this software on a single computer under the terms stated in this agreement. You may not assign or transfer the software or this license without the express written consent of GMPCM. Any attempt to sublicense, assign, or transfer any of the rights, duties, or obligations there under is void.

You may not copy (except for backup purposes), modify, alter, electronically transfer, lease, or rent the software. This license is in effect until terminated. You may terminate it at any time by returning the software and the manual. It will also terminate if you fail to comply with any of the terms and conditions of this agreement. If the license terms are not acceptable, return the unopened package to the original seller for a refund pursuant to their sales terms within 15 days.

REVERSE ENGINEERING

User agrees that it will not attempt, and will use its best efforts to prevent others from attempting to reverse compile, modify, translate or disassemble the Software in whole or in part.

LIMITED WARRANTY AND DISCLAIMER

GMPCM warrants for a period of thirty (30) days from the date of delivery that the media on which the software is supplied will be free from any defects in materials and workmanship. GMPCM further warrants for the same period that the software, under normal use, will substantially perform as described in the documentation when used on supported hardware. GMPCM, and the HD RadioPC or AIVMS software, are in NO way affiliated with General Motor's Corporation or Ibiquity Inc. or any of their subsidiaries.

GMPCM’s entire liability and your exclusive remedy under this warranty will be at GMPCM's option, (a) to attempt to correct the error, (b) help you work around the error, (c) replace the software with functionally equivalent software or diskettes or (d) to license a refund, so long as the Software is returned by the User.

GMPCM MAKES, AND YOU RECEIVE, NO WARRANTIES, EXPRESS, IMPLIED STATUTORY OR IN ANY COMMUNICATION WITH YOU, AND GMPCM SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. GMPCM DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR FREE.

LIMITATION OF LIABILITY

IN NO EVENT WILL GMPCM BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF THE SOFTWARE, EVEN IF GMPCM OR A HD RadioPC SOFTWARE. DEALER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL GMPCM’S LIABILITY FOR ANY CLAIM, WHETHER IN CONTRACT, TORT OR ANY OTHER THEORY OF LIABILITY, EXCEED THE LICENSE FEE PAID BY USER.

GOVERNING LAW

The laws of the State of Utah will govern this agreement, as they are applied to agreements to be entered into and to be performed entirely within Utah. The United Nations Convention on Contracts for International Sale of Goods is specifically disclaimed.

ENTIRE AGREEMENT

This Agreement together with any confirmation letter constitute the entire agreement between User and GMPCM, which supersedes any prior agreement including any prior license from GMPCM, or understanding, whether written or oral, relating to the subject matter of this Agreement.

Should you have any questions concerning this license agreement, or if you desire to contact GMPCM for any reason, please call (801) 290-2028, or write:

GMPCM
875 Meadowbrook EXPY
Suite B203
Salt Lake City, Utah
                                   84123