Jump to content

Phatline

Members
  • Posts

    1,277
  • Joined

  • Last visited

  • Days Won

    71

Everything posted by Phatline

  1. China: 90 USD Additonal Infos: Production time will be about 15 days for sample and 25 days for mass production. Yes the finish is black anodizing as your requirement. Shipping cost for 1 pcs will be 40 USD by FedEx. As for the import taxes of your country, i m not sure if there will be a cost or not. But we usually write the value very low to avoid the import taxes. estimate: 90+40USD(Fedex)=130USD = 110€ the import taxes gets % on the 90USD (76€) + a handling fee (cant remember exactly its about 25-40€ only for the toll-affort..) i suggest about 60€ for the import - summed... so its arround max 170€
  2. frontpanels.de 260€ incl VAT incl Shipping https://shop.frontpanels.de/Frontpanels (additional print: 22€)
  3. placeholder for The Beast (julianf) - UK http://thebeast.co.uk/?page_id=1229 got feedback for technical details (1.1mm Radius on corners... have to change the CAD-Drawing - then resend the CAD) waiting for offer
  4. the prototype is built, and used by me to make electronic live music... now time for Serial Number 1, here some progress update - soon there will be a 2nd User in the world who uses a Triggermatrix ;) since the Old BLM of @latigid on is not produced anyone - this will be a Unikat..... A Render of the Anodized-Alu Color theme: or black... Made a PCB for the extra Buttons: the rest are MBHP Modules: 2x MidiIO, CoreSTM32F4, and DINX4 + BLM16x16+x from Latigid on... some wood, a CNC made Frontpanel, and Buttom+Back-DIY drilled plates. to the orginal Triggermatrix - i addet a Flame Function, and 9 OLED-Displays, LoopA Support, and and a good Song-Function, Ableton-like-clip-launcher
  5. I have to order a big panel`(ca. 40x36cm...) ... for this i will get me some Quotes from different Services... And then make a price-comparison here... Do you Have some recomendations? Panel - for the quote: TM-V4-Dimensions.pdf
  6. LoopA, Triggermatrix V4, Nordrum2, Nordrack3, TR606, Korg ER1, FB383, Neptune2, Analog-Heat, TCM350 and a lot of small midibox DIY stuff.. recordet on Zoom L12 - no master - but cut Triggermatrix: while the song-structure is playing i Interrupt it "rotz-frech" with a view buttons, changing Master Velocity, and Master Decay...giving rolls breaks... having fun
  7. hab so gelöst: in der app.c vom loopa: ///////////////////////////////////////////////////////////////////////////// // This hook is called when a MIDI package has been received ///////////////////////////////////////////////////////////////////////////// void APP_MIDI_NotifyPackage(mios32_midi_port_t port, mios32_midi_package_t midi_package) { //909 Phatline /// MIDI Control & Program-BANK LOAD STORE #define CC_PC_Bank 32 // Bank for Program-Changes in order to use more then 128 songs.... static u8 Bank = 0; // Bank 0 = PC 0-127, Bank 1 = PC 128-255 .... #define CC_SCENE 33 // SCENE 0-5 #define CC_Save 24 // external store signal, so this app save @ same time like external (only one save button in setup) switch( midi_package.cc_number ) { // each Bank has 128 Programchanges... case CC_PC_Bank: Bank = midi_package.value * 128; break; // Program-NR + Programbank case CC_Save: saveSession(midi_package.value + Bank); break; case CC_SCENE: if(midi_package.value < 6) { sceneChangeRequested_ = midi_package.value;} break; break; } } //909 Phatline /// P R O G R A M C H A N G E Program if( midi_package.type == ProgramChange) { loadSession(midi_package.evnt1 + Bank);} i remote all my self developed gear with Bank CC32.... and to SAVE i use for ALL: CC24 .... so i only have to press SAVE on the MAIN-Gear and all slaves do the save. For Scene Select i took CC33. This SceneChangeRequest is in SYNC! - and i did not change any part of the LooPa -it is already there... except of the part i postet here.
  8. LoopA2 feeds Triggermatrix4 with Melodys - Nordrack 3 = Synths - NordRum = Main-Beats, Korg Er1 and 606 thru filter distortion and triggered - envelopes
  9. that topic comes again into my mind nowdays... maybe it is the winterproject 2021
  10. i got it: // change Folder Directory - letter loadet from previos loaded SYS-File char Folder = 'a'; char path[8]; strncpy(path, "a ", 8); path[0] = Folder; statusDir = FILE_DirExists(path); // ask file.c: exist a folder "a/" on the CARD? // or: char Folder = ’A’; char path[8]; // Build File Path/0.t4 " sprintf (path, "%c/0.b4",Folder); // ask file.c: exist a file "A/0.b4" on the CARD? // statusFile_patch = FILE_FileExists(path); and for delete all Files - and Directory(if all files are known and already deleted // you need to delete each file on its own... int c; for (c=0; c<256; c++) { char remove[9]; // make a new filename depending on the counter value sprintf (remove, "%c/%d.b4",Folder,c); // Remove FILEs MUTEX_SDCARD_TAKE; FILE_Remove(remove); MUTEX_SDCARD_GIVE; } // Remove Directory (can only be done if it empty // build path char remove[8]; sprintf (remove, "%c",Folder); MUTEX_SDCARD_TAKE; FILE_Remove(remove); MUTEX_SDCARD_GIVE; whoud be interesting, how to delete a folder if the Files inside are not known?
  11. thats works: FILE_DirExists("a"); // check for a Folder named a get the warning: "warning: passing argument 1 of 'FILE_DirExists' makes pointer from integer without a cast [enabled by default]" char directory = ’a’ FILE_DirExists(directory); // directory is a variable is it possible to check for a Variable-Dir? file.c says: ///////////////////////////////////////////////////////////////////////////// //! Returns 1 if directory exists, 0 if it doesn't exist, < 0 on errors ///////////////////////////////////////////////////////////////////////////// s32 FILE_DirExists(char *path) { DIR dir; if( !volume_available ) { #if DEBUG_VERBOSE_LEVEL >= 2 DEBUG_MSG("[FILE_DirExists] ERROR: volume doesn't exist!\n"); #endif return FILE_ERR_NO_VOLUME; } if( !path || !path[0] ) return 0; // empty directory name - handle like if it doesn't exist return (file_dfs_errno=f_opendir(&dir, path)) == FR_OK; }
  12. i uploadet "$MIOS32_PATH/apps/misc/usb_mass_storage_device" on a core stm32f4... the lcd says "sd connected"... but it is not shown as device in browser nor diskmanager (where you see all mounted or not mounted partitions...) is there a driver needet? (maybe only mac tested?)
  13. or other midi devices... or you could program your own custom sequencer into the matrix (it is a32bit core now?...thats whaz i did with V1 off the blm16*16+x
  14. Phatline

    8xOLED PCB

    try a temporar reset line for that display... (could be done by making a adapter cable between OLED and PCB ...while you cut the Reset Wire, and feed there the 1K 10uF thing in....) - and see what happens else i would try to set X8 to X9 (only for testing - not that is right - X8 is right...) then i would try to set the LCD Type to SSD_1306 Rotated (not that is right...) then i would post the board-file-picture (i cant see anything on your Separated Top/Buttom Pictures...i become eye and brain-cancer)
  15. Phatline

    8xOLED PCB

    dont think that is the right trace...but PD7 by looking on the Shematic is only for the Display... but i dont know why? may it is needet for a special LCD? or some feedback/control/detection routine? (GPIO as input?) i would try to upload the bootloader app, and look if you can see anything on LCD8 --- i too have a discovery board with latest bootloader and 9 LCDs and on my machine everything is alright > so we can cancel out a mios/bootloader-PD7 problem but PD7 could be buggyerwise set as gpio out in your App you have on your machine (NG?)
  16. Phatline

    8xOLED PCB

    you removed all Solder-Flux? (Aceton...) (i always have problems with that low-impedance Shit (<1K! between to pins because of some flux...) by swapping cores you mean the whole Motherboard and Discovery? if only discovery > try to replace that 595er... send a picture of that "garbled" --- if it looks like noise then you may not set the Displays right (bootloader-app > help > displays num x and y.... maybe one to less?) else post a board picture (with top and buttom layer in one....) may there is something you dont see....
  17. Phatline

    8xOLED PCB

    with mios: on every input (button press) of a UI-Task (DIN_BLM, DIN, ENC,) except of AIN (to much datamess when faders are going bad...) i reset the energy-save timer (4minutes for example) to 0.... looking like this: void DIN_BLM_NotifyToggle(u32 pin, u32 pin_value){ // Wakeup the Energy-Saver (BLM+LCD) // if it is in save-mode then dump out normal LCD-Labels if(flag.energy_save == 1) { flag.energy_save = 0; flag.clear_LCD0 = 1; flag.clear_LCD1 = 1; flag.clear_LCD2 = 1; flag.clear_LCD3 = 1; flag.clear_LCD4 = 1; flag.clear_LCD5 = 1; flag.clear_LCD6 = 1; flag.clear_LCD7 = 1; flag.clear_LCD8 = 1; Router(5,0,0,0); Router(7,0,0,0); Router(99,0,0,0); } flag.energy_reset = 1; flag.energy_save = 0; flag.energy_lcd = 0; flag.energy_blm = 0; flag.energy_led = 0; ... normal UI things... } in the low priority task "App Background" it is steady counting until 4000seconds are gone... then activate the Energy-Save.. like this: void APP_Background(void){ // Screen & LED - Energy Saver // reduce rate static int e_rate = 0; e_rate++; if(e_rate > 1000) { e_rate = 0; // reset counter 1000 ~= 1second static int e_cnt = 0; if(flag.energy_reset == 1) { flag.energy_reset = 0; e_cnt = 0; } if(flag.energy_save == 0) { e_cnt++; } if(e_cnt > Screensaver_time_sec) { e_cnt = 0; flag.energy_save = 1; flag.energy_blm = 1; flag.energy_lcd = 1; flag.energy_led = 1; Router(5,0,0,0); } // Update BLM} // turn of BLM and LCD //MIOS32_MIDI_SendDebugMessage("e_cnt: %d save: %d blm: %d", e_cnt, flag.energy_save, flag.energy_blm); } } then i made a rtos task (LCD(void...) ... on low priority... where all my LCDs are handled... in energy-save mode: print "spaces" aka clear screen - 1time > instead of update and handle (flags...) normal LCD/menue things... static void LCD(void *pvParameters) { portTickType xLastExecutionTime; xLastExecutionTime = xTaskGetTickCount(); while( 1 ) { vTaskDelayUntil(&xLastExecutionTime, 10 / portTICK_RATE_MS); // Energy Saver - CLEAR SCREENS if(flag.energy_save == 1 && flag.energy_lcd == 1) { flag.energy_lcd = 0; // kill flag MIOS32_LCD_FontInit((u8 *)fnt_BIG); // use big custom font MUTEX_LCD_TAKE; MIOS32_LCD_DeviceSet( 0 ); MIOS32_LCD_CursorSet(0, 0); MIOS32_LCD_PrintFormattedString(" "); // aka CLEAR SCREEN MIOS32_LCD_CursorSet(0, 1); MIOS32_LCD_PrintFormattedString(" "); MIOS32_LCD_CursorSet(0, 2); MIOS32_LCD_PrintFormattedString(" "); MIOS32_LCD_CursorSet(0, 3); MIOS32_LCD_PrintFormattedString(" "); MUTEX_LCD_GIVE; } } in normal operation the LCD-task do such things..: static void LCD(void *pvParameters) { portTickType xLastExecutionTime; xLastExecutionTime = xTaskGetTickCount(); while( 1 ) { vTaskDelayUntil(&xLastExecutionTime, 10 / portTICK_RATE_MS); // Energy Saver - OFF AND There is no Temporal Message showing (2 seconds...) if(flag.energy_save == 0 && flag.Update_LCD_s == 0) { if(flag.clear_LCD8 == 1) { // Menue LCD flag.clear_LCD8 = 0; // kill Flag /// MENUE //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Beat Name - SHOW and EDIT if(Menue == 0) { MUTEX_LCD_TAKE; MIOS32_LCD_DeviceSet( 8 ); MIOS32_LCD_FontInit((u8 *)fnt_BIG); // use big custom font MIOS32_LCD_CursorSet(0, 0); MIOS32_LCD_PrintFormattedString(" "); // clear MIOS32_LCD_CursorSet(0, 1); MIOS32_LCD_PrintFormattedString("%c%c%c%c%c%c%c%c", beat.name[0],beat.name[1],beat.name[2],beat.name[3],beat.name[4],beat.name[5],beat.name[6],beat.name[7]); MIOS32_LCD_CursorSet(0, 2); MIOS32_LCD_PrintFormattedString(" "); // clear MIOS32_LCD_CursorSet(0, 3); MIOS32_LCD_PrintFormattedString(" "); // clear MIOS32_LCD_CursorSet(cursor,2); MIOS32_LCD_PrintFormattedString("^"); // show CURSOR MIOS32_LCD_FontInit((u8 *)GLCD_FONT_NORMAL); // use tiny font MIOS32_LCD_CursorSet(0, 0); MIOS32_LCD_PrintFormattedString(" Beat Name %d", Menue); MIOS32_LCD_CursorSet(0, 7); MIOS32_LCD_PrintFormattedString("cursor letter"); MUTEX_LCD_GIVE; } ..... } i do that also for LEDs and the BLM.... about Hottnes... thx for tip... i will also implement a Vreg in now... not that it dies when i am in a great jam...
  18. Phatline

    8xOLED PCB

    in the meantime i also have expirience with 9x OLEDs here with 3 reset circuits --- good to know that one is enough - thx! really hot? i use 9x OLED-LCDs and a 2x16x16 LED matrix on one core - have no problems here - so far... but i also implemented a "screensaver" in my app, that turn of all UI when nothing is touched for 4 minutes... (thought of dead Oleds and dark BLM-Leds . in far future...)
  19. to add an DINx4 module in front of the BLM16x16+x-Module, do following... blm_scalar.c add the SR_off Part.... ///////////////////////////////////////////////////////////////////////////// //! This function gets the DIN values of the selected row. //! call it from APP_SRIO_ServiceFinish() hook! ///////////////////////////////////////////////////////////////////////////// s32 BLM_SCALAR_GetRow(void) { // decrememt debounce counter if > 0 if( blm_scalar_button_debounce_ctr ) { --blm_scalar_button_debounce_ctr; } // since the row line of the buttons is identical to the row line of the LEDs, // we can derive the button row offset from blm_scalar_selected_row 909 >>>>>>>>>>>>>>>> here is the offset? int selected_row = (blm_scalar_selected_row-1) & 0x7; // &: bitwise AND 0x7: 7 // check DINs int mod; for(mod=0; mod<5; ++mod) { // 5: Module-Nr int sr = blm_scalar_config.din[mod]; static u8 SR_off = 4; // Shiftregistor Offset -- if you have a DINx4 Module before the BLM-Module if( sr ) { MIOS32_DIN_SRChangedGetAndClear(sr-1 + SR_off, 0xff); // ensure that change won't be propagated to normal DIN handler u8 sr_value = MIOS32_DIN_SRGet(sr-1 + SR_off); // ignore as long as debounce counter != 0 if( !blm_scalar_button_debounce_ctr ) { // determine pin changes u8 changed = sr_value ^ blm_scalar_button_row_values[mod][selected_row]; if( changed ) { // add them to existing notifications blm_scalar_button_row_changed[mod][selected_row] |= changed; // store new value blm_scalar_button_row_values[mod][selected_row] = sr_value; // reload debounce counter if any pin has changed blm_scalar_button_debounce_ctr = blm_scalar_config.debounce_delay; } } } } return 0; }
  20. hey @latigid on ... do you know how to: offset the DIN-SR-NR (Code > 32bit) ? > i need a DINx4, in the start of the SR-Chain > then after this the BLM... i ask because the BLM has no "Thru" Port... i already put the blm_scalar.c and blm_scalar.h into my project (so i can change it - if necessery) ( i dont need any info about the LED-Part --- there i dont need a offset)
  21. i am far away from modulitis ;) --- almost no money, no modules except the one i create on my own... or the use of seppomans midibox ssm modules. CV1 for me is a "memory-modular", where not the the cables are memorized - but the Values of the VCAs/potentiometers, I play mostley with other Musicans (guitarists, bassists, conga-player....) and they play songs - short songs... the 3 minutes the songs takes - takes me to set all potentiometers to the right position... and so on. in order for that i want to create modules which paremeters, are all cv, controllable, and, which i can interrconnect with a CV-Module with a ribbon cable on the back..... (a analog cymbal, has several mixers, bpf, and vca stages, and a tunable osc for example, for me this is a unit which i want to control with the CV1.) so the cable salat is reduced. a 2xAIN is providet by CV1 which i can route internal to the DACs. (which makes it a "bit" less analog...). i also thought about use a master CV1 Remote which controll UI-Less receivers (except of a focus button...) - which itself get a color when the get remoted (a rgb led on the receiver and sender) - for example haveing only one Joystick but 10x CV1s... or only one Envelope follower but 10 CV1s... (transfair via Pitchbend or sysex...) how ever for me the main point is to create save and recall songs and sounds... --- and not to have built a case for each device - a frontpanel is enough - and that is the biggest Plus. for me building a complete case was always a time consuming or never started project. example:
  22. for me mios is a good starting point to get your vision going... since most of hardware near things are hidden in functions. i grow slowly into it - without any knowledge off uC, may the C guuro handle it faster - i needet a decade ( between work and free time)! however - good that midibox exist - thx.
  23. yes i too like the look... bright 7layer Multiplex "Birke" - Adam hall Rack parts... the 2x 4A/15V Trafo is enough - there will be a second Rectifyer/Voltage-Reg for the the Top-Part of the bag. this is the Desktop part of the "Box/Bag..." which handles all performance Tasks (BLM, Loopa, Faders - all the control-Midibox things) --- so the 5V draw is heavy... and +-12V is almost not existent... the Standing/behind part of the Box, will be the analog-wire-intensiv part > signal... which will draw almost nothing of the 5V, but +-12 heavy...
×
×
  • Create New...