For the measurement I only used this sketch on a Teensy 4.1. No other functions.
//**********************************************************************
// Simple scetch for receiving SysEx data via Midi...
I have mesured. The maximum transfer rate for receiving SysEx Dump via Midi without errors is 0.41KB/s. This is very slow on a Teensy 4.1.
In my DIY synth with an Teensy 4.1 I will not implement SysEx Dump via Midi....
Yes. It also only seems to work with an increase in the buffer value. I set the value to 512Byte and received 348 bytes. It's the size of a SysEx dump from a sound program in my synthesizer.
Hello
I write a simple sketch for Midi SysEx receive data today.
But receiving SysEx data with Teensy is faulty :confused:
//**********************************************************************
//...
Thanks for the information :)
I set SysExMaxSize in MIDI_Settings.h file to 512 bytes and set the transmission speed in Bome SendSX to 1.29KB/s.
There are no transmission errors.
In MIDI-OX I set send buffer...
Another try with Windows App Bome SendSX, Mios Studio and MIDI-OX.
Each time I receive different data via midi. The only thing that works is reception via usbMIDI :confused:
My scetch Midi SysEx receive with...
When i try to receive 348 Byte sysex data via midi with teensy 4.1, the data is missing and error !!!
Receive 348 Byte to usbMIDI works fine :)
MIDI.setHandleSystemExclusive(myReceiveSysEx); //Doesn't work...
SysEx Dump works now. See short video.
It was a bit more complicated than I thought. First, conversion routines had to be developed for all 212 parameter values in the Jeannie, which convert 8/16-bit integer values...
SysEx Dump works now. See short video.
It was a bit more complicated than I thought. First, conversion routines had to be developed for all 212 parameter values in the Jeannie, which convert 8/16-bit integer values...
Annotation:
The normal processor clock of the Teensy4.1 CPU is 600MHz. I reduced the clock setting for the processor in Arduino to 24Mhz. Transmission errors no longer occur.
The transfer rate on the USB...
I posted your DX7 problem in Sequencer Forum. Look at here: https://www.sequencer.de/synthesizer/threads/yamaha-dx7iid-midi-dump.102499/
Greetings Rolf
Yes. Your SysEx data block is too large. With MIDI-OX a maximum of only 2048 bytes per SysEx block can be received.
Such a large block of data is not normal. All synthesizers I know send a block of less than 500 bytes...
I wrote a small Arduino sketch and tested it on a Teensy 4.1 board.
Transmission errors occur with unchanged usb.c file. With the change to usb.c file, there is no transmission error.
The waiting time after...
This is my code to send SysEx to usbMIDI()
In the SysEx dump menu from my synthesizer I query a key and set the sendSyssExflag.
If the flag was true then send sysex dump. I always send a block of 348 bytes.
Then I...
Did you change the usb.c in your Arduino Library as I suggested ?
After that it is important that your project has to be completely recompiled (restart Arduino IDE).
File Path: C:\Program Files...
I missing usbMidi.read() in your code !
// discard incoming MIDI messages
while (usbMIDI.read()) {
// ignore incoming messages
}
What Arduino CPU and Windows Version are you using?
If you disabled in usb.c the usb midi flush output() you have to after midi data has been sent, a flush() must be sent.
This function forces the USB layer to send the data immediately. Since the USB bus is not...
In MIDI-OX I discovered an error when receiving SysEx Dump. The number of received SysEx data is displayed incorrectly in the preview window of the SysEx Dump function.
Instead of 44,544 bytes, I see 44,766 bytes. In...
I think it's a bug in the teensy 4 USB library. Paul should know what doesn't work there.
I modified the usb.c in the midi library. It works. But it's not a good solution.
File Path: C:\Program Files...
Hello Mark
I am sorry. But unfortunately I can't help you much.
Unfortunately, I don't know much about C-classes. I copied the scope code from another open source project.
For display output I use a frame...
As I understand it, the usb_midi_flush_output() function is responsible for deleting unread data in the midi buffer.
Since I am constantly querying the Midi buffer in my Polyphonic DIY Synthesizer with MIDI.read()...
There is an interesting post here https://forum.pjrc.com/threads/49753-Problem-with-large-volumes-of-data-on-usbMidi?p=168107&viewfull=1#post168107
It works usb_midi_flush_output() by commenting out into usb.c file...
Now.. I have implemented USB and Midi SysEx transmission. USB often has transmission errors. Midi works without error :)
a lot of sysex data..
uint14_to_sysex2Bytes(data, sysexCount, sysexData); //...
Tranfer only one patch, it no error.
To protect against Buffer overflow, I made a wait time 120ms after sending each patch.
Is there a way to query a faulty USB transfer :confused:
Hello teensy friends
I programmed a midi dump function for my Synthesizer with Teensy 4.1. Transmission errors occur when I send Patch Bank data to the PC via usbMIDI.sendSysEx. The data packet is 128 * 348 bytes...
I programmed different conversions for different floating point and integer values
//*************************************************************************
// convert float (0.0 - 0.127) into SysEx 1Byte...
Hi MatrixRat
The SysEx dump for a patch is very complex. The patch is stored on the SD card as a text string.
This contains values in 32-bit floating point and 16-bit integer values.
You can still save some SysEX...
Hallo,
I optimized my code a bit. I use call-by-referense for string function and variables.
That uses less memory :)
//*************************************************************************
// usbMidi send...