GithubHelp home page GithubHelp logo

jorgevelez / ports Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hdavid/ports

0.0 1.0 0.0 37 KB

Ports is an OSC to CV/Gate and MIDI converter. Built to run on raspberry pi zero w (or other variants), using max11300 chip over SPI.

C++ 86.95% Shell 9.40% HTML 3.65%

ports's Introduction

Ports

Ports is an OSC to CV/Gate and MIDI converter. Built to run on raspberry pi zero w (or other raspberry pi variants). It listens for incoming OSC messages on port 5000.

It will convert them into CV/Trigger and gate on the MAX11300 chip or MIDI messages (see API section of this readme)

Installation

During this procedure we assume that you have access to your pi, using a screen + keyboard, or over SSH.

get your raspberry pi setup:

Ports could work on other linux flavours such as osmc etc, but the automatic WLAN fallback might not work as expected as WLAN is distro specific.

/install.sh (below) assumes the system is a raspbian jessie.

install ports

Clone ports repository git clone https://github.com/hdavid/ports.git

  • if git is not installed, just run sudo apt-get update && sudo apt-get install git

Then from the ports directory run ./install.sh

This will:

  • download and install the SPI broadcom drivers
  • install liblo osc lib package
  • install dnsmsaq package (dns, dhcp for accesspoint mode)
  • compile ports
  • configure fall back access point ssid: ports, psk: portsports
  • configure ports to start at boot time automatically

you can also install pink, to provide ableton link. run ./install-pink.sh

Accessing

If no known wifi network is in range, ports will create an access point :

  • ssid: ports
  • psk: portsports

You can add your own wifi networks in /etc/wpa_supplicant/wpa_supplicant.conf. Make sure to enter your network before the one added by ports (identified by ssid="ports" and mode=2), as wpa_supplicant try the networks in the order they appear in this configuration file.

Example of network configuration :

network={
	str_id="myNetworkFriendlyName"
    ssid="myNetwork"
    psk="MyPassword"
}

Running

Port must run as root on order to access SPI bus used to communicate with the MAX11300. Note that ports is started automatically at boot time. (done by ./install.sh)

you can however start manually from

sudo /usr/local/bin/portsd no-daemon

OSC API

OSC Port: 5000

CV Outputs

/out/<[1-20]>/<mode> <float>

mode is one of : trig, gate, flipflop, cvuni, cvbi, lfosine, lfosaw, lfotri, lfosquare

unipolar is [0v 10v]. bipolar is [-5v +5v]. LFO rates are in Hertz. other input values are in the range [0 1] and mapped to the cv voltage.

MIDI Output

for now the MIDI device is hardcoded in the code to be the first usb device plugged. /dev/snd/midiC1D0 is easily changeable in Ports.cpp.

/midi/<channel>/cc/<midiCC> <value>

/midi/<channel>/noteOn/<noteNumber> <velocity>

/midi/<channel>/noteOff/<noteNumber> <velocity>

channel: 1-16

noteNumber, midiCC, velocity, value : 1-127

Possible Improvements

ports's People

Contributors

hdavid avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.