user47433: is there a way to read the current pc volume? This is going to be a part of a project that I have in mind that is essentially reading curent pc volume value and giving it an RGB value (green=>30, yellow=<30>60, red=<60) and lighting up an RGB led accordingly.

user30198: There are external devices that show the volume, but you need a driver for that. I don't know if there is an open source driver which you could adapt to send the volume via a serial port to the Arduino.
The Windows PowerShell has the possibility to get the volume and transmit it to a serial port. You could do that a few times per second. In linux it might even be easier, a bash script with gawk with "amixer sget Master".
Another problem is to select the right serial port for the Arduino. I don't know how to automatically select the right port.

user4143: There is no way for any hardware device, Arduino or otherwise, to request information like that from a computer. 
HID is a protocol which (when used as a keyboard) allows you to send keypresses, including "media keys", which tell the computer to change the volume (amongst other things). There is no provision, other than three status LEDs, for getting any data back from the computer.
You will have to write software for your computer to query that information using whatever API may be available for your operating system, and pass that information through whatever communication channel you choose to the Arduino (such as through serial).
Some pointers: 

C# get master volume level/precent
Windows 7 Master Volume
Arduino: Sending and Receiving Multi-Digit Integers


47433: <p>is there a way to read the current pc volume? This is going to be a part of a project that I have in mind that is essentially reading curent pc volume value and giving it an RGB value (green=>30, yellow=&lt;30>60, red=&lt;60) and lighting up an RGB led accordingly.</p>
 30198: <p>There are external devices that show the volume, but you need a driver for that. I don't know if there is an open source driver which you could adapt to send the volume via a serial port to the Arduino.</p>

<p>The Windows PowerShell has the possibility to get the volume and transmit it to a serial port. You could do that a few times per second. In linux it might even be easier, a bash script with gawk with "amixer sget Master".</p>

<p>Another problem is to select the right serial port for the Arduino. I don't know how to automatically select the right port.</p>
 4143: <p>There is no way for any hardware device, Arduino or otherwise, to request information like that from a computer. </p>

<p>HID is a protocol which (when used as a keyboard) allows you to <em>send</em> keypresses, including "media keys", which tell the computer to change the volume (amongst other things). There is no provision, other than three status LEDs, for getting any data back from the computer.</p>

<p>You will have to write software for your computer to query that information using whatever API may be available for your operating system, and pass that information through whatever communication channel you choose to the Arduino (such as through serial).</p>

<p>Some pointers: </p>

<ul>
<li><a href="https://stackoverflow.com/questions/4235246/c-sharp-get-master-volume-level-precent">C# get master volume level/precent</a></li>
<li><a href="https://www.codeproject.com/Questions/440743/Windows-Master-Volume" rel="nofollow noreferrer">Windows 7 Master Volume</a></li>
<li><a href="https://www.baldengineer.com/arduino-multi-digit-integers.html" rel="nofollow noreferrer">Arduino: Sending and Receiving Multi-Digit Integers</a></li>
</ul>
