Compare commits
14 Commits
Author | SHA1 | Date |
---|---|---|
Neale Pickett | 6ae198bafc | |
Neale Pickett | 79741211ea | |
Neale Pickett | 188accc5d1 | |
Neale Pickett | eea155e433 | |
Neale Pickett | 8c8549d47b | |
Neale Pickett | 8e8836956d | |
Neale Pickett | 9e129fd56f | |
neale | 665a295247 | |
Neale Pickett | ebfe0a5b29 | |
Neale Pickett | c11a241ffa | |
Neale Pickett | 9ac66d7a7f | |
Neale Pickett | a5776f7888 | |
Neale Pickett | 5118e6beaf | |
Neale Pickett | e0c0fc57d8 |
76
README.md
76
README.md
|
@ -1,4 +1,9 @@
|
|||
# Mock Band
|
||||
---
|
||||
gitea: none
|
||||
include_toc: true
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
Microcontroller Firmware to emulate guitar and drum kit controllers from the
|
||||
Wii version of the Rock Band games.
|
||||
|
@ -18,6 +23,23 @@ Thanks, Nicholas!
|
|||
* A physical controller
|
||||
|
||||
|
||||
# Skills Needed
|
||||
|
||||
This is a research project:
|
||||
it's assumed you already have a skillset that includes:
|
||||
|
||||
* Disassembling consumer electronics
|
||||
* Using a multimeter to perform continuity checks
|
||||
* Building electronics projects using a microcontroller
|
||||
* Soldering
|
||||
* Running the Arduino IDE *or* using `avrdude` to flash a firmware
|
||||
|
||||
If you're not comfortable with the above list,
|
||||
your best option right now (Jan 2024) is to either buy a used kit,
|
||||
or wait for the Polybar project to finish their work
|
||||
producing a beginner-friendly kit with assembly manual.
|
||||
|
||||
|
||||
# Controllers
|
||||
|
||||
## Guitar
|
||||
|
@ -49,10 +71,30 @@ I'm sorry I didn't photograph or record any of this,
|
|||
but it was pretty straightforward.
|
||||
|
||||
|
||||
# Compiling
|
||||
# Building
|
||||
|
||||
This compiles in the Arduino IDE.
|
||||
It doesn't have any library dependencies.
|
||||
This will compile in the Arduino IDE,
|
||||
or on the commandline using `make`.
|
||||
|
||||
## Command Line
|
||||
|
||||
Just run `make` on a Unix system.
|
||||
I set up paths for my Debian install of Arduino 1.8;
|
||||
you may need to adjust them if your setup has different paths.
|
||||
|
||||
There is a `flash-%` target that will upload the built firmware to a Pro Micro.
|
||||
The following targets exist:
|
||||
|
||||
make flash-guitar # Guitar firmware
|
||||
make flash-guitar-wammy # Guitar firmware with wammy bar
|
||||
make flash-drums # Drums firmware
|
||||
|
||||
## Arduino
|
||||
|
||||
Mockband has no library dependencies,
|
||||
and as far as I can tell,
|
||||
will work with the built-in Leonardo profile,
|
||||
even though you're uploading to a Pro Micro.
|
||||
|
||||
You need to make two edits to `boards.txt`.
|
||||
Instructions for this are all over the place.
|
||||
|
@ -63,7 +105,7 @@ Don't edit anything that doesn't say `build` on the line! I can't help you if yo
|
|||
In my examples, I'm editing the lines for the leonardo build. Yours might be different:
|
||||
it should match the board you're using.
|
||||
|
||||
## Build flags
|
||||
### Build flags
|
||||
|
||||
This disables serial communications on the board.
|
||||
|
||||
|
@ -72,7 +114,7 @@ This disables serial communications on the board.
|
|||
Hat tip to Nicholas Angle for figuring this out
|
||||
so I didn't have to.
|
||||
|
||||
## VID and PID
|
||||
### VID and PID
|
||||
|
||||
These set the USB identifiers.
|
||||
VID is the Vendor ID,
|
||||
|
@ -81,7 +123,7 @@ and PID is the Product ID.
|
|||
`0x1bad` means "Harmonix Music",
|
||||
at least, it does to the Linux kernel.
|
||||
|
||||
### For guitar
|
||||
#### For guitar
|
||||
|
||||
PID `0x004` means "Guitar controller".
|
||||
|
||||
|
@ -90,7 +132,7 @@ PID `0x004` means "Guitar controller".
|
|||
leonardo.build.usb_product="Mockband Guitar"
|
||||
|
||||
|
||||
### For drums
|
||||
#### For drums
|
||||
|
||||
PID `0x3110` means "Rock Band 2 drums".
|
||||
This works better with all versions of Rock Band on my wii,
|
||||
|
@ -186,6 +228,19 @@ will use both the 2x kick and the hi hat.
|
|||
Maybe there is some other game that uses this too.
|
||||
|
||||
|
||||
# Related Projects
|
||||
|
||||
Mockband is a research project.
|
||||
You can use it to build a fully working controller,
|
||||
but the main goal of this project is to inform other developers.
|
||||
|
||||
If you're looking for a user-friendly way to get a Rock Band drum controller,
|
||||
consider the following alternatives:
|
||||
|
||||
* Buying a used Harmonix (official Rock Band) drum kit
|
||||
* Mad Catz Rock Band 3 MIDI PRO-Adapter and a MIDI e-drum kit
|
||||
* [Santroller](https://santroller.tangentmc.net/wiring_guides/drum.html)
|
||||
wired to a used Harmonix drum kit
|
||||
|
||||
|
||||
# Bugs / Not Yet Implemented
|
||||
|
@ -200,6 +255,11 @@ just
|
|||
and I'll open an issue.
|
||||
|
||||
|
||||
# License
|
||||
|
||||
You may use this under the terms of the [MIT License](docs/COPYING.md).
|
||||
|
||||
|
||||
# Need help?
|
||||
|
||||
[Email me](mailto:neale@woozle.org),
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright © 2023 Nicholas Angle
|
||||
Copyright © 2023-2024 Neale Pickett <neale@woozle.org>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
**The software is provided "as is", without warranty of any kind, express or
|
||||
implied, including but not limited to the warranties of merchantability,
|
||||
fitness for a particular purpose and noninfringement. In no event shall the
|
||||
authors or copyright holders be liable for any claim, damages or other
|
||||
liability, whether in an action of contract, tort or otherwise, arising from,
|
||||
out of or in connection with the software or the use or other dealings in the
|
||||
software.**
|
|
@ -7,6 +7,35 @@ so that when original sources fall off the net,
|
|||
hopefully at least my notes will still be around.
|
||||
|
||||
|
||||
USB data rate
|
||||
-------------
|
||||
|
||||
Unlike the Santroller
|
||||
(which is much easier to install for beginners),
|
||||
this firmware does not send continuous updates over USB,
|
||||
unless it has to.
|
||||
|
||||
Because the only analog input is the wammy bar,
|
||||
if you don't include that input,
|
||||
the controller can stay silent until a button is pressed or released.
|
||||
This allows 4 controllers to connect to a USB hub,
|
||||
with no concern for overwhelming the hub.
|
||||
Since the amount of data is about the same as a keyboard,
|
||||
and a little less than a mouse,
|
||||
I would expect that a 7-port USB 2 hub would also handle 7 instruments,
|
||||
no problem.
|
||||
I just don't know of any games that can use mor than 4 instruments.
|
||||
|
||||
If you do use the wammy bar,
|
||||
an update is sent every 20 milliseconds.
|
||||
The firmware still attempts to reduce lag
|
||||
by sending button change events as soon as possible.
|
||||
I haven't played with this much,
|
||||
so if you have a wammy bar set up,
|
||||
please reach out to me and let me know how it works.
|
||||
|
||||
|
||||
|
||||
Sample Rate
|
||||
-----------
|
||||
|
||||
|
|
Loading…
Reference in New Issue