-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
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.
-
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.
-
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.
-
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.
-
sorry, read this too late - yes, thats the reason Best Regards, Thorsten.
-
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.
-
Building velocity-sensitive polysynth using 2xMidiBox CV
TK. replied to adamstan's topic in MIDIfication
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. -
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.
-
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.
-
ok, AC will continue ;-)
-
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.
-
Impressive performance! :) Best Regards, Thorsten.
-
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.
-
Are you able to upload the patches above 75? (this can be easily tested with TL's patch manager) Best Regards, Thorsten.
-
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.
-
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.
-
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.
-
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.
-
of course, I don't plan to remove MIOS features Best Regards, Thorsten.
-
-> http://www.ucapps.de/midibox_sid/sid_cc_implementation_chart.txt oder einfacher: aktiviere den CC modus, und drehe am Parameter, den Du automatisieren moechtest. So erhaelst Du zum einen die entsprechende CC Nummer, zum anderen kannst Du den verlauf auch mit einem Sequenzer aufnehmen und nachtraeglich aendern. Gruss, Thorsten.
-
Propably you forgot to mount R2 on the core module (the 1k pull-up for the IIC interface) Best Regards, Thorsten.
-
There is still room for improvements. ;-) You can remove the channel selection (OR combination with 0x3000), otherwise you will get wrong results on Channel 2 and 4 (or 1 and 3? don't know). In addition, since 32 bits are transfered with one run, you have to arrange the 8bit values in the following way: void AOUT_Update(void) { if( aout_value[0] != last_aout_value[0] || aout_value[1] != last_aout_value[1] || aout_value[2] != last_aout_value[2] || aout_value[3] != last_aout_value[3] ) { AOUT_Load2SR(((aout_value[1]&0xff) << 8) | (aout_value[0]&0xff), ((aout_value[3]&0xff) << 8) | (aout_value[2]&0xff)); last_aout_value[0] = aout_value[0]; last_aout_value[1] = aout_value[1]; last_aout_value[2] = aout_value[2]; last_aout_value[3] = aout_value[3]; } } [/code] otherwise the second Load2SR will overwrite the values of the first. Best Regards, Thorsten.
-
I normaly use the SysEx window of MIDI-Ox to send something directly. For example, type: 90 30 7F and it will send a note type: 90 30 7F 31 7F and it will send two notes (running status taking into account) The same can be done for NRPN: B0 62 01 63 02 26 03 06 04 01 = NRPN LSB 02 = NRPN MSB 03 = data LSB 04 = data MSB there is no GUI of course, but you can save/restore such test streams as .syx file, which is nice for debugging suites Best Regards, Thorsten.
-
Single SID w/ Step A Control Unit: Select 5 Button Behavior *FIXED*
TK. replied to cchocjr's topic in MIDIbox SID
So, you get 5V without 74HC165, and/or without PIC. In addition, swapping the 74HC165 by another one doesn't change anything. According to this documentation: http://www.avishowtech.com/mbhp/mbhp_dinR3.html there is an option for resistor arrays ("SIL resistor packs"). Did you take care for the right orientation? There is maybe a dot on the array which is the "common" point - this one should be connected to +5V Best Regards, Thorsten. -
Propably because you toggle the SCLK two times within the loop? In addition, it makes sense to insert a NOP or another instruction between the toggle as well in order to add some delay for a proper pulse Best Regards, Thorsten.