Jump to content

TK.

Administrators
  • Posts

    15,254
  • Joined

Everything posted by TK.

  1. MTV
  2. I'm running MIOS Studio and MIDI-Ox mostly in parallel w/o issues. With which operation system are you working, and which MIDI interface are you using? Best Regards, Thorsten.
  3. Maybe there are some random button triggers which prevent MIOS from checking for upload requests. However, could you please try to upload MIDIO128 with the 1st level bootloader, which is active for 2 seconds after power-on (before the MIOS V1.9 message appears on the LCD). Please also use the latest MIOS Studio release beta7_4 Best Regards, Thorsten.
  4. the GP buttons are located below the two 2x40 displays - how large are your fingers? ;-) Isn't it easier and much more flexible to use a normal keyboard for entry into the chord memory? A split function is already available in MBSEQ V3 for the transposer (lower keys, also used so select the base note), and the arpeggiator (upper keys). By activating the "force-to-scale" function on all tracks which are playing arpeggios (see the tutorials how MBSEQ handles this), you have something similar, but much more powerful :) (yes, I know that this is not what you mean, but your suggestion is not on-topic anyhow ;-)) I implemented a C based "magic chords" application some time ago (see this topic http://www.midibox.org/forum/index.php?topic=5966.0) but didn't found it very useful, and therefore never released it. However, it only supports major and minor scale, with all the new scales it could become interesting. Is somebody interested in maintaining (improving, writing documentation) for this "magic chords" app? Best Regards, Thorsten.
  5. yes, it's ok, even this method consumes more memory, because a "goto" instruction takes 4 bytes, storing the target program counter in a table would only take two byes per entry. However, for simple applications this should be ok, and for larger applications just use the PIC18F4620 ;-) Best Regards, Thorsten.
  6. yes, this is correct. If you want to make it easy and less RAM memory efficient (which would be ok, since there is enough free in the MBCV application), you could store the received velocity values in an array of 128 bytes: in app_defines.inc, add: VELOCITY_VALUES EQU 0x200 ; ... 0x27f - used as velocity value storage [/code] Within CV_MIDI_NoteOn, you can store the velocity value: [code] lfsr FSR0, VELOCITY_VALUES movf MIOS_PARAMETER2, W ;; use note number (0x00..0x7f) as index for the array movff MIOS_PARAMETER3, PLUSW0 ;; works like: VELOCITY_VALUES[note] = velocity now a really quick&dirty solution: in cv_map.inc, CV_MAP_Hlp_Note function, you can send the velocity instead of the note in following way: replace ;; get note lfsr FSR0, CV_C1_NOTE movf CV_CURRENT_CHANNEL, W, BANKED movff PLUSW0, TMP1 [/code] by: [code] ;; get velocity of note lfsr FSR0, CV_C1_NOTE movf CV_CURRENT_CHANNEL, W, BANKED movf PLUSW0, W lfsr FSR0, VELOCITY_VALUES movff PLUSW0, TMP1 Best Regards, Thorsten.
  7. This would be perfect! Could you please take a look into the assembly output? It's located in the _output directory Best Regards, Thorsten.
  8. this was also my thought when I played with the scales yesterday. I think, that the related scale could be selected with an external keyboard as well, e.g. like known from those entertainer keyboards: press a single key, and it is major, press an additional key which is 2..3 semitones away, and it is minor. in MBSEQ V3, you can loopback the output of a track into the internal MIDI engine. This means, you could use a track in CC mode, select the CC parameter for the scale, prepare some fitting values, and play the track with slow speed in any direction (any means also: random :)) this definitely makes sense, because most people who could be interested in such an engine will never build a MBSEQ, so a small (core-only) application which is specialised on such effects could get very popular (especially because every MIDIbox user can try it out! :)) Best Regards, Thorsten.
  9. TK.

    MIDI-Master-Clock

    Ok, ich denke, dass im wesentlichen die MIDI Clock Ausgabe ueber bis zu 8 MIDI Out Ports und die Ansteuerung eines 7-Segment Displays als Beispiel interessant waeren, den Rest mueste jemand weiterprogrammieren, der die Hardware auch selbst aufbaut. Hast Du C Kenntnisse? Gruss, Thorsten.
  10. So funktioniert es ja bereits. Es gibt 16 Tracks mit 3 Layern und 32 Steps, normalerweise wuerde man fuer einen vollen Zugriff also 1536 buttons benoetigen. Wenn man einfach nur Noten einspielen moechte, kann man ein externes Keyboard anschliessen, und den Step oder Live Record Modus aktivieren - das ist ziemlich ergonomisch. Alternativ dreht man die Werte mit den 16 Encodern ein - so mache ich das meistens. Die V3 wird bereits an Beta Tester verteilt. Wuensche: bitte erstmal in das dokumentierte V2/V3 Konzept einarbeiten :) Gruss, Thorsten.
  11. So, you've already found the algorithm - implementation is like explained by AC. LEDs can be flashed synched on the MIDI clock when you are triggering on 0xf8 (MIDI Clock) within the MPROC_NotifyReceivedByte function. A 1/4 note takes 24 clocks, you need to count them. During the first 12 clocks, you can switch the LED on, during the other 12 clocks turn it off. The counter has to be reset when it is >= 24, and with 0xfa (MIDI start event) Best Regards, Thorsten.
  12. sorry, read this too late - yes, thats the reason Best Regards, Thorsten.
  13. I've currently not sure, but does each button have a dedicated diode? If not, this would explain why some key combinations trigger more key functions than expected. Best Regards, Thorsten.
  14. Such a mode is not implemented in MBCV - it would require, that the velocity values are stored together with the note values in the note stack. Programming isn't so difficult here, but when I look into my ToDo list, I know that I don't have the time for an update in the next year :-/ Best Regards, Thorsten.
  15. Thanks alot, Stryd! :) So, I don't need to write the generator... Braintu: I think that this suggestion is not related to the discussion about a special chord mode here? Because different notes can already be stored in a track, and they can be entered with the encoders, with step record and live record mode from an external keyboard. I think it's already ergonomic enough :) Best Regards, Thorsten.
  16. Hi John, I've currently very limited time to check your setup, but I guess that somebody else who did this in the past could help as well... This remembers me a little bit on the resistor array issue cchocjr had (resistor array soldered in wrong orientation). But for the encoder it could also be the wrong detented mode (-> mios_tables.inc), or the wrong pinning (an encoder has three pins, there are three possible combinations, only one works correctly) You could use the MIDIO128 application in order to check if the DINX4 module works correctly (see also http://www.midibox.org/dokuwiki/doku.php?id=din_module) Best Regards, Thorsten.
  17. ok, AC will continue ;-)
  18. Hi Rowan, by drawing a diagram and descriping the function you are close to find the algorithm you need. Now it makes sense to create a state diagram in order to get a better oversight. A description of this technique can be found in Wikipedia (or somewhere else). Let's work it out together - I can see four different states: S0: LED1 off, LED2 on S1: LED1 flashing, LED2 on S2: LED1 on, LED2 off S3: LED1 on, LED2 flashing Now just describe, under which conditions a state transition does happen Best Regards, Thorsten.
  19. Impressive performance! :) Best Regards, Thorsten.
  20. TK.

    MIDI-Master-Clock

    Hallo Brain, ich hoffe, Du findest Deinen Artikel hier im deutschsprachigen Teil des Forums wieder. Ja, Sneakthief hat eine modifizierte Clockbox ohne Encoder in ein Ideal-Standardgehaeuse von Reichelt eingebaut: http://www.midibox.org/forum/index.php?topic=6147.0 Die Moeglichkeit, verschiedene MIDI Clocks auszugeben, und sie taksynchronisiert ein- und auszuschalten, halte ich fuer sehr sinnvoll. Und ich koennte diese Funktion mal auf die schnelle in die Clockbox einbauen, hierfuer muesste ich lediglich 0xf8 via "Bit Banging" auf die IO Pins geben: 128 uS Low-Pegel, 192 uS High-Pegel Bleibt die Frage, wie das User Interface aussehen soll, aber hierzu hast Du Dir sicherlich schon Gedanken gemacht. Ich wuerde vorschlagen, dass Du die Beschreibung ins Wiki bringst, dann kann jeder daran herumbasteln, und am Ende haben wir eine neue Clockbox2 + eine fertige Dokumentation :) Gruss, Thorsten.
  21. Are you able to upload the patches above 75? (this can be easily tested with TL's patch manager) Best Regards, Thorsten.
  22. Thanks a lot for the input! I especially like the pianoworld page :) I just have implemented the "force to scale" function and it works alright. Tomorrow I will write a small perl script which allows to convert the table from a text file which contains the scales in this special interval notation - this will be less error prone. I guess that 32 selectable scales should be enough? Wisefire: adding the church scales will be a piece of cake then :) Stryd_one: I took the "harmonic minor" scale from a book since it varies a little bit more than "natural minor", just the comment "Minor" is not correct. Best Regards, Thorsten.
  23. This is what I also thought today, because both - B and C - open a lot of new possibilities. For solution A it isn't really worth the effort (I would have to overwork the display handler again due to the long chord names) So - I will provide two chord modes. B is more powerful than I expected at the beginning. For example, following setup could be realized: G1 (the first track group) plays rhythmically triggered chords which are stored in pattern A1..A3 G2 (the second group) is only used as chord memory, stored in pattern B1..B4 now you can either vary the rhytm by changing the pattern of G1 (e.g. A1->A2->A1->A3->A1) or you can change the set of chords by changing the pattern of G2 (e.g. B1->B2->B3->B4->B1) or you can do both - independent from each other :) Another setup: "rhytm" and chord memory is stored in a single pattern, chords are varied with the random and/or morphing function. All this (and more) still fits the currently implemented concept, only a few number of code lines need to be added :) And here the most crazy setup: G1 plays chords and forwards them internally to the arpeggiator G2 contains one track as chord memory G3 plays polyphonic arpeggios The tracks of G1 and G3 are played with different directions and "progression parameters". The result? Hard to explain, but I think that I will demonstrate this in the next video ;-) Solution C: the available scales could also be used in other track modes as a "Force to Scale" option, which ensures that only notes are played which are fitting with the selected scale. This especially improves the Morphing feature! :) But for the scales I would need your help - I've prepared a scale table which needs to be filled - do you know more scales? SEQ_SCALE_TABLE ;; 0 1 2 3 4 5 6 7 8 9 10 11 ;; C C# D D# E F F# G G# A A# B SCALE_ENTRY 0, 0, 2, 2, 4, 5, 5, 7, 7, 9, 9, 11 ; Major SCALE_ENTRY 0, 0, 2, 2, 3, 5, 5, 7, 7, 10, 10, 11 ; Minor SCALE_ENTRY 0, 0, 2, 2, 4, 4, 4, 7, 7, 9, 9, 9 ; Major "Pentatonic" SCALE_ENTRY 0, 0, 0, 3, 3, 5, 5, 7, 7, 9, 9, 9 ; Minor "Pentatonic" [/code] Best Regards, Thorsten.
  24. ja, richtig. Diese Option funktioniert auch schon mit der MBSEQ V2 Du kannst den Sequenzer ja schrittweise aufbauen, zuerst mit 16 Buttons/16 LEDs, und spaeter um die weiteren Buttons/LEDs ergaenzen. Die 64 Button Option existiert noch nicht, ich werde sie jedoch auf alle faelle in die MBSEQ V3 Firmware einbauen, und nachtraeglich auch in die MBSEQ V2. Die Buttons werden mit den LEDs zu einer Matrix zusammengeschaltet, so benoetigt man keine zusaetzlichen Module, man muss jedem Button jedoch eine Diode spendieren (64 x 1N4148). Mehr zu diesem Thema (Schaltplan, Test-Applikation, etc.) demnaechst. Das LTC Modul ist quasi nur ein kostenloses Schmankerl. Es ist nicht unbedingt notwendig, doch es bietet immerhin einen MIDI Thru und einen zweiten MIDI Out (der das gleiche sendet wie der erste MIDI Out). Ja Die Materiallisten mit Bestellnummern fuer Reichelt befinden sich auf den MBHP Modulseiten (-> suche nach "orderlist") Bei den guenstigeren Bauteilen wie Widerstaende, Kondensatoren, Dioden, Steckleisten am besten gleich auf Vorrat bestellen (Stueckzahl aufrunden). Vor allem bei den 10k und 200 Ohm Widerstaenden macht das Sinn, ab 100 Stueck gibt es Rabatt. Aufpassen beim Netzteil fuer das Core Modul: bei der MBSEQ sollte es 1A liefern, 500 mA reichen wegen der beiden Displays und den vielen LEDs nicht aus! Ein Tip zur zuverlaessigen Bestellung: kopiere die Materiallisten in einen Texteditor, trage die erforderlichen Stueckzahlen ein (beim Core Modul bspw. alle Bauteile doppelt), sortiere die Liste und gib sie dann bei Reichelt ein. Vorher koenntest Du sie auch nochmal hier zum Doppelchecken veroeffentlichen. Gruss, Thorsten.
  25. I'm thinking of how to organize the "chords" feature of MBSEQ V3, and need some hints, which one would be the most useful implementation. In chord mode, the note value (0..127) should not select a single note, but a chord of up to 4 notes instead. Since there are so many possible combinations and inversions, I have to find a way to decode chords so that they are easily selectable, and the results are still flexible enough. Currently I've 3 solutions in my mind, but I'm unsure which one is the best. Solution A) Predefined chords, Selectable inversion and octave transpose - makes only 4 chords available: Major, Minor, M7, m7 - 3 Inversions selectable - octave transpose from -4..+3 selectable The chord track would play: C Maj/0 +0 --- --- --- A Min/0 -1 --- C Maj/2 -1 --- C Maj/0 +0 Advantage: easy selection and 4-finger chords (M7/m7) Disadvantage: very low variety Solution B) Chord Memory One track of the pattern could be mis-used as a chord memory, a combination of 3 keys is stored in each step, this would allow 32 different 3-finger chords. The chord track now only selects the step of the chord memory. E.g., if the chord memory stores: Step 1: C-3, E-3, G-3 Step 2: A-2, C-3, E-3 Step 3: G-2, C-3, E-3 The chord track would play: 1 2 3 4 5 6 7 8 9 ... Chord1 --- --- --- Chord2 --- Chord3 --- Chord1 ... Advantage: most flexible configuration Disadvantage: only 3-finger chords Solution C) Predefined Scale, Predefined Base note, selectable transpose The scale could be selected as constant value, this would allow up to 128 different scales (Major, Minor, Blues, what you want) The base note would be a second constant value, optionally it could be played with a keyboard The note value of each step would just select different key combinations (up to 16) + an octave transpose (-4..+3) Advantage: nice source for experimental results Disadvantage: base note must be predefined, or played from a keyboard or another track. Key combinations not always transparent (too difficult usage?) What would you prefer? Or do you have alternative ideas? Best Regards, Thorsten.
×
×
  • Create New...