Compare commits

...

14 Commits

Author SHA1 Message Date
Neale Pickett 6ae198bafc mention USB data rate
Mockband / build (push) Successful in 29s Details
2024-01-15 09:15:13 -07:00
Neale Pickett 79741211ea ah, so that's what that does
Mockband / build (push) Successful in 25s Details
2024-01-15 09:07:50 -07:00
Neale Pickett 188accc5d1 I wonder what this does...
Mockband / build (push) Has been cancelled Details
2024-01-15 09:07:15 -07:00
Neale Pickett eea155e433 Related Projects, not Other Projects
Mockband / build (push) Has been cancelled Details
2024-01-15 09:06:30 -07:00
Neale Pickett 8c8549d47b More information in README
Mockband / build (push) Has been cancelled Details
2024-01-15 09:05:47 -07:00
Neale Pickett 8e8836956d More README verbiage about this not being for beginners
Mockband / build (push) Successful in 33s Details
2024-01-15 08:59:17 -07:00
Neale Pickett 9e129fd56f Mention other work 2024-01-15 08:44:43 -07:00
neale 665a295247 Better conspicuous text
Mockband / build (push) Successful in 27s Details
2024-01-10 09:00:13 -07:00
Neale Pickett ebfe0a5b29 Conspicuous text
Mockband / build (push) Successful in 25s Details
2024-01-10 08:53:00 -07:00
Neale Pickett c11a241ffa formatting
Mockband / build (push) Successful in 24s Details
2024-01-10 08:50:46 -07:00
Neale Pickett 9ac66d7a7f Oops, file extension
Mockband / build (push) Has been cancelled Details
2024-01-10 08:50:12 -07:00
Neale Pickett a5776f7888 Mention license in readme
Mockband / build (push) Has been cancelled Details
2024-01-10 08:49:41 -07:00
Neale Pickett 5118e6beaf Move license into docs
Mockband / build (push) Successful in 26s Details
2024-01-10 08:48:50 -07:00
Neale Pickett e0c0fc57d8 Add a license
Mockband / build (push) Has been cancelled Details
Here's the relevant part of the email from Nic:

> The MIT license is fine. I've never given much thought
> to packaging and distribution of my personal projects,
> so licenses aren't something I have really thought about before.
2024-01-10 08:47:47 -07:00
3 changed files with 119 additions and 8 deletions

View File

@ -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),

22
docs/COPYING.md Normal file
View File

@ -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.**

View File

@ -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
-----------