aboutsummaryrefslogtreecommitdiffstats
path: root/root/projects
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-09-30 17:27:20 +0000
committers-ol <s-ol@users.noreply.github.com>2019-09-30 17:27:20 +0000
commit4d9d784766741d2356d980d4457eda7140ef4ac8 (patch)
tree63a94bdc3225eed81e477a34e9bb9cfb547ac818 /root/projects
parentadd busted spec for driver (diff)
parentcast for URL (diff)
downloadmmm-4d9d784766741d2356d980d4457eda7140ef4ac8.tar.gz
mmm-4d9d784766741d2356d980d4457eda7140ef4ac8.zip
Merge branch 'master' into ba
Diffstat (limited to 'root/projects')
-rw-r--r--root/projects/VJmidiKit/boxy/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/boxy_dnb/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/boxy_visualist/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/dancing_pineapple/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/jam/URL -> youtube$video (renamed from root/projects/VJmidiKit/link: URL -> youtube$video)0
-rw-r--r--root/projects/VJmidiKit/kaleidoscope/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/pillars/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/pineapple/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/stills/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/text$markdown.md31
-rw-r--r--root/projects/VJmidiKit/tomcat/URL -> twitter$tweet1
-rw-r--r--root/projects/VJmidiKit/tomcat_tunnel/URL -> twitter$tweet1
-rw-r--r--root/projects/btrktrl/description: text$plain1
-rw-r--r--root/projects/btrktrl/knobs_all/description: text$plain1
-rw-r--r--root/projects/btrktrl/knobs_all/image$jpeg.jpgbin0 -> 2462470 bytes
-rw-r--r--root/projects/btrktrl/knobs_testing/description: text$plain1
-rw-r--r--root/projects/btrktrl/knobs_testing/image$jpeg.jpgbin0 -> 2266946 bytes
-rw-r--r--root/projects/btrktrl/pcb_dev_configuration/description: text$plain1
-rw-r--r--root/projects/btrktrl/pcb_dev_configuration/video$mp4.mp4bin0 -> 7002917 bytes
-rw-r--r--root/projects/btrktrl/pcb_dev_encoder/description: text$plain1
-rw-r--r--root/projects/btrktrl/pcb_dev_encoder/video$mp4.mp4bin0 -> 3094492 bytes
-rw-r--r--root/projects/btrktrl/pcb_glamour/image$jpeg.jpgbin0 -> 935947 bytes
-rw-r--r--root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpgbin0 -> 331299 bytes
-rw-r--r--root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpgbin0 -> 320858 bytes
-rw-r--r--root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpgbin0 -> 681312 bytes
-rw-r--r--root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpgbin0 -> 448678 bytes
-rw-r--r--root/projects/btrktrl/pcb_osc/description: text$plain1
-rw-r--r--root/projects/btrktrl/pcb_osc/video$mp4.mp4bin0 -> 8287372 bytes
-rw-r--r--root/projects/btrktrl/proto_encoder/description: text$plain1
-rw-r--r--root/projects/btrktrl/proto_encoder/video$mp4.mp4bin0 -> 3362613 bytes
-rw-r--r--root/projects/btrktrl/proto_rgb/description: text$plain1
-rw-r--r--root/projects/btrktrl/proto_rgb/video$mp4.mp4bin0 -> 1247898 bytes
-rw-r--r--root/projects/btrktrl/proto_spi/description: text$plain1
-rw-r--r--root/projects/btrktrl/proto_spi/image$jpeg.jpgbin0 -> 2441610 bytes
-rw-r--r--root/projects/btrktrl/text$moonscript -> fn -> mmm$dom.moon69
35 files changed, 119 insertions, 0 deletions
diff --git a/root/projects/VJmidiKit/boxy/URL -> twitter$tweet b/root/projects/VJmidiKit/boxy/URL -> twitter$tweet
new file mode 100644
index 0000000..5521568
--- /dev/null
+++ b/root/projects/VJmidiKit/boxy/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1171136990118649857
diff --git a/root/projects/VJmidiKit/boxy_dnb/URL -> twitter$tweet b/root/projects/VJmidiKit/boxy_dnb/URL -> twitter$tweet
new file mode 100644
index 0000000..41a8326
--- /dev/null
+++ b/root/projects/VJmidiKit/boxy_dnb/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1171137508991787008
diff --git a/root/projects/VJmidiKit/boxy_visualist/URL -> twitter$tweet b/root/projects/VJmidiKit/boxy_visualist/URL -> twitter$tweet
new file mode 100644
index 0000000..a5dfd73
--- /dev/null
+++ b/root/projects/VJmidiKit/boxy_visualist/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1171137921858056192
diff --git a/root/projects/VJmidiKit/dancing_pineapple/URL -> twitter$tweet b/root/projects/VJmidiKit/dancing_pineapple/URL -> twitter$tweet
new file mode 100644
index 0000000..09625ee
--- /dev/null
+++ b/root/projects/VJmidiKit/dancing_pineapple/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1009523556001173506
diff --git a/root/projects/VJmidiKit/link: URL -> youtube$video b/root/projects/VJmidiKit/jam/URL -> youtube$video
index 5c8dd95..5c8dd95 100644
--- a/root/projects/VJmidiKit/link: URL -> youtube$video
+++ b/root/projects/VJmidiKit/jam/URL -> youtube$video
diff --git a/root/projects/VJmidiKit/kaleidoscope/URL -> twitter$tweet b/root/projects/VJmidiKit/kaleidoscope/URL -> twitter$tweet
new file mode 100644
index 0000000..2152177
--- /dev/null
+++ b/root/projects/VJmidiKit/kaleidoscope/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1050731951689101313
diff --git a/root/projects/VJmidiKit/pillars/URL -> twitter$tweet b/root/projects/VJmidiKit/pillars/URL -> twitter$tweet
new file mode 100644
index 0000000..1a3435a
--- /dev/null
+++ b/root/projects/VJmidiKit/pillars/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1050771730384343041
diff --git a/root/projects/VJmidiKit/pineapple/URL -> twitter$tweet b/root/projects/VJmidiKit/pineapple/URL -> twitter$tweet
new file mode 100644
index 0000000..9f8b953
--- /dev/null
+++ b/root/projects/VJmidiKit/pineapple/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1010276414321512448
diff --git a/root/projects/VJmidiKit/stills/URL -> twitter$tweet b/root/projects/VJmidiKit/stills/URL -> twitter$tweet
new file mode 100644
index 0000000..0ea3752
--- /dev/null
+++ b/root/projects/VJmidiKit/stills/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1044844729878413312
diff --git a/root/projects/VJmidiKit/text$markdown.md b/root/projects/VJmidiKit/text$markdown.md
new file mode 100644
index 0000000..7767e93
--- /dev/null
+++ b/root/projects/VJmidiKit/text$markdown.md
@@ -0,0 +1,31 @@
+VJmidiKit
+=========
+
+VJmidiKit is a tool for VJing using livecoded (raymarching) shaders and connecting shaders to MIDI signals
+from live music and controllers for music reactivity.
+The interactions between MIDI signals and shader variables can be programmed in many different ways using a visual block language.
+
+VJmidiKit is a C++ application built on top of [openFrameworks][of], [Dear Imgui][imgui], [RtMidi][rtmidi] and [yaml-cpp][yaml].
+The Shaders in the following media are all written in GLSL by me, using the excellent [hg\_sdf][hgsdf] library.
+
+If you are interested in trying VJmidiKit for yourself, feel free to message me.
+You can find my email address at the top, and social media at the bottom of this website.
+
+<div style="align-items: flex-start; display: flex; flex-wrap: wrap; margin: -0.5em;">
+ <mmm-embed nolink inline path="boxy_dnb"></mmm-embed>
+ <mmm-embed nolink inline path="boxy_visualist"></mmm-embed>
+ <mmm-embed nolink inline path="stills"></mmm-embed>
+ <mmm-embed nolink inline path="pineapple"></mmm-embed>
+ <mmm-embed nolink inline path="kaleidoscope"></mmm-embed>
+ <mmm-embed nolink inline path="pillars"></mmm-embed>
+ <mmm-embed nolink inline path="tomcat_tunnel"></mmm-embed>
+ <mmm-embed nolink inline path="dancing_pineapple"></mmm-embed>
+ <mmm-embed nolink inline path="tomcat"></mmm-embed>
+ <mmm-embed nolink inline path="jam"></mmm-embed>
+</div>
+
+[of]: https://openframeworks.cc/
+[imgui]: https://github.com/ocornut/imgui
+[rtmidi]: https://github.com/thestk/rtmidi
+[yaml]: https://github.com/jbeder/yaml-cpp
+[hgsdf]: http://mercury.sexy/hg_sdf/
diff --git a/root/projects/VJmidiKit/tomcat/URL -> twitter$tweet b/root/projects/VJmidiKit/tomcat/URL -> twitter$tweet
new file mode 100644
index 0000000..a7a08f3
--- /dev/null
+++ b/root/projects/VJmidiKit/tomcat/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1006220929519816708
diff --git a/root/projects/VJmidiKit/tomcat_tunnel/URL -> twitter$tweet b/root/projects/VJmidiKit/tomcat_tunnel/URL -> twitter$tweet
new file mode 100644
index 0000000..48497c4
--- /dev/null
+++ b/root/projects/VJmidiKit/tomcat_tunnel/URL -> twitter$tweet
@@ -0,0 +1 @@
+https://twitter.com/S0lll0s/status/1006217163240280080
diff --git a/root/projects/btrktrl/description: text$plain b/root/projects/btrktrl/description: text$plain
new file mode 100644
index 0000000..d7e3402
--- /dev/null
+++ b/root/projects/btrktrl/description: text$plain
@@ -0,0 +1 @@
+a FPGA-based modular MIDI/OSC control surface
diff --git a/root/projects/btrktrl/knobs_all/description: text$plain b/root/projects/btrktrl/knobs_all/description: text$plain
new file mode 100644
index 0000000..1a43de0
--- /dev/null
+++ b/root/projects/btrktrl/knobs_all/description: text$plain
@@ -0,0 +1 @@
+sampling machined aluminum knobs from chinese supplier
diff --git a/root/projects/btrktrl/knobs_all/image$jpeg.jpg b/root/projects/btrktrl/knobs_all/image$jpeg.jpg
new file mode 100644
index 0000000..c523f8f
--- /dev/null
+++ b/root/projects/btrktrl/knobs_all/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/knobs_testing/description: text$plain b/root/projects/btrktrl/knobs_testing/description: text$plain
new file mode 100644
index 0000000..9588122
--- /dev/null
+++ b/root/projects/btrktrl/knobs_testing/description: text$plain
@@ -0,0 +1 @@
+testing different knob spacings
diff --git a/root/projects/btrktrl/knobs_testing/image$jpeg.jpg b/root/projects/btrktrl/knobs_testing/image$jpeg.jpg
new file mode 100644
index 0000000..09ea47d
--- /dev/null
+++ b/root/projects/btrktrl/knobs_testing/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/pcb_dev_configuration/description: text$plain b/root/projects/btrktrl/pcb_dev_configuration/description: text$plain
new file mode 100644
index 0000000..b15f4f0
--- /dev/null
+++ b/root/projects/btrktrl/pcb_dev_configuration/description: text$plain
@@ -0,0 +1 @@
+configuring the FPGA on the custom PCB via an arduino for the first time
diff --git a/root/projects/btrktrl/pcb_dev_configuration/video$mp4.mp4 b/root/projects/btrktrl/pcb_dev_configuration/video$mp4.mp4
new file mode 100644
index 0000000..c8113cd
--- /dev/null
+++ b/root/projects/btrktrl/pcb_dev_configuration/video$mp4.mp4
Binary files differ
diff --git a/root/projects/btrktrl/pcb_dev_encoder/description: text$plain b/root/projects/btrktrl/pcb_dev_encoder/description: text$plain
new file mode 100644
index 0000000..530be5a
--- /dev/null
+++ b/root/projects/btrktrl/pcb_dev_encoder/description: text$plain
@@ -0,0 +1 @@
+encoder & capacitive sensing working on the custom PCB
diff --git a/root/projects/btrktrl/pcb_dev_encoder/video$mp4.mp4 b/root/projects/btrktrl/pcb_dev_encoder/video$mp4.mp4
new file mode 100644
index 0000000..fa41799
--- /dev/null
+++ b/root/projects/btrktrl/pcb_dev_encoder/video$mp4.mp4
Binary files differ
diff --git a/root/projects/btrktrl/pcb_glamour/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour/image$jpeg.jpg
new file mode 100644
index 0000000..5864822
--- /dev/null
+++ b/root/projects/btrktrl/pcb_glamour/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpg
new file mode 100644
index 0000000..5d572aa
--- /dev/null
+++ b/root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpg
new file mode 100644
index 0000000..6503f84
--- /dev/null
+++ b/root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpg
new file mode 100644
index 0000000..661f4fe
--- /dev/null
+++ b/root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg
new file mode 100644
index 0000000..bbefc13
--- /dev/null
+++ b/root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/pcb_osc/description: text$plain b/root/projects/btrktrl/pcb_osc/description: text$plain
new file mode 100644
index 0000000..2f0df00
--- /dev/null
+++ b/root/projects/btrktrl/pcb_osc/description: text$plain
@@ -0,0 +1 @@
+a browser application talking to the encoders through a websocket/serial OSC bridge (nodejs)
diff --git a/root/projects/btrktrl/pcb_osc/video$mp4.mp4 b/root/projects/btrktrl/pcb_osc/video$mp4.mp4
new file mode 100644
index 0000000..3562d43
--- /dev/null
+++ b/root/projects/btrktrl/pcb_osc/video$mp4.mp4
Binary files differ
diff --git a/root/projects/btrktrl/proto_encoder/description: text$plain b/root/projects/btrktrl/proto_encoder/description: text$plain
new file mode 100644
index 0000000..e0f620b
--- /dev/null
+++ b/root/projects/btrktrl/proto_encoder/description: text$plain
@@ -0,0 +1 @@
+getting the encoder and capacitive sensing working on the prototype
diff --git a/root/projects/btrktrl/proto_encoder/video$mp4.mp4 b/root/projects/btrktrl/proto_encoder/video$mp4.mp4
new file mode 100644
index 0000000..acb32c8
--- /dev/null
+++ b/root/projects/btrktrl/proto_encoder/video$mp4.mp4
Binary files differ
diff --git a/root/projects/btrktrl/proto_rgb/description: text$plain b/root/projects/btrktrl/proto_rgb/description: text$plain
new file mode 100644
index 0000000..43b7f69
--- /dev/null
+++ b/root/projects/btrktrl/proto_rgb/description: text$plain
@@ -0,0 +1 @@
+driving WS2812 RGB LEDs on the prototype board
diff --git a/root/projects/btrktrl/proto_rgb/video$mp4.mp4 b/root/projects/btrktrl/proto_rgb/video$mp4.mp4
new file mode 100644
index 0000000..8e06fcc
--- /dev/null
+++ b/root/projects/btrktrl/proto_rgb/video$mp4.mp4
Binary files differ
diff --git a/root/projects/btrktrl/proto_spi/description: text$plain b/root/projects/btrktrl/proto_spi/description: text$plain
new file mode 100644
index 0000000..c38b56e
--- /dev/null
+++ b/root/projects/btrktrl/proto_spi/description: text$plain
@@ -0,0 +1 @@
+developing and debugging the SPI protocol
diff --git a/root/projects/btrktrl/proto_spi/image$jpeg.jpg b/root/projects/btrktrl/proto_spi/image$jpeg.jpg
new file mode 100644
index 0000000..c89341c
--- /dev/null
+++ b/root/projects/btrktrl/proto_spi/image$jpeg.jpg
Binary files differ
diff --git a/root/projects/btrktrl/text$moonscript -> fn -> mmm$dom.moon b/root/projects/btrktrl/text$moonscript -> fn -> mmm$dom.moon
new file mode 100644
index 0000000..4d12d25
--- /dev/null
+++ b/root/projects/btrktrl/text$moonscript -> fn -> mmm$dom.moon
@@ -0,0 +1,69 @@
+import div, h3, p, a from require 'mmm.dom'
+import link_to from (require 'mmm.mmmfs.util') require 'mmm.dom'
+
+=>
+ text = (...) ->
+ div with for text in *{...}
+ p text
+ .style = { 'max-width': '900px' }
+
+ filtered_block = (pattern) ->
+ div with for child in *@children
+ continue unless (child\gett 'name: alpha')\match pattern
+
+ div {
+ style: {
+ display: 'inline-block'
+ width: '500px'
+ margin: '0.5em'
+ padding: '0.4em 1em'
+ background: 'var(--gray-bright)'
+ }
+ div (link_to child), style: { 'margin-bottom': '0.2em' }
+ child\gett 'mmm/dom'
+ (child\get 'description: mmm/dom')
+ }
+
+ .style = {
+ display: 'flex'
+ 'flex-wrap': 'wrap'
+ 'align-items': 'flex-start'
+ margin: '-0.5em'
+ }
+
+ div {
+ h3 @gett 'name: alpha'
+ text "For this project I am builiding a modular, FPGA powered MIDI/OSC Control Surface.",
+ "The setup consists of an arduino MCU as a master controller, that communicates to the PC over
+ SLIP-encoded Serial OSC messages. The controller talks to daughterboards over SPI.
+ Each daugherboard contains a rotary encoder, 8 RGB LEDs and does capacitive sensing on the knob.",
+ "This was the first time I worked with an FPGA, and the first time I designed my own PCBs as well.
+ The FPGA I used is an ICE40UP5k, it was targeted using the icestorm open toolchain and Verilog.
+ I started by prototyping using an UPduino v2 Prototyping board (orange), and my failed rev1 PCBs (green).
+ On the FPGAs I implemented capacitive sensing, the SPI slave and control logic before moving on."
+
+ filtered_block '^proto_'
+
+ text "Once I got everything working there I designed my custom boards with the FPGA integrated directly,
+ including power conditioning and configuration.
+ There is also a busboard that manages SPI addressing / multiplexing as well as latching the power state
+ for each daughterboard, so that they can be started and configured individually."
+
+ filtered_block '^pcb_glamour'
+ filtered_block '^pcb_dev'
+
+ text "I also contacted some suppliers of machined aluminum knobs online and ordered a some samples from one of them.",
+ "I selected only knobs that are made made from solid aluminum and that use a set-screw for fastening to make sure
+ that the aluminum and the encoder would make electrical contact through the set-screw, which is required for the
+ capacitive sensing to work (at leas the way I implemented it)."
+
+ filtered_block '^knobs'
+
+ text "The daughterboards and controller communicate over a custom SPI protocol I designed.
+ The controller configures the daughterboards on boot or request from the PC.
+ It sends and receives OSC messages over SLIP-encoded Serial.
+ On the PC a small nodejs application relays the OSC messages over UDP or WebSocket,
+ so that native and web applications can consume them and interact with the control surface."
+
+ filtered_block '^pcb_osc'
+ }