A

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 มิ.ย. 2024
  • Thanks to ELECROW for providing the screen used in this project www.elecrow.com/elecrow-7-9-i... - Yamaha's XG devices can do a lot of #synthesizer stuff you never expected them to do - because, for some reason, their UI never gives you full access to the synth engine. Their MIDI CC / NPRN / SYSEX implementation, however, does. So I started writing a HTML5 / WebMidi based touch optimized editor for those old boxes mainly to make this video. You can find the editor here: github.com/mrfloydst/webxgmidi
    More resources:
    All XG parameters explained www.studio4all.de/htmle/frames...
    The OG XG specification www.jososoft.dk/yamaha//pdf/XG...
    MDN on WebMidi developer.mozilla.org/en-US/d...
    HÄLP ZIS CHANNEL
    / floyd_steinberg
    floydsteinberg.gumroad.com/
    floydsteinberg.bandcamp.com/
    / @mr_floydst
    Join us on Woody Piano Shack's Discord server: / discord
    Get 7% off on DistroKid with this link distrokid.com/vip/floyd
    PayPal.me www.paypal.me/alexselck
    Shop a Huge Selection of Synths and Drum Machines at PerfectCircuit.com!
    link.perfectcircuit.com/t/v1/...
    Here's what I have in my setup at the moment. Want to have that, too? Please use the followings links and support me:
    Yamaha EX5 www.ebay.com/sch/i.html?_nkw=...
    Kasser Synths Arcade www.tindie.com/products/kasse...
    Intech GRID: intech.studio/
    MPC One, Novation PEAK, Reface DX, Source Audio Collider, Strymon Iridium, Zoom MS 70 CDR, Donner N-25, Akai EWI USB, Zoom R20, Zoom H5, Yamaha MT7, Roland Aira:
    www.thomann.de/de/thlpg_3wyep...
    Some bands / artists I've been following for a long time are (among others) Massive Attack, Pink Floyd, Pet Shop Boys, Archive, A-Ha, Yes, Porcupine Tree, John Mellencamp, Jean-Michel Jarre, Metallica, Peter Gabriel and Perturbator. So my music will kind of sound like those (without ever reaching the greatness of those artists, of course). :-)
  • เพลง

ความคิดเห็น • 101

  • @mr_floydst
    @mr_floydst  6 วันที่ผ่านมา +2

    If your device has an XG label on its enclosure, this most likely will work (to answer the most frequent question in the comments).
    Also, if you download the HTML file and double click it, the current generation of browsers will let you work with MIDI if you confirm it.

    • @remka2000
      @remka2000 5 วันที่ผ่านมา

      Ahah I had no idea this existed already! Awesome, thank you 🙏

    • @Oljekristen
      @Oljekristen 2 วันที่ผ่านมา

      Aha, i have a Yamaha QY-300 and i guess only General Midi

    • @mr_floydst
      @mr_floydst  2 วันที่ผ่านมา

      @@Oljekristen I guess that's true (though some stuff, like EG, filter ... should work on that one, too.

    • @Oljekristen
      @Oljekristen วันที่ผ่านมา

      @@mr_floydst i tried to find info on the manual but can't find any midi chart about filter etc so I assumed that it was only qy700

  • @DetroitMicroSound
    @DetroitMicroSound 6 วันที่ผ่านมา +2

    I once owned a Yamaha TQ-5, with Alan Probandt's "TwoPot" controller system, made by hand from a re-purposed PCB, quite a few years ago. The system used his controller, a computer keyboard, and my TQ-5 FM synth. -Which has an 8 track sequencer, and some other cool stuff. . TQ-5 was considered a budget model, but with hardware controllers, it can do some wonderful stuff. All the features that are inaccessible from the TQ's panel, are suddenly at hand for sweeping by hand, or whatever deeper expression you want to tweak.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Interesting - I never heard of that one. Will look it up!

  • @TheLexikitty
    @TheLexikitty 7 วันที่ผ่านมา +8

    I wish I had one of these synths, but that is some FANTASTICALLY cool work as usual 💞

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Thank you very much!

    • @hikari_no_yume
      @hikari_no_yume 6 วันที่ผ่านมา

      There is a VST software XG synth that is not very hard to find. That could be used with this if you had a “MIDI loopback” driver.

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา

      On linux, you can easily set that up with some console commands, and on Windows, there is loopMIDI.

  • @RonNewsham
    @RonNewsham 6 วันที่ผ่านมา +2

    Thanks for this - it has given me some ideas of what you can do with webMIDI (which I haven't come across). I have an intention of learning to program my hardware synths (including a Yamaha P200 stage piano that has an XG soundset). Wanting to bring people on my journey in livestreams, hard part is to make synth programming and real-time control visual, so having a web interface that can be included as a source in OBS is a compelling idea.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      That's a great idea! I will finish this, including reading the params from the current patch on the synth, but man, that list of possible parameters is long. ;-) (Adding styles for smartphones and storing your patches locally would be the finishing touches here)

  • @mksln
    @mksln 5 วันที่ผ่านมา +1

    I must have a big problem because i really enjoyed watching this video, thanks Floyd!!😂 👍💯

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา +1

      Thanks! ;-)

  • @wilcandou
    @wilcandou 6 วันที่ผ่านมา +1

    You're a really clued in guy... nice work Floyd, A+++

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Thanks for watching and for the compliment. (There are smarter people out there who'd point out several flaws in my design if they'd take a closer look at it, though ;-)

    • @wilcandou
      @wilcandou 6 วันที่ผ่านมา +1

      @@mr_floydst Well... lets just put it this way: Loads of us believe your great because what you do "works". Regardless of what others may call flaws. 👍

  • @hikari_no_yume
    @hikari_no_yume 6 วันที่ผ่านมา +2

    As the author of another Web MIDI-based tool targeting similar devices, I would suggest putting the tool on a website somewhere, to make it easily accessible. Non-programmers are going to struggle to set up a local web server to serve the .html file from, and opening the file directly disables Web MIDI.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +3

      Thanks for your feedback - I'm going to do that once I consider this "relatively complete".

    • @hikari_no_yume
      @hikari_no_yume 6 วันที่ผ่านมา +2

      Cool. :)
      My tool is called SoundPalette by the way. I intend to add XG to it eventually, for now it only has limited GS support. You can probably find it using those two keywords.
      So far, I also didn't add much that is useful for real-time performance, as I was more interested in using it as a composing aid.

  • @MiltonGrimshawMoote
    @MiltonGrimshawMoote 6 วันที่ผ่านมา +1

    A lovely little demo and I'm sure it will find plenty of usage both for GM devices and even some synths with PITA front panels like the BIT 99

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Thanks for watching! Yes, that should be possible.

  • @JulianToler
    @JulianToler 6 วันที่ผ่านมา +1

    Fantastic job Floyd! I am going to dig out my QY100 as soon as I get home.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +2

      Thanks! It's still not feature complete, but what's there should work.

    • @JulianToler
      @JulianToler 6 วันที่ผ่านมา

      @@mr_floydst I will keep my eye out for updates/contributions on Github. If I have time I may add a version to add controls for my Woovebox (which I am enjoying immensely on holiday! I do think you were a little hard on it in your review :-)

  • @rafaeltrabolsi
    @rafaeltrabolsi วันที่ผ่านมา

    Great tutorial, right up my alley. Love geeking out like this. You should do a screen upgrade tutorial next for this devices, they are amazing, live mine for sure

    • @mr_floydst
      @mr_floydst  20 ชั่วโมงที่ผ่านมา

      Thanks - I havn't yet looked up replacement screens for the MU15.

  • @cristianoramos
    @cristianoramos 2 วันที่ผ่านมา

    Wow! As soon as I managed to make it work, I discovered new sounds on my Yamaha QY70 that I wouln't even think were possible!

    • @cristianoramos
      @cristianoramos 2 วันที่ผ่านมา

      Incredible how a different control interface inspires you to control sound in other ways than you are used to

    • @cristianoramos
      @cristianoramos 2 วันที่ผ่านมา

      Only issue I had is, although the editor recognizes my input midi keyboard, which is hooked up with my computer, I still had to open the app MidiOX to play the notes from it. Maybe I'm missing something here, I don't know...

    • @mr_floydst
      @mr_floydst  2 วันที่ผ่านมา +1

      @@cristianoramos Oh, I forgot to publish my updates as a new release ;-)
      github.com/mrfloydst/webxgmidi/releases/tag/second
      This will route anything from your controller to the XG module.

    • @cristianoramos
      @cristianoramos 21 ชั่วโมงที่ผ่านมา

      @@mr_floydst Wow! Thank you very much Mr Steinberg, you're very kind for sharing it!

  • @audiblevideo
    @audiblevideo 6 วันที่ผ่านมา +1

    great idea, great implementation/code demo/explanation of midi... super

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Many thanks!

  • @wildchurch
    @wildchurch 6 วันที่ผ่านมา +1

    Brilliant! I’m going to try this out as soon as possible. As much as I enjoy messing around with arcane editors from the Win98 days, this looks to be a real performance tool. I have no idea if it is possible in this web editor but one function on the old XGPad editor that I always appreciated was the Randomiser, which let you select which parameters it would apply to, or rather filter out those you didn’t want included. It was a great way to generate starting points for new sounds. Thanks Floyd for your dedication to those of us with the XG problem!

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +2

      That randomisation function is on my to-do-list, as you previous comment was one of the main reasons to start this ;)

    • @wildchurch
      @wildchurch 5 วันที่ผ่านมา +1

      @@mr_floydst I'm honored to be 'part of the problem'!
      I've only had a quick chance to check this out but immediately found the interface a pleasure to use - even without a touch screen it provides excellent visual feedback.
      Does the webxgmidi pass through/merge note data etc. from the MIDI input? I found I couldn't use the MIDI input this way, however, merging the webxgmidi's output with hardware controllers was no problem and that's how I typically use editors/patch librarians.
      Anyway, I should explore the code before asking too many questions but I'm supposed to be working right now.
      Great fun and highly appreciated!

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา

      @@wildchurch Midi "pass through" is on my to-do-list. Should only take a couple of minutes to do (and to implement a MIDI router while I'm at it)

    • @wildchurch
      @wildchurch 5 วันที่ผ่านมา

      @@mr_floydst Ah, that explains why it didn't work, then!
      I'm not a natural coder but your video is very informative, such that even I might be able to add parameters following your field set formatting.

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา +1

      @@wildchurch It's already in there, now. ;-)

  • @dolvaran
    @dolvaran 7 วันที่ผ่านมา +4

    Really fun little project. I started looking around after your MU15 video, and am now the proud possessor of a MU2000EX with a couple of PLG cards to boot. Your videos are getting expensive as they feed my old iron disease!

    • @mr_floydst
      @mr_floydst  7 วันที่ผ่านมา +1

      I'm a bit jealous! ;-) Did you order one from Japan? If so, did you have to pay custom taxes?

    • @dolvaran
      @dolvaran 6 วันที่ผ่านมา +1

      @@mr_floydst Yes and yes - unfortunately. VAT @ 20% :(

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +2

      @@dolvaran Thanks for answering. I think I'll try to catch one as well. If I remember correctly, the sounds are derived from the Motif synth that came out the same year, and that audio in looks interesting as well.

  • @athaphian
    @athaphian 6 วันที่ผ่านมา +2

    That's great. I was semi low-key working on a web midi programmer for XG synths myself. But with many more projects going on, I wasn't making that much progress. I think I can fully control 1 midi channel now, including FX. I was still working on the 16 channel interface with volume mixer. It's a nice project!

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Very cool! Adding channel support is quickly done, you jusst need to add the number of the channel to the "B0" in you midi send command.

  • @avrilcadabra
    @avrilcadabra 7 วันที่ผ่านมา +2

    Very educational, need one of these for my pocket miku.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา

      Ah yes, the pocket miku. I tried to forget I've seen that on your channel/IG page ;-)

  • @ifholdscry
    @ifholdscry 6 วันที่ผ่านมา +1

    This is incredibly cool. I cannot believe how much better it sounds than the usual QY (which i already love)

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +2

      Thanks for watching! The effects and filter can quite radically transfrom any given sound.

  • @TheCinefotografiando
    @TheCinefotografiando 6 วันที่ผ่านมา +1

    You the best by far

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Thanks! I hope I'll finish this - the list of effects parameters is quite the valley to walk through, as they say 'round here. ;-)

  • @Sammie-m2w
    @Sammie-m2w 2 ชั่วโมงที่ผ่านมา

    I’m going to try this with my rs7000 and rm1x

  • @avanishpatel3076
    @avanishpatel3076 6 วันที่ผ่านมา +2

    Looking forward to trying this with my QY100! Thanks Floyd!

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา

      Thanks for watching! The version online has more features than what I showed in this video already. But still a long way to go, the drum editor is missing, and the controller assignment would be nice to have as well (as it lets you assign after touch control, and enables you to edit filter envelopes and lfo)

    • @matszh
      @matszh 6 วันที่ผ่านมา

      For me, the Arturia Keystep 37 is the perfect controller for the QY100, as the knobs are configurable to send 16 channels of CC, which also are recorded in real time by the QY sequencer.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      @@matszh Having a hardware controller is always preferable to a touch screen, but unless you can configure it to send sysex and NRPNs, you won't be able to use all the stuff that can be changed in realtime (Filter LFO might be one one particularly popular real time control option, for example)

  • @mCKENIC
    @mCKENIC 6 วันที่ผ่านมา +1

    Floyd this is BRILLIANT! Thank you for the video!!! This could bring some life to my overlooked MU10 - Thank you! The screen is brilliant too.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +2

      Thanks for watching! :-)

  • @remka2000
    @remka2000 6 วันที่ผ่านมา +1

    Really cool. Never really worked with WebMidi in all my years as a frontend dev, but that's an excellent use case!
    I assume you would need another cable to read MIDI out current values from the synth (so sliders reflect the existing value when first loading the page)? - didn't check the code yet... I would probably add a small span or something above each slider to show their current value in number.
    Also a little bubble that follows your finger, a bit above or under it when editing the value.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Thanks for watching and replying - that's a great idea, I'll most likely do it. I started this last monday mostly with the intention to have an interesting video on sunday, haha ;-) But I'll keep updating this in the weeks to come. Putting in all the sliders for that endlessly long list of possible effects somewhat took at shot at my motiviation to continue quickly, though. That list is sooo long.

    • @remka2000
      @remka2000 6 วันที่ผ่านมา +1

      @@mr_floydst Pretty sweet for a weekend project 😃!
      I could easily see this expanded to be a universal MIDI controller for any device, where you could chose the type of input (slider, toggle... or other?), the label, the midi channel per input (for a drum machine let's say), add tabs etc. and save everything on local storage. Less hands on than an actual physical device but infinitely flexible, and infinitely hackable. Maybe using something like vuejs/pinia to manage states (then build everything into an SPA). Let's see...

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา

      You just described Open Stage Control (th-cam.com/video/0_JofsYiQWI/w-d-xo.html )
      I don't know if OSC can handle NRPNs, though.

  • @toberkitty
    @toberkitty 6 วันที่ผ่านมา +1

    This is so cool! I may just dust off my QY70 and try it with that. Thanks for making it!

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      Thanks for watching! It should work with the QY70 - I've added some more sliders in the meantime. Might be that I got some of the boundaries wrong ;)

  • @darwiniandude
    @darwiniandude 3 วันที่ผ่านมา

    Awesome work! I can see it has most parameters I'm aware of already. I think one I couldn't see thought was a mono/poly toggle, I _think_ XG can be set monophonic for synth lead sounds etc but I haven't tried it yet.

    • @mr_floydst
      @mr_floydst  3 วันที่ผ่านมา +1

      Hi, thanks for watching! I've just added that, plus controls for early reflections. ;-)
      (I'm trying to add the controls for one effect per day, it's a bit tedious)

    • @darwiniandude
      @darwiniandude 3 วันที่ผ่านมา

      @@mr_floydst wow, thanks!

  • @SianaGearz
    @SianaGearz 6 วันที่ผ่านมา +1

    I should try this with my PSR530.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      It should work, that one has the XG label.

  • @Latvian3Dman
    @Latvian3Dman 6 วันที่ผ่านมา +1

    Me, my Twitter friends - you know the drill 😀

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา +1

      Thanks. It's much appreciated.

  • @WillPierceMN
    @WillPierceMN 6 วันที่ผ่านมา +2

    It would be great to have a list of all the synths this works with! CS1X?

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +3

      If your synth has an "XG" label on it, it will work. GM devices will react to some of these sliders as well.

    • @WillPierceMN
      @WillPierceMN 6 วันที่ผ่านมา

      @@mr_floydst Were gonna test that!

    • @Oljekristen
      @Oljekristen 2 วันที่ผ่านมา

      ​@@mr_floydstwich GM parameters?

  • @alancash6420
    @alancash6420 6 วันที่ผ่านมา

    Definitely going to give this a go, thanks Floyd. I have a QY-70 I want to use for a live set up with my Maschine MK3. Do any of you assorted MIDI experts know of a way of starting them off clock synced, but then the QY-70 continuing to play at the same BPM while I change project/tempo on the Maschine? Have considered Supercollider/ Sonic Pi as a master clock but is there a better (pref free) way of doing this?

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      I don't have an answer to that - let's hope one of my viewers knows more! ;-)

    • @alancash6420
      @alancash6420 5 วันที่ผ่านมา +1

      I've got a couple of Arduinos (Arduini?) in the cupboard somewhere. Might have a go making a master clock with one of them.

  • @wildchurch
    @wildchurch 4 วันที่ผ่านมา

    Thanks

    • @mr_floydst
      @mr_floydst  4 วันที่ผ่านมา

      Thanks as well - much appreciated!

  • @CeZero4
    @CeZero4 5 วันที่ผ่านมา

    This kind editor could be usefull for Yamaha Djx2b (if im correct). Of course there should be made some settings to fit to djx. Some sounds in this crapy box are ok, drums are mostly ok too. Unfortunately Yamaha forgot to add any access to any parameters others than: tempo, filter and some few others. Not possible to change sound, effects etc. And to be worse - sounds are not changed by Prog Change. You have to set Banks Lsb and Msb, surprisingly not in order.

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา

      If the DJX2b has the "XG" badge, this will work. If it's a GM machine, most of the stuff will work.

    • @CeZero4
      @CeZero4 5 วันที่ผ่านมา

      @@mr_floydst looks that djx2b isnt XG or GM. I have Peavey PC1600 programmer. And there i could send somebdata strings for sysex. Unfortunately sound presets cant be easily choosen. As i said previously: to change presets you need to set Bank Lsb and Msb. And thats not in row... These are in different combinations - thats hard part. They need to be changed by adding some numbers. Anyway, you can download operation manual, there is included sysex list. Midi too but its useless. Probably it says what controller is used to change filter or pitchbend.

    • @CeZero4
      @CeZero4 5 วันที่ผ่านมา

      @@mr_floydst checked preset list and to change sounds, you need to type 3 parameters: bank lsb, bank msb, program change.
      Here are some examples from group "saw lead".
      Patch Breakit msb 0, lsb 122, prg chng 81
      Patch Mcline msb 0, lsb117, prg chng 80
      Patch Scary msb 0, lsb 117, prg chng 81
      As you can see patches are in row but their parameters not, they are variable. Thats the hard thing.

  • @TooSlowTube
    @TooSlowTube 5 วันที่ผ่านมา

    Very nice. This looks like it could be a good alternative to using Ctrlr to make MIDI control panels for synths... but what are you using to host the web page, and does it work off line? Also, is it possible to use MIDI Learn, or assigned inputs from a physical MIDI controller, with this sort of system?

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา +1

      Thanks! In the latest browser versions, you can just load the HTML file from the local hard drive and confirm it's allowed to use your MIDI devices.
      I have not created a MIDI learn function yet, but as of today, this "app" will pass through any MIDI commands to the selected MIDI out port (basically implementing a MIDI router)
      * midi learning doesn't make a lot of sense on XG devices as all controls are standardized, which is the entire point of XG - but I totally see this would be very useful for non-standard MIDI implementations

    • @TooSlowTube
      @TooSlowTube 5 วันที่ผ่านมา

      @@mr_floydst Cool. I'll have to see what browsers are good for this. What I meant about MIDI Learn (or some other form of assignment) was being able to use a physical MIDI controller to move the faders/sliders in the web MIDI app. That's typically what I do with Ctrlr panels. I normally run Ctrlr inside Cantabile (a DAW) just so I can set up assignments from a knobby MIDI controller to work the controls on the screen - so the Ctrlr panel gets used as a translator from what the physical controller sends to what the synth gets sent, while providing visual feedback of the values being altered.

    • @mr_floydst
      @mr_floydst  5 วันที่ผ่านมา +1

      @@TooSlowTube I posted an update today that at least routes all MIDI coming from an external controller to the MIDI output and channel you selected. The UI itself isn't reacting to the input (yet). It's certainly possible to implement that.

    • @TooSlowTube
      @TooSlowTube 5 วันที่ผ่านมา

      @@mr_floydst Thanks. That sounds promising. Ctrlr is pretty capable, but it's a forms based thing with a truly awkward UI, plus it uses a scripting language called Lua which almost doesn't seem worth learning because I've never come across any other use for the knowledge. This Web MIDI approach seems like a better standard to learn, and just writing scripts is probably less trouble than struggling with the Ctrlr user interface.

  • @Simon-ui6db
    @Simon-ui6db 6 วันที่ผ่านมา +1

    Wonder if this will work on my Tyros.

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      If it has an XG label, it's going to work.

  • @arunca190
    @arunca190 6 วันที่ผ่านมา +1

    Can this work with a Yamaha QY100?

    • @mr_floydst
      @mr_floydst  6 วันที่ผ่านมา +1

      It should work with anything that has an "XG" label, so the QY100 should be compatible.