Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
diy_bluetooth_midi_bridge [2020/11/01 16:48] – ↷ Page moved from playground:diy_bluetooth_midi_bridge to diy_bluetooth_midi_bridge wim | diy_bluetooth_midi_bridge [2021/02/06 01:55] (current) – Added actual content for wpa_supplicant.conf rs2000 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | (Work in progress. This page is not ready for general publishing.) | ||
- | |||
- | |||
====== DIY Bluetooth MIDI Bridge ====== | ====== DIY Bluetooth MIDI Bridge ====== | ||
{{ : | {{ : | ||
Line 7: | Line 4: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | If you have multiple hardware MIDI devices, you've probably connected them to a USB hub and then to your iOS Device through the Apple USB Camera Connection kit. This little box will allow you to un-tether the iPad or iPhone((For convenience I will simply use " | + | If you have multiple hardware MIDI devices, you've probably connected them to a USB hub and then to your iOS Device through the Apple USB Camera Connection kit. This little box will allow you to un-tether the iPad or iPhone so that it can send to and receive from any device over BLE MIDI instead. It has the added advantage that it automatically sets up routing between all devices so that they can all talk to each other. (It's up to you to manage channels and ensure there are no MIDI loops.) |
The project is described in detail by its designer, [[https:// | The project is described in detail by its designer, [[https:// | ||
Line 46: | Line 43: | ||
If you don't know how to create or edit a file in the " | If you don't know how to create or edit a file in the " | ||
- | * On MacOS: press < | + | * On MacOS: press < |
+ | * Add the following content to this file (Use the WiFi data of a router that has internet access!): | ||
+ | * < | ||
+ | ctrl_interface=DIR=/ | ||
+ | update_config=1 | ||
+ | |||
+ | network={ | ||
+ | ssid=" | ||
+ | scan_ssid=1 | ||
+ | psk=" | ||
+ | key_mgmt=WPA-PSK | ||
+ | }</ | ||
+ | </ | ||
+ | * | ||
* On Windows: There is an excellent article here: [[https:// | * On Windows: There is an excellent article here: [[https:// | ||
Line 55: | Line 65: | ||
* On a PC you can use the free PuTTY program. Hopefully connecting to '' | * On a PC you can use the free PuTTY program. Hopefully connecting to '' | ||
* In some cases finding the device by name won't work. I highly suggest this article in that case: [[https:// | * In some cases finding the device by name won't work. I highly suggest this article in that case: [[https:// | ||
- | |||
==== Building the Device ==== | ==== Building the Device ==== | ||
Yes! You are finally ready now to carefully follow the excellent [[https:// | Yes! You are finally ready now to carefully follow the excellent [[https:// | ||
Line 72: | Line 81: | ||
=== Add the Web Content === | === Add the Web Content === | ||
Assuming you're still logged in from the previous steps, execute the following commands, one step at a time, checking to be sure there are no error messages: | Assuming you're still logged in from the previous steps, execute the following commands, one step at a time, checking to be sure there are no error messages: | ||
- | <code> | + | <file> |
cd / | cd / | ||
sudo rm index*.html | sudo rm index*.html | ||
Line 78: | Line 87: | ||
sudo unzip html.zip | sudo unzip html.zip | ||
ls | ls | ||
- | </code> | + | </file> |
The output from the last command should look like this: | The output from the last command should look like this: | ||
- | <code> | + | <file> |
pi@raspberrypi(rw):/ | pi@raspberrypi(rw):/ | ||
html.zip | html.zip | ||
- | </code> | + | </file> |
Next: | Next: | ||
- | <code> | + | <file> |
cd / | cd / | ||
sudo wget -O cgi-bin.zip https:// | sudo wget -O cgi-bin.zip https:// | ||
sudo unzip cgi-bin.zip | sudo unzip cgi-bin.zip | ||
- | ls | + | sudo chmod +x *.py |
- | </code> | + | ls -l |
+ | </file> | ||
The output of the last command should look like this: | The output of the last command should look like this: | ||
- | <code> | + | <file> |
- | pi@raspberrypi(rw):/ | + | pi@raspberrypi(rw):/ |
- | cgi-bin.zip | + | total 12 |
- | </code> | + | -rw-r--r-- 1 root root 1149 Oct 31 2020 cgi-bin.zip |
+ | -rwxr-xr-x 1 root root 1117 Oct 24 16:37 devicelist.py | ||
+ | -rwxr-xr-x 1 root root 321 Oct 24 16:31 reconnect.py | ||
+ | </file> | ||
+ | |||
+ | == Permission Changes == | ||
- | Finally create | + | Create |
- | <code> | + | <file> |
www-data ALL=(ALL) NOPASSWD: / | www-data ALL=(ALL) NOPASSWD: / | ||
www-data ALL=(ALL) NOPASSWD: / | www-data ALL=(ALL) NOPASSWD: / | ||
- | </code> | + | </file> |
Press ''< | Press ''< | ||
+ | |||
+ | Another permissions modification: | ||
+ | < | ||
+ | audio: | ||
+ | </ | ||
+ | Remember to type ''< | ||
+ | |||
+ | You probably also want to change the time zone on the device since the web display shows the last refresh time. Enter '' | ||
**If the Read-Only file system modification hasn't been applied,** you should now be able to reboot the device, then go to http:// | **If the Read-Only file system modification hasn't been applied,** you should now be able to reboot the device, then go to http:// | ||
Line 111: | Line 134: | ||
=== If Read-Only File System is in Use === | === If Read-Only File System is in Use === | ||
Since Nginx requires log files and the Read-Only mod changed the log directory two more steps are needed. First, add a line into /etc/fstab for a new temporary file system. Type '' | Since Nginx requires log files and the Read-Only mod changed the log directory two more steps are needed. First, add a line into /etc/fstab for a new temporary file system. Type '' | ||
- | <code> | + | <file> |
proc /proc | proc /proc | ||
PARTUUID=8ea4fe3d-01 | PARTUUID=8ea4fe3d-01 | ||
Line 123: | Line 146: | ||
tmpfs / | tmpfs / | ||
tmpfs / | tmpfs / | ||
- | </code> | + | </file> |
(Optional) Turn off logging to keep from filling up the temporary file system. Run '' | (Optional) Turn off logging to keep from filling up the temporary file system. Run '' | ||
- | <code> | + | <file> |
# access_log / | # access_log / | ||
# error_log / | # error_log / | ||
- | </code> | + | </file> |
Lastly, invoke the '' | Lastly, invoke the '' | ||
- | === If Read-Only File System is not in Use === | + | === If Read-Only File System is Not in Use === |
(Optional) If all is working, this might be a good time to follow the directions under ENABLING READ-ONLY MODE in the [[https:// | (Optional) If all is working, this might be a good time to follow the directions under ENABLING READ-ONLY MODE in the [[https:// | ||
Line 139: | Line 162: | ||
That's it! I know this is a long and possibly intimidating article. It's not all as hard as it seems if you take your time. It's a cool and potentially very useful device. I hope you have fun with it if you decide to take it on! | That's it! I know this is a long and possibly intimidating article. It's not all as hard as it seems if you take your time. It's a cool and potentially very useful device. I hope you have fun with it if you decide to take it on! | ||
- | ===== Errors and omissions! ===== | + | ===== Errors and Omissions! ===== |
**Please contact me** if you find errors or omissions in this document. Likewise, please don't hesitate to contact me if you run into questions or problems. The Audiobus Forum topic for this can be found here: [[https:// | **Please contact me** if you find errors or omissions in this document. Likewise, please don't hesitate to contact me if you run into questions or problems. The Audiobus Forum topic for this can be found here: [[https:// | ||
You can also PM @wim on the Audiobus forum if you prefer. 8-) | You can also PM @wim on the Audiobus forum if you prefer. 8-) | ||
+ | |||
+ | {{tag> | ||