-
Posts
474 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Blogs
Gallery
Posts posted by Marxon
-
-
Hi Thorsten,
unfortunately your Code
DOUT_MATRIX n=1 rows=4 sr_dout_r1=3 sr_dout_r2=5 DOUT_MATRIX n=2 rows=4 sr_dout_r1=4 sr_dout_r2=5 DOUT_MATRIX n=1 rows=4 sr_dout_r1=6 sr_dout_r2=8 DOUT_MATRIX n=2 rows=4 sr_dout_r1=7 sr_dout_r2=8 EVENT_LED_MATRIX id= 1 type=CC chn= 1 cc= 16 led_matrix_pattern=1 EVENT_LED_MATRIX id= 2 type=CC chn= 1 cc= 17 led_matrix_pattern=1 EVENT_LED_MATRIX id= 3 type=CC chn= 1 cc= 18 led_matrix_pattern=1 EVENT_LED_MATRIX id= 4 type=CC chn= 1 cc= 19 led_matrix_pattern=1 EVENT_LED_MATRIX id=17 type=CC chn= 1 cc= 20 led_matrix_pattern=1 EVENT_LED_MATRIX id=18 type=CC chn= 1 cc= 21 led_matrix_pattern=1 EVENT_LED_MATRIX id=19 type=CC chn= 1 cc= 22 led_matrix_pattern=1 EVENT_LED_MATRIX id=20 type=CC chn= 1 cc= 23 led_matrix_pattern=1 EVENT_LED_MATRIX id=33 type=CC chn= 1 cc= 24 led_matrix_pattern=1 EVENT_LED_MATRIX id=34 type=CC chn= 1 cc= 25 led_matrix_pattern=1 EVENT_LED_MATRIX id=35 type=CC chn= 1 cc= 26 led_matrix_pattern=1 EVENT_LED_MATRIX id=36 type=CC chn= 1 cc= 27 led_matrix_pattern=1 EVENT_LED_MATRIX id=49 type=CC chn= 1 cc= 28 led_matrix_pattern=1 EVENT_LED_MATRIX id=50 type=CC chn= 1 cc= 29 led_matrix_pattern=1 EVENT_LED_MATRIX id=51 type=CC chn= 1 cc= 30 led_matrix_pattern=1 EVENT_LED_MATRIX id=52 type=CC chn= 1 cc= 31 led_matrix_pattern=1
does not work.
Would you please explain it to me?
1) Why are the sr_dout_sel missing or are they just declared as sr_dout_r2?
As you can see, each DOUT_MATRIX has 16 EVENT_LED_MATRIX entries, regardless of the number of rows.2) Do you mean EVENT_LED_MATRIX entry has a 16 step pattern?
3) Shouldn't be the code
DOUT_MATRIX n=1 rows=4 sr_dout_r1=3 sr_dout_r2=5 DOUT_MATRIX n=2 rows=4 sr_dout_r1=4 sr_dout_r2=5 DOUT_MATRIX n=1 rows=4 sr_dout_r1=6 sr_dout_r2=8 DOUT_MATRIX n=2 rows=4 sr_dout_r1=7 sr_dout_r2=8
like this (different matrix numbering)
DOUT_MATRIX n=1 rows=4 sr_dout_r1=3 sr_dout_r2=5 DOUT_MATRIX n=2 rows=4 sr_dout_r1=4 sr_dout_r2=5 DOUT_MATRIX n=3 rows=4 sr_dout_r1=6 sr_dout_r2=8 DOUT_MATRIX n=4 rows=4 sr_dout_r1=7 sr_dout_r2=8
Best regards
Marxon
-
There is nothing more to say!
I mistakenly missed out the LED Digit topic and thought to have no usecase for it.
Thank you Thorsten.
Marxon
This was probably a little bit hasty...
The LED Digit example does not clarify the issue because
it is a pair of 8x8 matrices.
I have made a sketch to explain what my problem is.
How can i control led bar 1 with a CC and
led bar 2 with another one although they are in the same column?
I tried to assign two diffewrent patterns but as expected they interrupt each other.
DOUT_MATRIX n=1 rows=4 sr_dout_r1=3 sr_dout_sel1=4 sr_dout_r2=5 DOUT_MATRIX n=2 rows=4 sr_dout_r1=6 sr_dout_sel1=7 sr_dout_r2=8 EVENT_LED_MATRIX id=1 led_matrix_pattern=1 fwd_to_lcd=1 type=CC chn= 1 cc= 1 lcd_pos=1:1:2 label="1:%3d%B" EVENT_LED_MATRIX id=2 led_matrix_pattern=2 fwd_to_lcd=1 type=CC chn= 1 cc= 2 lcd_pos=1:1:2 label="1:%3d%B" LED_MATRIX_PATTERN n= 1 pos= 0 pattern=0000000000000000 LED_MATRIX_PATTERN n= 1 pos= 1 pattern=1000000000000000 LED_MATRIX_PATTERN n= 1 pos= 2 pattern=1000000000000000 LED_MATRIX_PATTERN n= 1 pos= 3 pattern=1100000000000000 LED_MATRIX_PATTERN n= 1 pos= 4 pattern=1110000000000000 LED_MATRIX_PATTERN n= 1 pos= 5 pattern=1110000000000000 LED_MATRIX_PATTERN n= 1 pos= 6 pattern=1111000000000000 LED_MATRIX_PATTERN n= 1 pos= 7 pattern=1111000000000000 LED_MATRIX_PATTERN n= 1 pos= 8 pattern=1111100000000000 LED_MATRIX_PATTERN n= 1 pos= 9 pattern=1111100000000000 LED_MATRIX_PATTERN n= 1 pos=10 pattern=1111110000000000 LED_MATRIX_PATTERN n= 1 pos=11 pattern=1111110000000000 LED_MATRIX_PATTERN n= 1 pos=12 pattern=1111111000000000 LED_MATRIX_PATTERN n= 1 pos=13 pattern=1111111000000000 LED_MATRIX_PATTERN n= 1 pos=14 pattern=1111111100000000 LED_MATRIX_PATTERN n= 1 pos=15 pattern=1111111100000000 LED_MATRIX_PATTERN n= 2 pos= 0 pattern=0000000000000000 LED_MATRIX_PATTERN n= 2 pos= 1 pattern=0000000010000000 LED_MATRIX_PATTERN n= 2 pos= 2 pattern=0000000010000000 LED_MATRIX_PATTERN n= 2 pos= 3 pattern=0000000011000000 LED_MATRIX_PATTERN n= 2 pos= 4 pattern=0000000011100000 LED_MATRIX_PATTERN n= 2 pos= 5 pattern=0000000011100000 LED_MATRIX_PATTERN n= 2 pos= 6 pattern=0000000011110000 LED_MATRIX_PATTERN n= 2 pos= 7 pattern=0000000011110000 LED_MATRIX_PATTERN n= 2 pos= 8 pattern=0000000011111000 LED_MATRIX_PATTERN n= 2 pos= 9 pattern=0000000011111000 LED_MATRIX_PATTERN n= 2 pos=10 pattern=0000000011111100 LED_MATRIX_PATTERN n= 2 pos=11 pattern=0000000011111100 LED_MATRIX_PATTERN n= 2 pos=12 pattern=0000000011111110 LED_MATRIX_PATTERN n= 2 pos=13 pattern=0000000011111110 LED_MATRIX_PATTERN n= 2 pos=14 pattern=0000000011111111 LED_MATRIX_PATTERN n= 2 pos=15 pattern=0000000011111111
-
There is nothing more to say!
I mistakenly missed out the LED Digit topic and thought to have no usecase for it.
Thank you Thorsten.
Marxon
-
Hi Midiboxers!Thorsten's Midibox NG can be a little beast in terms of complexity for me ;)It would be great if someone can help me.I like to equip my Midibox NG with 16 8-segment led bars.Each bar should be controlled with a separate received CC event like this way:CC value = 0 -> all bar segments offCC value = 64 -> bar segment 1,2,3,4 onCC value = 127 -> all bar segments onDue to the conditions of my box, I decided to divide them into two 4x16 matrices (one column = 2x8-led bars)Every matrix is driven by 3 DOUT-SRs.Matrix 1SR1 D7 - D0 are connected to the anodes of LED Bar 1, 3, 5, 7 (column 1-8)SR2 D7 is connected to all cathodes of bar 1, 2 (row 1)SR2 D6 is connected to all cathodes of bar 3, 4 (row 2)SR2 D5 is connected to all cathodes of bar 5, 6 (row 3)SR2 D4 is connected to all cathodes of bar 7, 8 (row 4)SR3 D7 - D0 are connected to the anodes of LED Bar 2, 4, 6, 8 (column 9-16)...But now i am confused how to control the led bars independently via CCs because they are parts of led matrix columns.Led matrix patterns?Each led separately with emu_led_offset?Range mapping?Thanks for any suggestions!Best regardsMarxon
-
S.O :rolleyes:
Ja, du hast aber nur die
MIOS32_PATH und MIOS32_BIN_PATH angegeben.
Ich fragte nach der PATH Variable.
Evtl. liegt da das Problem.
Mfg
Marxon
-
Hi Token,
wie lautet deine "PATH" Umgebungsvariable?
Mfg
Marxon
-
Hi again,
just for interest:
What functions of your audigy do you want to control via midi?
Cheers
Marxon
-
Hi mikee,
many years ago i used also two audigy 2. Unfortunatly i can not remember that there was a MIDI implimentation chart...
But if you want to get the most out of your card i recommend you to use the kx-drivers http://kxproject.com/
You need some time to get into the driver but it It offers unprecedented opportunities.
Give it a try.
Best regards
Marxon
-
Hi all!
It has been a while but i have made some new manuals.
See first post for download.
Best regards
Marxon
-
-
Hi Thorsten,
OK, i am convinced.
Marxon
-
Hi all,
...I have no idea why a HC595 would be bad?...Last year I had problems with a faulty 74HC595 too and
recently I bought a whole batch of them on ebay, none worked...
Marxon
-
Hi Triffki,
what Midibox do you have? Midibox NG or Midio128?
Best regrads
marxon
-
Pause:
Blinking GP led or 2nd color BLM led to show current step position.
Good news:
i was able to implement this suggestion by myself :smile:
-
Hi again,
i managed the sequencer not to start play if the datawheel is turned and scrub mode is active.
Searching the code for "scrub" leads me to this lines:
if( seq_ui_button_state.SCRUB && encoder == 0 ) { // if sequencer isn't already running, continue it (don't restart) if( !SEQ_BPM_IsRunning() ) SEQ_BPM_Cont(); ui_seq_pause = 0; // clear pause mode
Afte removing the "!" from the third line,
the code now reads:
if( seq_ui_button_state.SCRUB && encoder == 0 ) { // if sequencer isn't already running, continue it (don't restart) if( SEQ_BPM_IsRunning() ) SEQ_BPM_Cont(); ui_seq_pause = 0; // clear pause mode
But of course that would have been too easy because
unfortunately the position marker is not visible when the sequencer is stopped. :angry:
So only half the way was done.
I had to figure out where this behavior is controlled and,
thanks to TK´s well documented code,
i have found this:
// determine position marker u16 pos_marker_mask = 0x0000; if( sequencer_running ) { u8 played_step = seq_core_trk[track].step; if( (played_step >> 4) == ui_selected_step_view ) pos_marker_mask = 1 << (played_step & 0xf); }
I did a small change in the third line, now it looks like this:
// determine position marker u16 pos_marker_mask = 0x0000; // if( sequencer_running ) { u8 played_step = seq_core_trk[track].step; if( (played_step >> 4) == ui_selected_step_view ) pos_marker_mask = 1 << (played_step & 0xf); }
Believe it or not:
it is working exactly like i wanted to!
This was my first very small modification of the sequencer firmware and i am proud about it. :yes:
Damn, how does TK feel himself? This crazy guy wrote thousands lines of code!
Once again Thorsten, thank you for all your work! :thumbsup: :thumbsup: :thumbsup:
Best regrads
Marxon
-
Hi all and specially TK,
i have some small suggestions for the Midibox Sequencer.
Maybe they meet with your or other users approval.
Manual step trigger mode:
Holding down a group button for more then two seconds,
selects all track of the group.
Follow mode:
Status display notification (like scrub or loop mode).
Pause:
Blinking GP led or 2nd color BLM led to show current step position.
Best regards
Marxon
-
Hi Peter,
thanks for your input.
But this is not the same like "scrubbing"...but it is possible to set up the datawheel to generally scroll through the steps (and not perform note changes, which was the default behaviour for some time), even with scrub mode off...To be concrete:
Recently I have been experimenting with the track direction settings and
wanted to "see" how the sequence changes. -> I have 16GP leds and a 4x16 duo color BLM.
The BLM´s second color acts as position marker.
By using the scrub mode and turning the datawheel,
i can scroll the position marker through the track steps and "see"
how the progression is affected by the track direction settings.
So far this is working up on that, that the sequencer for whatever reason,
starts the play mode :/
Sorry for my bad english, hopefully my problem is understandable.
Marxon
-
Hi all,
i have noticed that turning the datawheel during activated scrub mode
is also activating play even if the sequencer has been paused or stoped before. It would be nice to have a option to disable this behavior.
Best regards
Marxon
-
Thank both of you for this links!
@EsotericLabs:
Thats something i was looking for.
In the Preface it is written:
"The book is not an introductory programming manual; it assumes some familiarity with basic
programming concepts like variables, assignment statements, loops, and functions."
@Hawkeye:
Your link is good too.
Nice tutorials and downloads.
Thus, the next few weeks are scheduled.
But i am sure you will read from me ;)
Best regards
Marxon
-
solving a problem with your brain is most often better than solving it with your hands :-D
Ja ja, hast ja Recht :b
Außerdem wäre etwas C Wissen sicherlich auch für andere Sachen nützlich.
Aber der Zeitaufwand... *seufz*
Kannst du eine gute Seite/Ebook empfehlen und mir sagen auf welche "C-Bereiche" ich besonders Wert legen sollte oder ich für MIOS auslassen kann?
mfg
Marxon
-
Hi again,
...maybe this is already enough for what you want to achieve?Unfortunately i can not achieve it only by using the configs...
I played with the firmware code some hours.
It was worth the try but it seems without some C knowledge, i will not get it work.
Now i have two options:
Start to lear C or add some additional buttons....
-
Hi rubby,
nein du hast dich nicht vertan, es sind Dioden dazwischen.
Verwenden kannst du z.B. 1N4148
Mfg
Marxon
-
Hi Chris,
einen 18F452 kannst du von mir bekommen.
Mfg
Marxon
-
OK thanks!
Seems like i have to edit seq_ui.c because
i want Menu + Rwd to work as a Copy button shortcut.
My first try:
static s32 SEQ_UI_Button_Rew(s32 depressed)
{
seq_ui_button_state.REW = depressed ? 0 : 1;
if( depressed ) return -1; // ignore when button depressed
if( seq_ui_button_state.MENU_PRESSED ) ///line added
return SEQ_UI_Button_Copy(depressed); ///line added
if( SEQ_SONG_ActiveGet() ) {
portENTER_CRITICAL();
SEQ_SONG_Rew();
portEXIT_CRITICAL();
} else {
//SEQ_UI_Msg(SEQ_UI_MSG_USER, 1000, "We are not", "in Song Mode!");
SEQ_UI_Button_StepViewDec(depressed);
}
return 0; // no error
}
But i guess it is not that easy...
DOUT Matrix question
in MIDIbox NG
Posted
Ah now i got it:
this why you count in your tpd.ngc example:
and not
Thank you again!
Now it really works like wanted :)
Have a nice day!