Giter Club home page Giter Club logo

sp_midi's Introduction

sp_midi

sp_midi aims to provide a lightweight, portable, easy to use library for Sonic Pi to be able to work with MIDI devices.

It provides an erlang NIF interface to be integrated into Sonic Pi's erlang event dispatching architecture.

For the erlang side to drive the API it provides some NIF-based functions. On the other direction for the library to provide events to erlang it uses enif_send (also part of erlang's NIF).

Building

For build instruction see INSTALL.md.

sp_midi is built assuming C++14. The build system is based on cmake. Tested target compiler in Windows is MSVC 2019 Win64, in Linux is gcc 4.9 or later, and on Mac, clang 5.1 or later.

sp_midi uses the following Open Source libs:

  • spdlog, for logging (included in the tree)
  • concurrentqueue (included in the tree)
  • rtmidi (included in the tree)

LICENSE

See LICENSE.md file for details.

sp_midi's People

Contributors

cindydal avatar cmaughan avatar contesselina avatar emlyn avatar ethancrawford avatar factoid avatar federico-pepe avatar georgiaolympia avatar hopbit avatar hzulla avatar josephwilk avatar jweather avatar kn1kn1 avatar llloret avatar maurofigueira avatar mk270 avatar mpatrascu avatar mrtheyann avatar nicoder avatar paubarrina avatar rbnpi avatar richcarl avatar rubentr avatar samaaron avatar sunderb avatar thraex41 avatar trebmuh avatar verbgio avatar weblate avatar xavriley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sp_midi's Issues

Run time error on Raspberry Pi 32bit OS WITH SOLUTION

I'll flag this as I haven't been able to resolve it. The package builds and works fine on latest Raspberry Pi OS 64bit, but has a run time error on latest Raspberry Pi 32bit OS (which is the predominant one in use at present)
The error is shown in the Sonic Pi erlang log.

The on_load function for module sp_midi returned:
{error,{load_failed,"Failed to load NIF library: '/home/pi/Downloads/sonic-pi/app/server/erlang/sonic_pi_server/priv/libsp_midi.so: undefined symbol: __atomic_fetch_xor_8'"}}

I think I've found the solution. You need to link atomic in to the target_link_libraries for the armhf platform to build properly. I have it building and working changing the line
target_link_libraries(target_link_libraries(libsp_midi oscpack)
to
target_link_libraries(libsp_midi oscpack atomic)
I think the formal solution should probably include a platform test, as I don;t think yould want this on a Mac for example.

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.