Code Monkey home page Code Monkey logo

dimensions's Introduction

Dimensions

Dimensions is an open source ESP32-based MIDI sequencer that uses Parametric Equations to generate cool, unexpected musical patterns.

Dimensions Module

The full workings are explained on my website www.erikoostveen.co.uk

dimensions's People

Contributors

erikoostveen avatar

Stargazers

 avatar  avatar  avatar AriESQ avatar  avatar  avatar  avatar  avatar Danny Ayers avatar  avatar  avatar  avatar Dan avatar Masanori Ogino avatar Nic Newdigate avatar  avatar David Lee avatar André_Teixeira_1998 avatar JdLR avatar  avatar Tristan Rowley avatar Andy Davies avatar h_campos avatar  avatar Plekhanov Anton avatar Peter Kootsookos avatar kenfrederick avatar Mathias avatar  avatar  avatar Rafael Diaz avatar

Watchers

Mathias avatar Plekhanov Anton avatar  avatar  avatar  avatar  avatar  avatar

dimensions's Issues

OLED Pinout

Dear Mr. Oostveen,
Sorry to trouble you, could you please clarify the pinout for the OLED module header (P2 as labeled on the pcb). Code specifies pin D5 for CS, however on the board D5 is connected to SW4 (Store). I have traced the board and have the following for the OLED header:
Pin 1= N/C
Pin 2= GND
Pin 3= D17 (DC)
Pin 4= D4 (RST)
Pin 5= D23 (MOSI)
Pin 6= D18 (SCLK)
Pin 7= 3.3v
Pin 8= GND
I had the boards made from the included JCB files and further imported the gerbers in Diptrace to verify - confused as to CS connection and quite possible I have misunderstood. Thanks in advance for your assistance - very much looking forward to running Dimensions (I like your stuff and have built some of your older projects).
Frank

How to contribute to the project

Hi Eric

I recently purchased a front panel/pcb set for Dimensions on ebay,

I've got it fully working despite my best efforts such as soldering the pot sub-board in backwards - fixed with some jumpers and a simple code change.

I've made a couple of additions/changes to the code.

  1. New mode/menu item - Z axis generates notes/velocity. In VELOCITY mode everything works exactly as the current version. In NOTES mode note pitch is selected from the same array as the current Y part but based on the Z value. The note interval is selected as currently but the mapping in to the interval array is reversed compared to the Y axis selected notes - this is an attempt to give some rhythmic movement between the two parts (Y & Z). Selecting NOTES mode switches velocity to FIXED mode.

  2. Additional MIDI channel select - The sequence generated by the Z axis can be routed to a different channel. I currently have the Y part going to MIDI channel 1, Z part is going to MIDI channel 2 with a mono synth on each channel. Obviously you could send both parts to a duo/polyphonic synth on single channel.

  3. Some refactoring to reduce the number of code changes required when I added a menu function.

  4. Added a Lorenz attractor as function 21. As a chaotic function that evolves slowly over time and doesn't really fit with the t/step model of the original functions. The store/recall functionality doesn't really work due to the evolving/chaotic nature. This required a couple of changes as the next step is calculated based on the results of the previous step and I need to retain the float versions of x,y & z but be able to cap the int versions used for note and interval selection.

I have not worked out the full implications of Z axis as NOTES for the store/retrieve functions yet - I've mainly been playing with the Lorenz attractor which kind of breaks them anyway.

The Z axis as NOTES works with all the existing functions although some are obviously more interesting than others.

Other changes:

  1. I needed to reverse the note length potentiometer mapping due to my build mistake.

  2. I needed to swap the encoder pin assignment because it was working backwards. I'm not sure if this is just a feature of the encoder I have or another case of sub board being in backwards.

  3. I'm tempted to reverse the operation of the param up/down button. I my head I see this as a list on a page with 1 at the top and 24 at the bottom so currently "up" increases the parameter number which moves down the list in my head. I'm also can not get used to the gear shift +/- paddles in my car being arranged with - on the left and + on the right.

If I were able to contribute changes then, for these items then maybe I should add some setup menu items to configure these choices with the default set the way properly built hardware would work.

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.