ARCOAURA PHYSICAL MODEL // S04
Circuit Simulation
Implemented component models compile into a stateful modified nodal analysis network, with nonlinear behavior solved iteratively and broader validation still underway.
MNA engine activeThe schematic is the sound path
ArcoAura uses modified nodal analysis to solve electrical networks. The current engine includes resistors, capacitors, inductors, sources, potentiometers, controlled sources, diodes, simplified bipolar and junction field-effect transistors, simplified triodes, transformers, and speaker loads.
Reactive components retain state between samples. Nonlinear devices use iterative Newton-Raphson solving. These are engineering approximations, not component-grade SPICE validation. A designed circuit can be auditioned through the same physical or hybrid model that its module manifest describes.
Why modified nodal analysis
- Each non-ground circuit node receives an unknown voltage
- Voltage sources and inductors add branch-current unknowns
- Components stamp conductance and source terms into a matrix
- The solver computes all node voltages for the current time step
- Capacitor and inductor companion models carry history forward
- Nonlinear components restamp around the latest estimated operating point
- Subcircuits flatten into the same explicit netlist before processing
A component stamps a relationship
The complete solver is larger, but its central idea is teachable. A resistor between two nodes contributes conductance to both diagonals and negative conductance between the nodes. ArcoBASIC can communicate that rule directly.
' Add one resistor relationship to a conductance matrix.
FUNCTION StampResistor(matrix, nodeA, nodeB, resistanceOhms)
conductance = 1 / MAX(0.000001, resistanceOhms)
' Each connected node sees the resistor conductance.
matrix[nodeA][nodeA] = matrix[nodeA][nodeA] + conductance
matrix[nodeB][nodeB] = matrix[nodeB][nodeB] + conductance
' The off-diagonal terms describe current between the nodes.
matrix[nodeA][nodeB] = matrix[nodeA][nodeB] - conductance
matrix[nodeB][nodeA] = matrix[nodeB][nodeA] - conductance
RETURN matrix
END FUNCTION
matrix = [[0, 0], [0, 0]]
matrix = StampResistor(matrix, 0, 1, 10000)
PRINT matrixPhysical where useful, hybrid where honest
Analog networks benefit from circuit-derived behavior. Delay lines, modulation, convolution, and some reverberation structures are naturally digital. ArcoAura allows hybrid circuit and DSP modules while keeping each processing domain explicit.
A breadboard compiler validates connections, resolves nets, and converts visual designs into processing components. The interface should never draw a schematic that is disconnected from the running model.
What a stamped matrix teaches about approximation
Modified nodal analysis and Newton-Raphson iteration are specific to solving electrical networks. Most projects will never stamp a conductance matrix. What is worth keeping is how a general solving method got built from small, individually understandable rules.
The same shape appears in any system built from composable local rules that sum into global behavior: a physics engine where each constraint contributes independently to a solved state, a build graph where each rule only knows its own inputs and outputs, a spreadsheet where each cell’s formula is locally simple and the sheet’s behavior emerges from all of them together.
- Give every component a local, understandable contribution to the whole. A resistor only adds conductance to two diagonal entries and subtracts it from two off-diagonal entries; the global matrix is just the sum of small, verifiable rules, not one opaque calculation.
- Let iterative solving handle what a single pass cannot. Nonlinear components restamp around the latest estimated operating point rather than forcing the whole system into a closed-form solution that only works for the linear case.
- Carry state forward explicitly where the underlying process requires it. Capacitor and inductor companion models keep history between samples, so the solver does not have to pretend each time step starts from nothing.
- Keep domains explicit instead of blending them for convenience. Circuit-derived behavior stays circuit-derived, DSP-native structures like delay lines stay DSP, and a hybrid module documents which parts are which.
Key terms, in plain language
You do not need a systems background to follow the work. These are the specialized terms used on this page.
- MNAModified Nodal Analysis
- A circuit-solving method that builds equations for node voltages and selected branch currents, then solves the resulting matrix at each time step.
- Newton-Raphson method
- An iterative numerical method used to solve nonlinear equations. Circuit simulators use it to converge on the behavior of devices such as diodes, transistors, and tubes.
- Impedance
- A frequency-dependent measure of how strongly a circuit opposes electrical current. Unlike plain resistance, it includes the behavior of capacitors and inductors.
- Signal chain
- The ordered path a signal follows through a system. In ArcoAura it begins with string motion and can continue through pickup, pedals, amplifier, speaker, microphone, and room.