SkillAgentSearch skills...

Wvr

Home of WVR, an open source, Arduino compatible, ESP32-based Sample Player and Audio Framework.

Install / Use

/learn @marchingband/Wvr
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

License: GPL v3

welcome to wvr

wvr pinout diagram

Purchase a WVR:
      https://www.sparkfun.com/products/21307
      https://www.tindie.com/products/ultrapalace/wvr

Join us on the WVR Forum :
      https://discord.gg/ZfXuBkzec8 (Discord)
      https://groups.google.com/g/wvr-audio (Google Groups, now retired)

Find the Pinouts and Wiring Diagram, and download the schematics for WVR : https://github.com/marchingband/wvr_hardware
Binaries for all the WVR boards are here : https://github.com/marchingband/wvr_binaries
Code for the Web UI is here : https://github.com/marchingband/wvr_ui
Code for the WVR USB Backpack is here : https://github.com/marchingband/wvr_usb_backpack
If you have Thames : WVR in a Pedal, go here : https://github.com/marchingband/wvr_thames

note that starting with firmware version 3.9.0, the IP address of WVR has changed to 192.168.4.1

getting started

  • On a computer, join the wifi network WVR, using the password 12345678
  • Open Google Chrome (or another browser which implements the Web Audio API), navigate to the address http://192.168.5.18/, and the WVR UI will open

note that starting with firmware version 3.9.0, the IP address of WVR has changed to 192.168.4.1

wvr gui

powering wvr

  • wvr basic : plug in usb, or apply 5v and ground, or 3.3v and ground, to the power pins
  • wvr makers board : plug in usb (will not power amp), use a center-negative 9v PSU (Boss style) or apply somewhere between 6v and 9v (and ground) to the VIN pins
  • wvr dev board : plug in usb, use a center-negative 9v PSU (Boss style) or apply somewhere between 6v and 9v and ground to the VIN pins
  • thames : use a center-negative 9v PSU (Boss style)
  • usb host backpack : The backpack is powered by the WVR, so if WVR is on, the backpack is also on. When updating firmware on the backpack, plug in the usb micro port on the backpack instead of powering the WVR. It has its 5v line connected to the WVR 5v pin. WVR takes this 5v line, passes it to the LDO, and passes 3.3v back to power the backpack. The 5v pin on the USB host port is also connected to the WVR 5v pin, so it can power whatever is plugged into it, adding some capacitance to meet the USB spec.

updating firmware

For most users, the firmware that came installed on your WVR is up to date. Updating the firmware is only reccomended when new features are desired. Join our discord to keep up to date on this, but in general, most users will never need to update the firmware.

  • Create a folder on your computer where you will store firmwares for your WVR
  • download your firmwares, saving them to this new folder
  • navigate to : https://github.com/marchingband/wvr_binaries and find the folder for your board. download the .ino.bin file, which will be a link like: https://github.com/marchingband/wvr_binaries/blob/main/wvr_basic/3.10.0/wvr_basic.ino.bin For most users this will be wvr_basic, for a normal WVR, or wvr_usb if your WVR has the extra MIDI USB Host module add-on installed on the back. Choose the newest binary (currently v3.10.0)
  • Apply power to your WVR.
  • On a computer, join the wifi network WVR, using the password 12345678
  • Open Google Chrome (or another browser which implements the Web Audio API), navigate to the address http://192.168.5.18/, and the WVR UI will open

note that starting with firmware version 3.9.0, the IP address of WVR has changed to 192.168.4.1

  • Click on firmware menu item at the top of the page
  • Click select binary for slot 0, and in the file upload dialog select the firmware that you downloaded earlier
  • To give the ninary a custom name, click the name of the binary at the left.
  • Click upload for slot 0, and wait for the upload to complete
  • Click boot for slot 0, and wait for the boot to complete.
  • Reset the WVR, rejoin the WVR wifi network, then reload the webpage.

wvr gui

playing sounds

  • in the WVR UI, click on a note ... maybe ... E2.
  • now click select file
  • a window will open, choose any sound file from your computer
  • you can click audition and it will play on your computer speakers
  • now click pins at the top. this is the pin configuration page
  • click on D2
  • on the left, you will see the options for that pin.
  • set the note to E2 (40)
  • set the edge to falling (this means that it will trigger notes when the pin goes from high to low, when you ground it. All the pins which have pullups have them turned on by default, so grounding the pins is like pressing a key on a piano. Setting the edge is important, the default setting is none so no sounds will be triggered by this pin until it is changed.
  • set the debounce time : If you are manually grounding the pin with a wire use 120ms, if you have a mechanical button 60ms is good, if you are using an external micro-controller, you could use 0ms. If you get multiple triggers, and multiple sounds playing when you ground a pin, raise the debounce time :) Google "mcu debounce" if you want to learn more about this.
  • you will notice that some pins have a touch/digital option. This makes the pins touch sensitive. The same logic applies with the edge : touching the pin with a finger causes a falling edge, and 60ms is a great starting point for a debounce time. The WVR calibrates itself for capacitive touch everytime it is reset, so, it is important to have your hands away from the WVR when you reset it, so it can do an accurate calibration. If it seems off, just reset the WVR and keep your hands clear for a few seconds.
  • if you click on action you can see all the possible ways to use these pin events. It can trigger a sound, but it can also do many other things.
  • velocity is the Midi term for volume, so, set this to the playback volume that you would like to result from events on this pin.
  • wait for the sync to complete. You will see your pin configs have updated, and your sounds are displayed in the sounds menu. Now when you press audition the sound will not play in the browser, it will play on the WVR.
  • connect headphones or some line out to the WVR
  • using a wire (or a female jumper cable) connect the GND pin on the WVR to pin D2, and your sound should play.
  • note that WVR does not have an on-board amplifier. The output is line level. Most headphones will actually work ok, although there may be some distortion. In order to connect a speaker, you will need an amplifier of some kind. A bluetooth speaker with a line-in is a great way to play with WVR when getting started.

wvr gui

midi control

WVR will respond to the following midi events:
Note on
Note off
Program Change
Pitch Bend CC 7 (volume)
CC 10 (panning)
CC 11 (expression)
CC 64 (sustain, like the pedal on a piano)
CC 72 (release time (up to ~30ms fade out))
CC 73 (attack time (up to ~30ms fade out))
CC 120 (all sound off)
CC 121 (reset all controllers)
Note that volume, panning and expression, like velocity, will respond acording to a particular sounds response curve. A sound with Inverse Square Root response curve selected will pan with that same algorythm applied.

You can also send some 1-byte SYSEX commands for global controls, currently:
0x01 = WiFi on
0x02 = WiFi off.

So a sysex file to turn off wifi would look like "F0 02 F7". (F0 and F7 are the SYSEX start and end bytes)

web midi

The WVR Web UI can act as a MIDI destination for your DAW or other MIDI applications, and in turn send MIDI data over Wifi to WVR. Using this technique you can play your WVR wirelessly.
On macos, open Audio MIDI Setup, open the MIDI Studio panel, double click the IAC Driver to open its preferences, and check the Device is online box.
In your DAW's preferences, make the IAC Driver a midi output. Select the IAC Driver as the MIDI destination for your midi track.
Google Chrome currently considers Web MIDI to be a "powerful feature" and so access is limite

Related Skills

View on GitHub
GitHub Stars93
CategoryDevelopment
Updated1mo ago
Forks12

Languages

C

Security Score

95/100

Audited on Feb 10, 2026

No findings