diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-09-30 17:27:20 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-09-30 17:27:20 +0000 |
| commit | 4d9d784766741d2356d980d4457eda7140ef4ac8 (patch) | |
| tree | 63a94bdc3225eed81e477a34e9bb9cfb547ac818 /root/projects | |
| parent | add busted spec for driver (diff) | |
| parent | cast for URL (diff) | |
| download | mmm-4d9d784766741d2356d980d4457eda7140ef4ac8.tar.gz mmm-4d9d784766741d2356d980d4457eda7140ef4ac8.zip | |
Merge branch 'master' into ba
Diffstat (limited to 'root/projects')
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 Binary files differnew file mode 100644 index 0000000..c523f8f --- /dev/null +++ b/root/projects/btrktrl/knobs_all/image$jpeg.jpg 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 Binary files differnew file mode 100644 index 0000000..09ea47d --- /dev/null +++ b/root/projects/btrktrl/knobs_testing/image$jpeg.jpg 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 Binary files differnew file mode 100644 index 0000000..c8113cd --- /dev/null +++ b/root/projects/btrktrl/pcb_dev_configuration/video$mp4.mp4 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 Binary files differnew file mode 100644 index 0000000..fa41799 --- /dev/null +++ b/root/projects/btrktrl/pcb_dev_encoder/video$mp4.mp4 diff --git a/root/projects/btrktrl/pcb_glamour/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour/image$jpeg.jpg Binary files differnew file mode 100644 index 0000000..5864822 --- /dev/null +++ b/root/projects/btrktrl/pcb_glamour/image$jpeg.jpg diff --git a/root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpg Binary files differnew file mode 100644 index 0000000..5d572aa --- /dev/null +++ b/root/projects/btrktrl/pcb_glamour_close/image$jpeg.jpg diff --git a/root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpg Binary files differnew file mode 100644 index 0000000..6503f84 --- /dev/null +++ b/root/projects/btrktrl/pcb_glamour_connector/image$jpeg.jpg diff --git a/root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpg Binary files differnew file mode 100644 index 0000000..661f4fe --- /dev/null +++ b/root/projects/btrktrl/pcb_glamour_far/image$jpeg.jpg diff --git a/root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg b/root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg Binary files differnew file mode 100644 index 0000000..bbefc13 --- /dev/null +++ b/root/projects/btrktrl/pcb_glamour_top/image$jpeg.jpg 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 Binary files differnew file mode 100644 index 0000000..3562d43 --- /dev/null +++ b/root/projects/btrktrl/pcb_osc/video$mp4.mp4 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 Binary files differnew file mode 100644 index 0000000..acb32c8 --- /dev/null +++ b/root/projects/btrktrl/proto_encoder/video$mp4.mp4 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 Binary files differnew file mode 100644 index 0000000..8e06fcc --- /dev/null +++ b/root/projects/btrktrl/proto_rgb/video$mp4.mp4 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 Binary files differnew file mode 100644 index 0000000..c89341c --- /dev/null +++ b/root/projects/btrktrl/proto_spi/image$jpeg.jpg 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' + } |
