home.social

#sysex — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #sysex, aggregated by home.social.

fetched live
  1. Adding an icon on the application more than doubled the size of the application, that is now 483kbytes. It is still fitting in an 800kb floppy disk 😅 #bit99 #Crumar #Sysex #Development

  2. This evening, I continued working on the #Bit99 #Sysex editor, that now begins to look like a real application 😅 Version 1.0 of the editor does not look too far!

  3. I published the #Crumar #Bit99 #Sysex editor on github: github.com/DarwinNE/Bit99tool the license is GPL v3. It is usable, hut still incomplete. I will work on it in the next few days.

  4. The work on the #Bit99 #Sysex editor continues. Now I can edit almost any parameter of a preset and load it again on the synthesizer. I don't like that very high window, so the next step will probably to rearrange the parameters more sensibly. It's very nice to use, though and very reactive. The total size of the application is 220kB. #programming #cocoa #macos

  5. My #Bit99 #SysEx editor is starting to look like an actual thing! 😄

  6. I decided to write a full GUI tool for handling the #MIDI #sysex of the #Crumar #Bit99. It's the first Cocoa project I try to put together for macOS. I like that I can combine Objective C with C code in a simple way.

  7. Do you have a #Behringer #Grind synthesizer and can't / don't want to use their #SynthTribe app or want to change the settings of the synth using a mobile device?

    Then you may want to try my new #FLOSS web app "Grind Control":

    codeberg.org/SpotlightKid/grin

    Runs in any browser that supports #WebMIDI / #SysEx

    Also, if you have any other Behringer synth and want a similar app for it and you can help with testing, open an issue over at the codeberg project page and we'll take it from there.

  8. Not sure it matters to anyone here, as the original post got no traction, but if you are a #Reaper user, with an MCU and have or want to switch to #Linux the excellent Klinke MCU control surface plugin now works (notwithstanding the #pw-jack #sysex #midi bug I've tooted about) more info, sources and a working compilation via here: forum.cockos.com/showpost.php? enjoy!

  9. Can any #ProAudio #Studio #Production folk speak to the absolute solidity / reliability of #MIDI #SysEx handling in @pipewire? I've got (unresolved) issues with it working with the #Reaper MCU implementation, and I'm playing around with some basic JSFX that I wrote, to control a Roland SRV3030 reverb parameters and it's being decidedly odd (although this may be the fault of the Roland too!)

  10. I updated the tool I wrote so that it can directly communicate with the #Crumar #BIT99 via #MIDI sysex. It can download a single patch or all the 1-99 patches of the instrument. It is a console program written in C for macOS, as I don't have the time to write a full-fledged window-based user interface, but I tried to keep it nice to use nonetheless. #synth #sysex #music

  11. I wrote a small tool in C to interpret the #SYSEX files for the #Crumar #BIT99 and #BIT01. It's handy as you can inspect how a certain patch is configured (DCO1 and 2, VCF, LFO1 and 2 etc). I even found an error in the BIT99 manual: the bit order of certain parameters is reversed! The little tool is still quite rough around the edges, but it begins to work.

  12. The #JX3P is the reason why I taught myself C again, because #MIDI #sysex hadn't been invented yet, so the only way to save/restore patch parameters was to dump to audio tape. SO I WROTE A PROGRAM TO DECODE THE TAPE DUMPS and create spreadsheets to feed back into the #Organix MIDI expander!

    phaysis.com/projects/roland-jx

  13. MicroWaveConverter by Full Bucket Music 🎛️
    Converts WAV to MIDI SysEx User Wavetables for Waldorf Microwave 1

    💻 Win (Standalone)
    🎁 FREE fullbucket.de/music/mwc.html

    More freeware 👉 linktr.ee/legalvst

    #freeplugin #wavetable #sysex #waldorf #microwave #musicproduction

  14. Bon je progresse !
    récupération du nom de la makine et des valeurs d'adressage en #sysex
    Du coup adressage correct pour charger les presets
    prochaine étape :
    décoder les valeurs des réglages
    (probablement le plus chevelu !) 🫣

    #python #dev #guitar #ampli #katana

  15. Chuis en train de me péter les dents pour commander mon #ampli #boss #katana en #sysex
    Mais je me battrai jusqu'au dernier ✊
    Testé :
    * commandes #python avec #mido des heures (4jours pour l'heure) à dev des scripts / interfaces pour tester des commandes vues sur #github : katana-midi-bridge

    * simulation #Librarian sous #Sway / #wayland + #waydroid pour sniff MITM (missing USB #OTG ) -> No way

    * #Wireshark + usbmon -> No way

    * libusb + hidapi -> no way

    prochaine tentative : VM android + Librarian (avec USB passthrough )
    pour sniff
    avec idée de lowlevel passage en mode BTS (Boss Tone Studio : propriétaire )
    JE HAIS LES SPECS NON LIBRES !

  16. Two days plus of resurrecting an #rolandalphajuno only for this moment! #hooversound #rave What kind of track should I put it on? Used two hours just to understand you had to hold WRITE to receive #sysex #midi The preset is called "what the"! - Hardcore - you KNOW the score! 🛸🔊

  17. Faderfox EC4 Firmware Update on Linux: Doubling the Encoder Resolution!

    spectra.video/w/uEnVGRAFQA1enJ

  18. @robleaves Schade eigentlich, oder? Ein #Atari ST hatte das - und #MIDI 1.0 ist ja noch nicht ausgereizt, aber die Schwerpunkte sind sehr anders heute via #SysEx MIDI. Am Ende wäre ein universelles #Patch #Librarian Dumptool tatsächlich nicht schlecht.

  19. I want to throw out a big #HotDamn to 20 years of #softwaredevelopment . I recently bought a used #Behringer #BCF2000 which had a #SysEx editor last developed in 2004 in #Java available for download from the official website. I downloaded the software to my #Fedora system and it recognized the device over the modern #Linux #USB interface and worked like a champ.

    Well done, 20 years of #software develoment and backwards compatibility!

  20. Arduino MIDI Master Volume Control

    This project uses an Arduino Uno or Nano with a potentiometer to create a MIDI Master Volume Control.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    These are the key Arduino tutorials for the main concepts used in this project:

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    The Circuit

    A potentiometer is connected to A0, 5V and GND. To help smooth out the readings a 100nF ceramic capacitor can be connected between A0 and GND.

    A MIDI OUT circuit is required. If full software MIDI THRU is required, then a MIDI IN circuit is also required, but it is not necessary to work. In fact a simple “two resistor” MIDI OUT interface would do the trick too (see DIY MIDI Interfaces).

    I’ve used my Arduino Nano Mozzi Experimenter Shield PCB simply because it has a built-in MIDI interface and readily available potentiometers, but most of the additional circuitry is unused in this case.

    The Code

    This is a variation of the Arduino Serial MIDI Program and Control Messenger in principle, but in practise there are significant differences. Whilst the MIDI Control Change messages include a volume control, it has been long considered that this should be treated as a “channel message volume control” and not meant for “whole device” operation.

    Consequently, at some point it was decided that one of the System Exclusive, System Real-time messages would be reserved as a “whole device” master volume control. That is what is required here.

    The MIDI specification describes the require message as follows:

    The Arduino MIDI library includes a sendSysEx function which has to be given a byte-sequence containing the required message. If the last parameter is “true” then it expects the SysEx start and end bytes to be included in the message.

    Note that this MIDI message is using the common MIDI method for higher resolution values – it splits a 14-bit value (0 to 16363) into two “almost bytes” of 7-bits each so this has to be accounted for in the code.

    Also, as the control will come from an Arduino analog INPUT port the starting values will be 0 to 1023, so they need to be scaled to the required MIDI range. This all happens in the function below.

    void setMasterVolume (int volume) { 
    uint16_t midivol = map(volume, 0, MAX_POT, 0, 16383);
    byte sysex[9] = {0xF0, 0x7F, 0x7F, 0x04, 0x01, 0, 0, 0xF7, 0};
    sysex[5] = midivol & 0x7F; // LSB
    sysex[6] = (midivol >> 7) & 0x7F; // MSB
    MIDI.sendSysEx(8, sysex, true);
    }

    I’ve also used, and slightly updated, the analog read averaging routine I used in Arduino PSS-680 Synth Editor- Part 2. This code maintains a “running average” reading to smooth out any jitters in the readings.

    One thing I was finding though, especially at full-reading (1023), it was still quite jittery even with the smoothing, then I realised that this is because of integer arithmetic always rounding down to the last whole number. This means that no matter how many of the sampled readers were at the full value of 1023 if there was just a single reading of 1022 the rounding down would make the “average” also 1022.

    The way around that was to use a single decimal place for each reading and then add 0.5 to the final averaged value to ensure it would also round to the nearest integer rather than round down.

    To save having to move into floating point arithmetic I multiply the value by 10 giving me a pseudo single fixed-point decimal.

    The complete averaging routine is thus as follows:

    #define AVGEREADINGS 32
    int avgepotvals[AVGEREADINGS];
    int avgepotidx;
    long avgepottotal;

    int avgeAnalogRead (int pot) {
    int reading = 10*analogRead(pot);
    avgepottotal = avgepottotal - avgepotvals[avgepotidx];
    avgepotvals[avgepotidx] = reading;
    avgepottotal = avgepottotal + reading;
    avgepotidx++;
    if (avgepotidx >= AVGEREADINGS) avgepotidx = 0;
    return (((avgepottotal / AVGEREADINGS) + 5) / 10);
    }

    Notice how the analogRead() is multiplied by 10 and then once the average is calculated in the last line 5 is added (or 0.5 when we know it is a fixed-single-point decimal) prior to the final divide by 10 to get back into the 0 to 1023 range.

    Coupling this with a capacitor across the signal of the potentiometer as shown in the schematic, this gives me a much more stable reading, which is important for a MIDI controller as it means there is no MIDI messages being sent unless something has really changed.

    The code is using the MIDI serial transport which has MIDI THRU enabled by default. This means that the board could be used within an existing MIDI link by connecting both MIDI OUT and IN. This would add Master Volume control alongside whatever else is being transmitting and as the MIDI library works on the basis of complete MIDI messages, it should work relatively intelligently while merging the two MIDI streams.

    Find it on GitHub here.

    Closing Thoughts

    There are many directions this code could go next. The obvious ones are:

    • Include options for additional MIDI interfaces, especially USB MIDI.
    • Support Master Balance in addition to Master Volume.
    • Switch to a rotary encoder rather than a potentiometer.

    Kevin

    #arduinoNano #arduinoUno #masterControl #midi #potentiometer #sysex #systemExclusive

  21. Converting waveforms to sds in Audacity then changing to syx extension so sysexLibrarian can see it to send to Monomachine. Surely there is an easy way that just works without C6 #elektron #userwaveform #DSP #Sysex

  22. DINOctopus my #midi / #usb router based on a #rp2040 now has support for configuration via #WebMidi using #SysEX

  23. <hacker voice>
    We're in!
    </hacker voice>

    It shows this message every single time you turn a knob. Cute, eh?
    #MIDI #sysex #synth

  24. Ever wonder if there are missing appendices at the ends of The Bible and Das Kapital, and our inability to control our world and/or our economies are merely a matter of having miscalculated the checksum?

    In other news: WTF is up with demo tune composers?

    #synth #rompler #MIDI #sysex

  25. Victory! Finally programmed the fugly but useful BCR2000 (below) to send sysex control data to the XV-2020 (above) complete with the infamous Roland checksum. Maybe I'll have some breakfast now.

    #synth #midi #sysex #rompler

  26. Stoked to have found #KnobKraft-Orm even though I'm really bad at both #Sysex and #Python but this is the sort of #MusicProduction tool I like as I've got a decent amount of hardware lying about! If there's anyone who fancies their chances at getting it working with a Yamaha #SY85 I'd love to hear from you!

    github.com/christofmuc/KnobKra

    #VintageSynth #SynthProgramming #MIDI

  27. Here's my first attempt at a quick primer on what #sysex (system exclusive #midi) data is. Does it make sense? Anything I left out?

    coffeeshopped.com/sysex

  28. I'm going to be working on some scripts to send batches of #MIDI #sysex commands to a #novation bassstation2. It's probably going to be with #lua or #python , but please let me know if there's any other language or scripting environment that will speed up the task

Share on Mastodon

Enter the server where you have an account.