Yamaha AN200 Panel

Home Forums General Panels, Components, Macros Yamaha AN200 Panel

Tagged: ,

This topic contains 12 replies, has 4 voices, and was last updated by  inteyes 2 days, 3 hours ago.

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #115783

    inteyes
    Participant
    • Topics: 1
    • Replies: 5
    • Total: 6

    Hello!

    This is my attempt to create Yamaha AN200 panel. Since original software (like AN Expert Editor) cannot give me possibility to tweak parameters while synth busy in a DAW, i decided to try to make the panel by myself.

    Things achieved:
    – basic functionality realized
    – (almost) all available sound forming parameters in one place (hidden, sysex only etc)
    – simple dependency control logic

    Future plans:
    – Storing and loading presets
    – Modulation matrix
    – Free EG (maybe)

    I’m new to Ctrlr, so dumb errors are possible.

    And honestly, I need some help with few moments:
    1. Can somebody advice where I can read about storing (opening, saving and so on) preset banks within Ctrlr?
    2. Is there any methods in Ctrlr (lua) suitable for drawing arbitary lines and converting them into array of values? That would be handy for implementing Free EG functionality.

    Thanks in advance, any help appreciated!

    Attachments:
    You must be logged in to view attached files.
    #115787
    Possemo
    Possemo
    Participant
    • Topics: 13
    • Replies: 582
    • Total: 595
    • ★★★

    looks nice! Probably most complicated thing to do when you want to store/load presets is to read/write the sysex dump of a complete patch. Some synths are quite easy while others are really challenging. On some devices there is no or incomplete documentation of the dump. Then it gets really hard.

    When you have the dump in a Lua table or in a Lua memoryblock it isn’t very complicated to save/load it to disk. As an example I would look at the panels from Carl Licroy, e.g. this one: http://ctrlr.org/power08-editor-for-dsi-prophet08/

    Of course you can just save a bunch of parameters and fire them one by one to the synth, maybe with a delay in between if the synth crashes when hitting with CC’s or sysex too fast. But for a definitive solution you will have to handle the sysex dump.

    What do you mean with “Free EG”? A random generator? You can generate random values easily with Lua. Why would you need graphic lines for this? There is no problem generating random lines with Lua though.

    #115788

    inteyes
    Participant
    • Topics: 1
    • Replies: 5
    • Total: 6

    Thank you very much, Possemo! I’ll learn this panel more detailed soon.

    I’m not afraid of tinkering with sysex data, especially since patch structure is well documented in the manual. It’s time consuming, but not impossible to make it right I guess.

    As for Free EG – that’s not exactly such kind of thing. AN200 have thing called Free Envelope Generator (screenshot attached to this message). With it you can draw any shape by hand and use it as an envelope for different controls. Can be pretty handy sometimes.
    What I want is to draw shape by hand on canvas and convert it into array of values – internally AN200 uses 192points array with levels from -127 to +127 for each point. So it would be great if you pointed me to suitable methods.

    Attachments:
    You must be logged in to view attached files.
    #115790
    Possemo
    Possemo
    Participant
    • Topics: 13
    • Replies: 582
    • Total: 595
    • ★★★

    Ah I see, this free EG is a nice feature. I have never done such a thing but I guess it should be possible with a uiCustomComponent. That will definitely need advanced scripting skills. Attached a demo panel with a mouse draggable envelope. There you can see how you handle mouse movements/events. I have no idea how you could read out what pixels are on/off. I’d probably do it separated – fill a table with values while the mouse moves and draw points in the customcomponent separately.

    Attachments:
    You must be logged in to view attached files.
    #115792

    inteyes
    Participant
    • Topics: 1
    • Replies: 5
    • Total: 6

    Thanks for your help once again! That’s a good material to start with. It’s time to dig deeper 🙂

    update: Yes, drawing works like a charm, cool!

    • This reply was modified 2 weeks ago by  inteyes. Reason: update
    • This reply was modified 2 weeks ago by  inteyes. Reason: update
    #115832
    goodweather
    goodweather
    Participant
    • Topics: 40
    • Replies: 392
    • Total: 432
    • ★★

    Hi, you can also look at my Pro2 panel. I have there patch and librarian.
    As for my other panels, everything is based on a memory block that I’m filling when reading/saving a patch file.
    It is easy to manage either by single byte or range.

    About the FREE EG, yep, you should use a uiCustomComponent then the various drawing capabilities offered by Juce graphics class (https://docs.juce.com/master/classGraphics.html) but also other classes.
    Check also the DEMO – Render panel provided by Roman with Ctrlr (in Ctrlr installation directory)

    #115833

    inteyes
    Participant
    • Topics: 1
    • Replies: 5
    • Total: 6

    Hi goodweather, thank you! I’ll be creating a preset management soon, that info will come in very handy.

    Meanwhile I finished (kind of) Free EG implementation, modulation matrix and FreeEG data sending. Work not finished, but my yamaha delivers more fun to me than ever already 🙂

    Thank you guys, your advices are very helpful! I’ll keep working on panel.

    Attachments:
    You must be logged in to view attached files.
    #115836
    dnaldoog
    dnaldoog
    Participant
    • Topics: 1
    • Replies: 175
    • Total: 176
    • ★★

    I’m impressed! (Especially with the work on the Free-EG you’ve done) – Excellent!

    I got the panel connected and working on a PLG150-AN installed in a MU100R.

    #115837
    goodweather
    goodweather
    Participant
    • Topics: 40
    • Replies: 392
    • Total: 432
    • ★★

    Héhé…now I could be interested!
    I have a PLG150-AN card in a Motif ES8 but never used it as the process for using it was just heavy and not intuitive at all. Took me long time to have Yamaha’s editors working at all on Win10 but still, way of working was not good (need to save then to send)… Then finally dropped this and did something else with my other synths.
    So, I may try this in the coming months 😉

    Which setup did you use for your MU100R to have the PLG150-AN card responding?

    #115842
    dnaldoog
    dnaldoog
    Participant
    • Topics: 1
    • Replies: 175
    • Total: 176
    • ★★

    Hi Goodweather,

    I installed:
    YAMAHA AN200 Editor for Windows (XGworks V3.0/V4.0 plug-in)
    into XGworks 3.0.7E and connect to the MU100R through an Edirol FA-66 audio interface to a Roland A-880 Midi Patcher and then through a MOTU midi timepiece MTPAV (non usb version). So it’s pretty convoluted! The AN Expert Standalone Program doesn’t connect to midi ports in Windows 10, so you have to do it this way.

    XGworks can see the MU100R and PLG150-AN no problem after that. If I disconnect the XGWorks I can then connect this panel in Ctrlr.

    I haven’t tested MIDI out from the MU100R/PLG150-AN, so limited testing.

    Have you ever worked with the interface of the MU100R? It’s so confusing, but there is a way to connect to the PLG150-AN card using the buttons. How to do that keeps eluding me every time I switch it on, but the XGworks can connect to it easily anyway.

    Regards,

    #115867

    inteyes
    Participant
    • Topics: 1
    • Replies: 5
    • Total: 6

    Hi guys, new version ready.

    What’s done:
    – Loading *.syx bulk dumps from AN200
    – Loading separate presets
    – Slight UI rework
    – Sending all the panel data to the synth via sysex
    – Fixed Free EG line tool behaviour
    – Fixed some parameters boundaries
    – Other fixes

    EDIT: Oh, I forgot to return parameter “Panel -> Global delay for MIDI messages” to default (zero). For now you can set it manually, I will correct this in the next release

    Thanks for everyone who involved into testing and advising!

    • This reply was modified 3 days ago by  inteyes.
    Attachments:
    You must be logged in to view attached files.
    #115887
    dnaldoog
    dnaldoog
    Participant
    • Topics: 1
    • Replies: 175
    • Total: 176
    • ★★

    Again, it’s great.

    How did you embed all the preset values within Ctrlr?

    You are retrieving the values using by converting csv to a lua table. That’s interesting (and clever). Is there any advantage to this compared with just holding all preset data in (large) lua tables? That’s what I did for the SR-JV80-04 sysex in a panel I did http://ctrlr.org/roland-jd990-super-editor/.

    Regards,

    #115888

    inteyes
    Participant
    • Topics: 1
    • Replies: 5
    • Total: 6

    Hello, thank you dnaldoog!

    Actually I don’t think this method have any great advantages compared to method you mentioned. It’s just the first thing which came into my mind based on my knowledge of lua and Ctrlr. I have some experience with programming on freepascal, but to lua and Ctrlr I’m a total newbie, so my methods might be far from perfect 🙂

    Preset bank values are stored as stateData within Ctrlr (as csv string). They are saving while Ctrlr shutting down and restoring while Ctrlr startup. On the one hand this method can give possibility to change default soundset without changing code at all. On the other hand – there is no default patch bank hardcoded somewhere in the panel.

    PS: Wow, great panel! Thanks for the link, I can learn a lot from it.

Viewing 13 posts - 1 through 13 (of 13 total)

You must be logged in to reply to this topic.

There is currently 0 users and 32 guests online
No users are currently active
Forum Statistics
Threads: 2,241, Posts: 15,791, Members: 55,954
Most users ever online was 12 on January 22, 2019 3:47 pm
Do NOT follow this link or you will be banned from the site!