-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature requirements? #1
Comments
there have been open discussions on what are possible "end goal" hardware / software Gumtown has two Katana projects - the Editor, and his small "Katana Patch Loader https://www.thegearpage.net/board/index.php?posts/24008492/ Katana Patch Loader Version 20170427 For windows, mac, and linux [IMG] A software to load real-time Tone Studio patch file bundles into the Katana modelling amp, by receiving standard midi patch change messages. Tone Studio patch file bundles can contain up to 128 patches, and are loaded into the Katana with a corresponding midi patch change message from a software controller or mid foot controller. Easy setup steps. 1.) Load in a Katana patch file bundle from the “File open” menu. 2.) Select midi controller device and Katana from the “Preferences > Mid/USB” menu. 3.) Start playing, midi cc# messages are passed through from the midi controller to the Katana. Your Katana will now be able to access up to 128 patches for live playing. Latter features for assigns will be added to give realtime midi controls over most Katana parameters. https://www.thegearpage.net/board/index.php?posts/24008855/ _With the Linux version of the Katana Patch Loader, you could get a small micro computer device, A portable solution to instant access to 128 Katana patches at the command of your toes._ |
^^ -although it becomes clear to me that a cheap Android 6.01 smartphone with USB OTG port might make a useful platform for hosting this - benefits from having a touchscreen and color display for user setup - just mount on a custom Katana floor controller and add a long USB cable to the Katana. |
When it comes to patch loading the library would definitely go a long way.
All the current programs (floorboard, patch loader, midi bridge, android editor, ...), already implement this in different ways. Having a library may save everyone some time maintaining this and make it easier to create new software for different needs. |
Personally with a PIC controller (MIDX-20) at hand with totally 64kB code for a boot loader and all the other MIDI stuff in the MIDX PLUS currently two Amplifier Bridges I very much tip toe myself around. I don't even have floating point arithmetic for scaling. So to scale a Katana number to a CC range of 0-127 I have stuff like this using integer arithmetic: This saves two bytes every time.... enum ADR_BASE Example: #define KAT_CC_FX_FIRST 30 |
That looks like fun, Robert. In my early years with computers I coded Apple 2 device drivers in 6502 assembly language. There you had a bit under 2k of program space, so every byte counted. Sometimes I miss working to tight constraints. It can really get you thinking outside the box. |
In terms of functionality, I really want and need a GUI controller with save/recall function that's also able to respond to MIDI. Kind of like FxFlooboard and PatchLoader in one. If I'm at practice and the patch I worked on all week isn't cutting it, I'd like to be able to twiddle controls real-time and persist the new state. My bridge code is really only covering the save/recall piece. At present I have to switch USB cables to edit and it's a PITA. |
@CodeSmart63 Yeah I worried that would be the case for any micro controller situation. Aside from cherry picking some meticulously optimized source files or using data like https://github.com/katana-dev/docs/blob/master/data/tsl-map-1.0.0.csv for auto-generated code you can't afford to include the whole library. On top of that the specific goals for the MIDX's don't seem to involve much that is subject to heavy change, regarding the Katana at least. But I still wanted to flip the question, do you see potential for anything worth sourcing coming out of a library like this? |
@snhirsch that is an interesting idea. What kind of physical setup are we talking about here? I'm assuming you would add a laptop/phone to the equation here rather than hook the beaglebone up to a monitor, keyboard and mouse. And where would edits go? Straight to So far I found you can do quite a lot with forwarding MIDI messages through virtual ports, like in mididings. Especially floorboard (as opposed to tone studio) does not complaint as long as traffic eventually ends up at the Katana and eventually gets responses. |
@Beanow My ideal physical setup would probably be a tablet, as I don't want to carry a laptop to gigs. Alternately, I suppose I could use a laptop to dial in and persist patches at home or in the practice room, then use software on the Beaglebone to recall presets during performance. For Plan A, I can envision a smaller Android tablet in a holder above the amp control panel. The tablet will need at least two USB ports, but I suppose this could be provided using a powered hub. |
@snhirsch typically the app model for software doesn't give a lot of scripting capabilities. You'll probably want to reach out to condor to see if it would be something to add to his app. http://www.vguitarforums.com/smf/index.php?topic=20234.0 |
In #2 I decided to change to Go for the library's language. And to only export higher-level functionality. This definitely rules out micro controllers as this will pull in the Go runtime environment and standard library. But will make writing great code for the juicy problems a lot easier. Meaning things like 7bit type conversions and the checksum algo are too low level to warrant exposing through the library. Instead you can expect features like local patch manipulation, tsl compression, serializing back and forth between tsl, protobuf and sysex, etc. |
Have you looked at Qt5 ? Here is a link to the FxFloorBoard source which uses Qt5 |
Sure have, I think it sits in between C and Go as choices. It makes a lot of things easier and less error prone. But it doesn't go all the way like Go. Still have to do memory management, still not very doable to write parts of the library as type-safe pure functional code, testing and documenting isn't as simple as go, etc. So I figured if I'm spending time to learn something more in depth Go would be better in the long run. |
It looks like most of the Katana projects have significant overlap in their implementations, hence I stared working on this shared library. You can already see some work happening in the branches https://github.com/katana-dev/lib-katana/branches
Not everyone's source code is available to me, so I can't check if I'm missing any vital components.
So I thought now is a good time to ask which features would be must-haves to make it worthwhile to migrate to the shared library.
One consideration. File I/O and MIDI connectivity you need to implement yourself. As this is very environment and application specific. So expect byte arrays and strings to be your typical output for you to route them into MIDI ports or files.
Some I have on my list now:
60 00 01 12
).tsl
parameter names to addresses..tsl
patch loading and generation.Some nice to haves:
(Early research suggests 300-750 bytes per patch, while a
.tsl
is about 25KB per patch).tsl
minification, if possible, see Map out minimum required tsl parameters docs#5The text was updated successfully, but these errors were encountered: