GithubHelp home page GithubHelp logo

arduino-midi-recorder's People

Contributors

pomax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

arduino-midi-recorder's Issues

Analog Pins As MIDI-IN?

Hi there!

I built out your project step by step yesterday, and it works great!

However, I'm trying to build a standalone sequencer, equipped with 4 FSR sensors as inputs, outputting midi data over a single midi channel(0). While the 5-PIN DIN works great with your sketch, I'm having trouble with code to replace the input on RX pin 0 with the input from my four analog sensor pins.

I tried replacing all the MIDI.h-related functions/defines/etc. with their usbMIDI.h equivalents (Plus my original sketch for simply reading/ writing the analog signals to 7-bit MIDI messages). Have you tried analog sensors with this project?

Serious thanks for posting your process here, the humor was refreshing, and I'm sure that it has been time consuming.

Best,
Colby ☮️

SD card lifetime

I'm wondering whether the algorithm of such frequent writes to the SD card won't lead to rapid wear and tear of the card. SD cards don't have a long lifespan in terms of write cycles. Perhaps it's better to add a FRAM memory module, collect MIDI events there, and then save them in one go on the SD card. What's your opinion?

fix to 130 bpm

  • 461 tick per quarter
  • 461,000 (real=461,538) microseconds per quarter

= 130.151843817787419 BPM

[SOLVED] recorded MIDI files are not useable or corrupt

@Pomax thank you for this great project and the detailed documentation!!!
Currently i am trying to build my own recorder with an Arduino UNO R3 and a TFT/SD shield based on your sketch.

Due to the huge amount of PINS used by the shield i have no button for creating markers or any kind of audio debug.
Currently i do not use a RTC as well but i am going to implement this as soon as everything works.

my TFT shows an incoming-note-indicator, incoming cc-indicator, the current filename of the recording and the recording time.
so everything works as expected except one thing:

The created MIDI files seems to be corrupt or not readable.
I tried different kinds of midi file supporting software. One of those is upload form of onlinesequencer.net.

The error message of the "vanilla version" reads:

Could not parse MIDI file: Track data exceeds expected length (1/0)

After fixing the track_length bytes with fix.py i get a different error:

Could not parse MIDI file: Track data exceeds expected length (59/56)

I also tried to manipulate the calculation of track_length in fix.py to avoid the error above but then i get:

Unexpected EOF

As .midfiles are not attachable i have created a .zip with short recordings of 3 noteOn + noteOff events.
test-recordings-vanilla-and-fixed.zip

FILE-061-vanilla.MID
FILE-061-fixed_length.MID

I used FAT16 filesystem for the SD.
Obviously there are some bytes in the recordings that shouldn't be there, right?
Do you have any hint how to fix this?

Add audio?

Have you considered a version of this project that also records audio?

I don’t know the first thing about this stuff (if I make this, it’d be my first arduino project) and how much complexity that would add, but for synths and drum machines and other MIDI toys that one might like to use without a pc, I think a parallel recording of the actual audio (and a similar “audio in / audio thru” setup) would add very handy functionality.

Playback & SysEx?

First of all, what a good idea. I'm still using a 3 1/2" disc recorder/player which is becoming unreliable.
I'd like to build a similar device that would also play back. I'd have to record all the SysEx codes as well, my instrument relies on them. It's a three manual electronic organ with pedals so has four channels, all on one track, and stops, swell pedals, etc are all done by SysEx codes (0F?). MIDI files produced by this instrument will only work on this instrument, it's a custom design.
Is this feasible?
Thanks,
Chris

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.