## Problem Description and Symbolic Representation

The problem involves maximizing the total revenue of a keyboard company that produces two types of analog synthesizer keyboards. Let's denote the manufacturing quantity of the 61-key keyboard as \(x_1\) and the 81-key keyboard as \(x_2\).

### Symbolic Representation:

- **Variables:**
  - \(x_1\) : Quantity of 61-key keyboards
  - \(x_2\) : Quantity of 81-key keyboards

- **Objective Function:**
  The selling price of the 61-key keyboard is $1500, and the 81-key keyboard is $2500. The objective is to maximize the total revenue:
  \[
  \text{Maximize:} \quad 1500x_1 + 2500x_2
  \]

- **Constraints:**
  1. **Oscillator Chips Availability:** The company has 3000 oscillator chips available, with the 61-key version requiring 8 chips and the 81-key version requiring 16 chips:
     \[
     8x_1 + 16x_2 \leq 3000
     \]
  2. **Production Time:** There are 8 working hours a day, with each synthesizer requiring 1.5 hours of production time. Assuming the total available production time is 8 hours * 60 minutes = 480 minutes, and converting 1.5 hours to minutes gives 1.5 * 60 = 90 minutes:
     \[
     90x_1 + 90x_2 \leq 480 \times 60
     \]
     Simplifying:
     \[
     90x_1 + 90x_2 \leq 28800
     \]
  3. **Non-Negativity Constraints:**
     \[
     x_1 \geq 0, \quad x_2 \geq 0
     \]

## JSON Representation

```json
{
  "sym_variables": [
    ["x1", "61-key keyboard quantity"],
    ["x2", "81-key keyboard quantity"]
  ],
  "objective_function": "1500*x1 + 2500*x2",
  "constraints": [
    "8*x1 + 16*x2 <= 3000",
    "90*x1 + 90*x2 <= 28800",
    "x1 >= 0",
    "x2 >= 0"
  ]
}
```

## Gurobi Code in Python

```python
import gurobipy as gp

def solve_keyboard_production():
    # Create a new model
    model = gp.Model("Keyboard_Production")

    # Define variables
    x1 = model.addVar(name="x1", obj=0, vtype=gp.GRB.INTEGER, lb=0)  # 61-key keyboard quantity
    x2 = model.addVar(name="x2", obj=0, vtype=gp.GRB.INTEGER, lb=0)  # 81-key keyboard quantity

    # Set objective function coefficients
    x1.obj = 1500
    x2.obj = 2500

    # Add constraints
    model.addConstr(8 * x1 + 16 * x2 <= 3000, name="oscillator_chips")
    model.addConstr(90 * x1 + 90 * x2 <= 28800, name="production_time")

    # Solve the model
    model.optimize()

    # Print the solution
    if model.status == gp.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"61-key keyboard quantity: {x1.varValue}")
        print(f"81-key keyboard quantity: {x2.varValue}")
        print(f"Total Revenue: {1500*x1.varValue + 2500*x2.varValue}")
    else:
        print("No optimal solution found.")

solve_keyboard_production()
```