DIY Electronic projects

Full Version: TC ImpactTwin iznutra
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
[Image: attachment.php?aid=31978]


Posle toliko odsviranih sati, ne moze mucenik vise da se sinhronizuje sa PC, inace interno mixer radi ...
Puca mu stream ka PC preko FireFire, sve oko konekcija sam probao i onda sam resio da ga razbucam na sastavne delove ...

Kopajuci tako po Firmware update (iskopan iz njihovog installera) naisao sam unutra na vrlo zanimljive detalje sa nekakvim komandama, kave sad komande?
I ja ni 5 ni 6 uzimam USB-serial konverter i nabadam na prve tu neke pin lestvice koje ima, samo sam proverio da li je 3.3V ili 5V, i probao jedanom nije htelo, probao sa obrnutim nozicama i heheheeeee, evo djubre sta je ispisalo Smile

Code:
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v2_0 - built 15:19:28, Jan  9 2006

Platform: TC DICE Basic (ARM7TDMI)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x00800000, 0x00016fe0-0x007ed000 available
FLASH: 0x04000000 - 0x04200000, 32 blocks of 0x00010000 bytes each.
== Executing boot script in 5.000 seconds - enter ^C to abort
RedBoot> fis load dice
RedBoot> go


**********************************************************
* TC Command Line Interface System                       *
* Copyright 2003-2008 by TC Electronic A/S               *
**********************************************************
* Running Dice II 1394 Appl                              *
* Appl Ver.: 1.11 RELEASE                                *
*                            - date Jul 15 2010 12:48:26 *
**********************************************************
* Svn Ver.: 2604              - rng 2604                 *
*                             - date 2010/07/14 15:13:15 *
*         svn://svn/DICEAPP/trunk/diceApp/projectPhoenix *
**********************************************************
* Target: ImpactTwin           Generic(PT2)  Impact Twin *
*         TC Electronic                          Dice II *
*         S/N: 0          WWUID: 00016604 09c00067 *
* Driver: DiceDriver             MIDI enabled / No Debug *
**********************************************************

Kopajuci dalje skontam da ima kompletan spisak naredbi i registra:

Code:
tools
cli groups: 19 (50) tools 216 (512), env vars: 0 (70)
[Root    ] env                 (built-in)
[Root    ] get                 (built-in)
[Root    ] set                 (built-in)
[Root    ] setm                (built-in)
[Root    ] gms                 (built-in)
[Root    ] dump                (built-in)
[Root    ] splash              (built-in)
[Root    ] exit                (built-in)
[Root    ] reset               (built-in)
[Root    ] echo                (built-in)
[Root    ] prompt              (built-in)
[Root    ] tools               (built-in)
[sys     ] errorlog            (sysLogError display messages)
[sys     ] errorlogmode        (sysLogError set logging mode)
[sys     ] logtimestamp        (syslog timestamp mode)
[sys     ] setmask             (set debug trace mask)
[sys     ] getmask             (get debug trace mask)
[sys     ] ismask              (is debug trace mask enabled)
[sys     ] showmasks           (show available debug trace masks)
[sys     ] profile             (dump profile info)
[kernel  ] irq                 (irq registers)
[kernel  ] fiq                 (fiq registers)
[kernel  ] task                (task info)
[kernel  ] taskext             (task extended info)
[kernel  ] stats               (statistics)
[kernel  ] time                (current time)
[envcfg  ] init                (Environment Config system)
[envcfg  ] getstr              (Environment Config system)
[envcfg  ] getlong             (Environment Config system)
[envcfg  ] getall              (Environment Config system)
[envcfg  ] setstr              (Environment Config system)
[envcfg  ] addstr              (Environment Config system)
[envcfg  ] delstr              (Environment Config system)
[meta    ] info                (TCMeta info)
[meta    ] printparam          (TCMeta print param)
[meta    ] check               (TCMeta system test)
[meta    ] dump                (TCMeta system dump)
[meta    ] dumpparam           (TCMeta param dump)
[meta    ] dumpnotify          (TCMeta notify dump)
[meta    ] get                 (TCMeta get value)
[meta    ] set                 (TCMeta set value)
[meta    ] setstr              (TCMeta set str value)
[meta    ] notify              (TCMeta initiate notify)
[meta    ] statusupdate        (TCMeta status update)
[meta    ] getlabel            (TCMeta get labels)
[meta    ] setlabel            (TCMeta set label)
[setting ] open                (TCSetting - Opens setting system)
[setting ] default             (TCSetting - Restore defaults)
[setting ] chkheader           (TCSetting - Check header)
[setting ] writestr            (TCSetting - write nickName string)
[setting ] readstr             (TCSetting - read nickName string)
[setting ] info                (TCSetting - info)
[setting ] midienable          (enable midi port)
[msg     ] info                (TCMsg info)
[msg     ] check               (TCMsg check)
[msg     ] get                 (TCMsg get value)
[msg     ] set                 (TCMsg set value)
[msg     ] getblock            (TCMsg get block)
[msg     ] setblock            (TCMsg set block)
[msg     ] statusupdate        (TCMsg status update)
[msg     ] drv                 (TCMsgDrv status)
[msg     ] network             (TCMsgNetwork status)
[msg     ] msgerror            (TCMsgError status)
[avs     ] event               (AVS events dump and clear)
[avs     ] dump                (Dump AVS registers)
[avs     ] dumpFmt             (Dump AVS format registers)
[avs     ] reset               (Reset of AVS registers)
[avs     ] it                  (iso test state)
[avs     ] itc                 (iso test channels)
[avs     ] its                 (iso test sample rate)
[avs     ] dbs                 (Set DBS size for plug)
[avs     ] dbsx                (Set DBS size for plug)
[avs     ] qsel                (Set QSel slot index values for rx plug)
[avs     ] mute                (mute/unmute receiver)
[avs     ] speed               (set iso tx speed)
[avs     ] getspeed            (get iso tx speed)
[avs     ] format              (Set AVS format configuration)
[avs     ] itp                 (Set AVS ITP on or off)
[avs     ] midi                (MIDI testing)
[avs     ] txp                 (iso test presentation time)
[avs     ] rxa                 (iso test presentation time)
[avs     ] fsm                 (AVS Debug)
[avs     ] specify             (AVS Debug)
[dicedriver] dump                (dump dicedriver state)
[dicedriver] dumpnode            (dump dicedriver state for nodeAddr)
[dice    ] sync                (Sync input clock source)
[dice    ] hpll                (Hybrid PLL input clock source)
[dice    ] dump                (Dump register contents)
[dice    ] dsai                (Set DSAI communication mode)
[dice    ] aes                 (Set AES communication mode)
[dice    ] blockSync           (Select source for block sync)
[dice    ] rsmf                (I2S Rx Set Master Frequency)
[dice    ] rs192               (I2S Rx Set 192KHz mode)
[dice    ] rsc                 (I2S Rx enable Master Clock output and set divider)
[dice    ] rsci                (I2S Rx Invert Clock signal)
[dice    ] rsdf                (I2S Rx Set Data Format and more)
[dice    ] tsmf                (I2S Tx Set Master Frequency)
[dice    ] ts192               (I2S Tx Set 192KHz mode)
[dice    ] tsc                 (I2S Tx Set master Clock output and set divider)
[dice    ] tsci                (I2S Tx Invert Clock signal)
[dice    ] tsdf                (I2S Tx Set Data Format and more)
[dice    ] i2s_default         (I2S default setting)
[dal     ] create              (Create clock domain)
[dal     ] destroy             (Destroy clock domain)
[dal     ] start               (Start clock domain)
[dal     ] clock               (Set the source and rate)
[dal     ] route               (Set a routing)
[dal     ] installCB           (Install Call Back)
[dal     ] removeCB            (Remove Call Back)
[dal     ] dump                (Dump domain)
[dal     ] config              (Set Configuration)
[dal     ] dumpconfig          (Dump Configuration)
[dal     ] avsphase            (Check the AVS Phase)
[dal     ] skew                (Skew Internal Rates)
[testProd] version             (testProd version)
[testProd] commandRuns         (testProd commandRuns)
[testProd] commandNew          (testProd commandNew)
[testProd] command             (testProd command)
[testProd] looping             (testProd looping)
[testProd] loopRuns            (testProd loopRuns)
[testProd] args                (testProd args)
[testProd] status              (testProd status of test)
[testProd] hResult             (testProd hResult)
[testProd] results             (testProd results of test)
[testProd] response            (testProd response of test)
[testProd] dataSize            (testProd size of data)
[testProd] dataAll             (testProd dump all data)
[testProd] dataRaw             (testProd dump raw data)
[testProd] suspend             (testProd suspend looping test)
[testProd] resume              (testProd resume suspended test)
[testProd] test0               (testProd test0)
[testProd] test1               (testProd test1)
[testProd] test2               (testProd test2)
[testProd] testSN              (testProd testSN)
[testProd] programSN           (testProd programSN)
[testProd] test1394            (testProd test1394)
[testProd] addconfig           (testProd addconfig)
[testProd] delconfig           (testProd delconfig)
[testProd] chkhwinit           (testProd chkhwinit)
[testProd] testFlash           (testProd testFlash)
[testProd] ledtest             (testProd ledtest)
[testProd] ledset              (testProd ledset)
[testProd] ledclr              (testProd ledclr)
[testProd] keytest             (testProd keytest)
[testProd] testFront           (testProd testFront)
[testProd] errorLog            (testProd errorLog)
[testProd] routing             (testProd routing)
[testProd] ramTest             (testProd ramTest)
[testProd] clockTest           (testProd clockTest)
[testProd] setTestStatus       (testProd setTestStatus)
[testProd] swVersion           (testProd swVersion)
[testProd] clkSetup            (testProd clkSetup)
[testProd] targetType          (testProd targetType)
[testProd] settestmode         (testProd settestmode)
[testProd] gettestmode         (testProd gettestmode)
[testProd] setLineOutType      (testProd setLineOutType)
[testProd] midiLoopTest        (testProd midiLoopTest)
[testProd] adatLoopTest        (testProd adatLoopTest)
[testProd] lockTest            (testProd lockTest)
[testProd] setDefaults         (testProd setDefaults)
[testProd] getDigitalIOSettings(testProd getDigitalIOSettings)
[ui      ] avrstatus           (Read status of avr)
[ui      ] avrupdate           (Send firmware to AVR)
[ui      ] avrversion          (Show firmware in AVR)
[ui      ] codecreg            (Manual codec control)
[ui      ] codecclk            (Set new samplerate)
[ui      ] padtest             (Sets raw data to PAD)
[ui      ] meter               (Sets hold time and scan rate)
[ui      ] redmeter            (Sets gain reduction)
[dsp     ] setup               (setup dsp)
[dsp     ] getautoload         (dsp get autoload)
[dsp     ] setautoload         (dsp set autoload)
[dsp     ] getvalue            (get dsp value)
[dsp     ] getclrvalue         (get and clear dsp value)
[dsp     ] getsetvalue         (get and set dsp value)
[dsp     ] setvalue            (set dsp value)
[dsp     ] gethi08             (get dsp hi08 value)
[dsp     ] sethi08             (set dsp hi08 value)
[dsp     ] dumphi08            (dump dsp hi08)
[dsp     ] memteststart        (Start DSP Memory test)
[dsp     ] memtestread         (Read DSP Memory test)
[dsp     ] pctlwrite           (Overwrites PCTL reg)
[dsp     ] pctlread            (Read PCTL reg.)
[dsp     ] hi08test            (Start HI08 Memory test)
[dsp     ] setclock            (Sets DSP's Clock.)
[dsp     ] optimize            (set optimize mode)
[dsp     ] enabletuner         (Enables tuner)
[dsp     ] enableriaa          (Enables RIAA)
[dsp     ] enablemd3           (Enables MD3)
[dsp     ] enablereverb        (Enables Reverb)
[dsp     ] enablemixer         (Enables mixer)
[mixer   ] log                 (dump mixer logical model)
[mixer   ] proxy               (dump mixer proxy model)
[md3     ] setup               (setup md3)
[md3     ] disable             (disable md3)
[md3     ] dump                (dump md3 debug)
[md3     ] ext                 (dump md3 extern model)
[md3     ] log                 (dump md3 logical model)
[md3     ] dsp                 (dump md3 dsp modules)
[rev4    ] setup               (setup rev4)
[rev4    ] disable             (disable rev4)
[rev4    ] dump                (dump rev4 debug)
[rev4    ] log                 (dump rev4 logical model)
[rev4    ] dsp                 (dump rev4 dsp modules)
[tuner   ] log                 (dump tuner logical model)
[tuner   ] dsp                 (dump tuner dsp modules)
[aml     ] list                (list aml device)
[aml     ] dest                (set destination of an aml device)
[aml     ] get                 (Get a byte to device)
[aml     ] put                 (send a byte to device)
[router  ] dump                (dump routing)
[router  ] daldump             (dump dal state)
[router  ] lockdump            (dump lock state)
[router  ] avsdump             (dump avs config)
[router  ] tabledump           (dump table)
[router  ] optodump            (dump opto)
Code:
>meta.get
(0) control.ver.ver: 3 (3)
(1) control.ui.adjustMode: dawmix (3)
(2) control.ui.digSelect: Reverb level/decay (5)
(3) control.ui.prgSelect: Prg1 (0)
(4) control.ui.linePad1: Off (0)
(5) control.ui.linePad2: Off (0)
(6) control.ui.linePad3: Off (0)
(7) control.ui.linePad4: Off (0)
(8) control.ui.lineOutMode12: Un-balanced output (0)
(9) control.ui.lineOutMode34: Un-balanced output (0)
(10) control.router.optoInput: tos (1)
(11) control.router.optoOutput: tos (1)
(12) control.router.opto12Output: daw optical1-2 (0)
(13) control.router.spdifOutput: daw s/pdif1-2 (0)
(14) control.router.ana12Output: daw main1-2 (0)
(15) control.router.line34Output: daw line3-4 (0)
(16) control.router.dawCh: FW1-2 (main) (0)
(17) control.router.srcModeStdA: internal (2)
(18) control.router.rateStdA: 44.1kHz (1)
(19) control.router.link[0].active: Off (0)
(20) control.router.link[0].wwuidHi: 0x00000000 (0)
(21) control.router.link[0].wwuidLo: 0x00000000 (0)
(22) control.router.link[0].ch: ch1-2 (0)
(23) control.router.link[1].active: Off (0)
(24) control.router.link[1].wwuidHi: 0x00000000 (0)
(25) control.router.link[1].wwuidLo: 0x00000000 (0)
(26) control.router.link[1].ch: ch1-2 (0)
(27) control.router.link[2].active: Off (0)
(28) control.router.link[2].wwuidHi: 0x00000000 (0)
(29) control.router.link[2].wwuidLo: 0x00000000 (0)
(30) control.router.link[2].ch: ch1-2 (0)
(31) control.router.midi[0].ch: 1 (1)
(32) control.router.midi[0].controller: 7 (7)
(33) control.router.midi[0].value: 0 (0)
(34) control.router.midi[1].ch: 1 (1)
(35) control.router.midi[1].controller: 7 (7)
(36) control.router.midi[1].value: 0 (0)
(37) control.router.midiPort[0]: off (phy) (0)
(38) control.router.midiPort[1]: on  (daw) (1)
(39) control.router.dawAudioMode: all channels (0)
(40) control.router.output[LINE_1_2].src: dsp.mix1-2 (0)
(41) control.router.output[LINE_3_4].src: avs.fw3-4 (9)
(42) control.router.output[SPDIF_1_2].src: avs.fw5-6 (10)
(43) control.router.output[OPTO_1_2].src: avs.fw7-8 (11)
(44) control.router.output[OPTO_3_4].src: avs.fw9-10 (12)
(45) control.router.output[OPTO_5_6].src: avs.fw11-12 (13)
(46) control.router.output[OPTO_7_8].src: avs.fw13-14 (14)
(47) control.router.crSupport: On (1)
(48) control.router.crEnable: enable (1)
(49) control.router.res2: Off (0)
(50) control.router.res3: Off (0)
(51) control.router.res4: Off (0)
(52) control.mixer.pair[DAW].linked: On (1)
(53) control.mixer.pair[DAW].ch[0].gain: 0.0dB (0)
(54) control.mixer.pair[DAW].ch[0].pan: C (0)
(55) control.mixer.pair[DAW].ch[0].send: -100.0dB (-1000)
(56) control.mixer.pair[DAW].ch[1].gain: 0.0dB (0)
(57) control.mixer.pair[DAW].ch[1].pan: C (0)
(58) control.mixer.pair[DAW].ch[1].send: -100.0dB (-1000)
(59) control.mixer.pair[LINK1].linked: On (1)
(60) control.mixer.pair[LINK1].ch[0].gain: 0.0dB (0)
(61) control.mixer.pair[LINK1].ch[0].pan: C (0)
(62) control.mixer.pair[LINK1].ch[0].send: -100.0dB (-1000)
(63) control.mixer.pair[LINK1].ch[1].gain: 0.0dB (0)
(64) control.mixer.pair[LINK1].ch[1].pan: C (0)
(65) control.mixer.pair[LINK1].ch[1].send: -100.0dB (-1000)
(66) control.mixer.pair[LINK2].linked: On (1)
(67) control.mixer.pair[LINK2].ch[0].gain: 0.0dB (0)
(68) control.mixer.pair[LINK2].ch[0].pan: C (0)
(69) control.mixer.pair[LINK2].ch[0].send: -100.0dB (-1000)
(70) control.mixer.pair[LINK2].ch[1].gain: 0.0dB (0)
(71) control.mixer.pair[LINK2].ch[1].pan: C (0)
(72) control.mixer.pair[LINK2].ch[1].send: -100.0dB (-1000)
(73) control.mixer.pair[SPDIF].linked: On (1)
(74) control.mixer.pair[SPDIF].ch[0].gain: 0.0dB (0)
(75) control.mixer.pair[SPDIF].ch[0].pan: C (0)
(76) control.mixer.pair[SPDIF].ch[0].send: -100.0dB (-1000)
(77) control.mixer.pair[SPDIF].ch[1].gain: 0.0dB (0)
(78) control.mixer.pair[SPDIF].ch[1].pan: C (0)
(79) control.mixer.pair[SPDIF].ch[1].send: -100.0dB (-1000)
(80) control.mixer.pair[ANA1].linked: Off (0)
(81) control.mixer.pair[ANA1].ch[0].gain: 0.0dB (0)
(82) control.mixer.pair[ANA1].ch[0].pan: C (0)
(83) control.mixer.pair[ANA1].ch[0].send: -10.0dB (-100)
(84) control.mixer.pair[ANA1].ch[1].gain: 0.0dB (0)
(85) control.mixer.pair[ANA1].ch[1].pan: C (0)
(86) control.mixer.pair[ANA1].ch[1].send: -10.0dB (-100)
(87) control.mixer.pair[ANA2].linked: On (1)
(88) control.mixer.pair[ANA2].ch[0].gain: 0.0dB (0)
(89) control.mixer.pair[ANA2].ch[0].pan: C (0)
(90) control.mixer.pair[ANA2].ch[0].send: -100.0dB (-1000)
(91) control.mixer.pair[ANA2].ch[1].gain: 0.0dB (0)
(92) control.mixer.pair[ANA2].ch[1].pan: C (0)
(93) control.mixer.pair[ANA2].ch[1].send: -100.0dB (-1000)
(94) control.mixer.pair[OPTO1].linked: On (1)
(95) control.mixer.pair[OPTO1].ch[0].gain: 0.0dB (0)
(96) control.mixer.pair[OPTO1].ch[0].pan: C (0)
(97) control.mixer.pair[OPTO1].ch[0].send: -100.0dB (-1000)
(98) control.mixer.pair[OPTO1].ch[1].gain: 0.0dB (0)
(99) control.mixer.pair[OPTO1].ch[1].pan: C (0)
(100) control.mixer.pair[OPTO1].ch[1].send: -100.0dB (-1000)
(101) control.mixer.pair[OPTO2].linked: On (1)
(102) control.mixer.pair[OPTO2].ch[0].gain: 0.0dB (0)
(103) control.mixer.pair[OPTO2].ch[0].pan: C (0)
(104) control.mixer.pair[OPTO2].ch[0].send: -100.0dB (-1000)
(105) control.mixer.pair[OPTO2].ch[1].gain: 0.0dB (0)
(106) control.mixer.pair[OPTO2].ch[1].pan: C (0)
(107) control.mixer.pair[OPTO2].ch[1].send: -100.0dB (-1000)
(108) control.mixer.pair[OPTO3].linked: On (1)
(109) control.mixer.pair[OPTO3].ch[0].gain: 0.0dB (0)
(110) control.mixer.pair[OPTO3].ch[0].pan: C (0)
(111) control.mixer.pair[OPTO3].ch[0].send: -100.0dB (-1000)
(112) control.mixer.pair[OPTO3].ch[1].gain: 0.0dB (0)
(113) control.mixer.pair[OPTO3].ch[1].pan: C (0)
(114) control.mixer.pair[OPTO3].ch[1].send: -100.0dB (-1000)
(115) control.mixer.pair[OPTO4].linked: On (1)
(116) control.mixer.pair[OPTO4].ch[0].gain: 0.0dB (0)
(117) control.mixer.pair[OPTO4].ch[0].pan: C (0)
(118) control.mixer.pair[OPTO4].ch[0].send: -100.0dB (-1000)
(119) control.mixer.pair[OPTO4].ch[1].gain: 0.0dB (0)
(120) control.mixer.pair[OPTO4].ch[1].pan: C (0)
(121) control.mixer.pair[OPTO4].ch[1].send: -100.0dB (-1000)
(122) control.mixer.pair[MIX].linked: Off (0)
(123) control.mixer.pair[MIX].ch[0].gain: 0.0dB (0)
(124) control.mixer.pair[MIX].ch[0].pan: C (0)
(125) control.mixer.pair[MIX].ch[0].send: -100.0dB (-1000)
(126) control.mixer.pair[MIX].ch[1].gain: -10.0dB (-100)
(127) control.mixer.pair[MIX].ch[1].pan: C (0)
(128) control.mixer.pair[MIX].ch[1].send: -100.0dB (-1000)
(129) control.mixer.muteState: 0x00000000 (0)
(130) control.mixer.soloState: 0x00000000 (0)
(131) control.mixer.sendEffMode: Internal (0)
(132) control.mixer.sendEffGain: 0.0dB (0)
(133) control.mixer.sendEffMute: Off (0)
(134) control.mixer.insertEffMode: Internal (0)
(135) control.mixer.insertEffSrc: ana1-2 (4)
(136) control.mixer.riaaEff: none (0)
(137) control.mixer.mainEff: md3 (0)
(138) control.mixer.monMixMode: On (1)
(139) control.mixer.dawMix: 45% (450)
(140) control.mixer.dawMixFull: Off (0)
(141) control.mixer.res1: Off (0)
(142) control.mixer.res2: Off (0)
(143) control.mixer.res3: Off (0)
(144) control.mixer.res4: Off (0)
(145) control.reverb.inLevel: 0.0dB (0)
(146) control.reverb.bypass: Off (0)
(147) control.reverb.killWet: Off (0)
(148) control.reverb.killDry: On (1)
(149) control.reverb.outLevel: 0.0dB (0)
(150) control.reverb.decay: 2.40E+0s (114)
(151) control.reverb.preDelay: 6ms (6)
(152) control.reverb.diffuse: 0 (0)
(153) control.reverb.loColor: -16 (-16)
(154) control.reverb.hiColor: +2 (2)
(155) control.reverb.hiFactor: +3 (3)
(156) control.reverb.modRate: +10 (10)
(157) control.reverb.modDepth: -9 (-9)
(158) control.reverb.early: -10.0dB (-20)
(159) control.reverb.reverb: -9.5dB (-19)
(160) control.reverb.dry: -3.5dB (-7)
(161) control.reverb.revType: Live 1 (0)
(162) control.md3.inputMode: Dual mono (1)
(163) control.md3.ch[0].normalizer: 0.0dB (180)
(164) control.md3.ch[0].source: Female Voice, Soft (0)
(165) control.md3.ch[0].fullBand: off (0)
(166) control.md3.ch[0].deEsserAmount: 0% (0)
(167) control.md3.ch[0].deEsserBypass: Off (0)
(168) control.md3.ch[0].eq[0].on: On (1)
(169) control.md3.ch[0].eq[0].type: Shelve 6 dB/oct (35)
(170) control.md3.ch[0].eq[0].paramGain: 0.0dB (120)
(171) control.md3.ch[0].eq[0].notchGain: -Inf. (0)
(172) control.md3.ch[0].eq[0].freq: 80.0E+0Hz (48)
(173) control.md3.ch[0].eq[1].on: On (1)
(174) control.md3.ch[0].eq[1].type: Param 2.00 oct (30)
(175) control.md3.ch[0].eq[1].paramGain: 0.0dB (120)
(176) control.md3.ch[0].eq[1].notchGain: -Inf. (0)
(177) control.md3.ch[0].eq[1].freq: 500E+0Hz (112)
(178) control.md3.ch[0].eq[2].on: On (1)
(179) control.md3.ch[0].eq[2].type: Param 2.00 oct (30)
(180) control.md3.ch[0].eq[2].paramGain: 0.0dB (120)
(181) control.md3.ch[0].eq[2].notchGain: -Inf. (0)
(182) control.md3.ch[0].eq[2].freq: 4.00E+3Hz (184)
(183) control.md3.ch[0].eq[3].on: On (1)
(184) control.md3.ch[0].eq[3].type: Shelve 6 dB/oct (35)
(185) control.md3.ch[0].eq[3].paramGain: 0.0dB (120)
(186) control.md3.ch[0].eq[3].notchGain: -Inf. (0)
(187) control.md3.ch[0].eq[3].freq: 12.5E+3Hz (224)
(188) control.md3.ch[0].eq.bypass: Off (0)
(189) control.md3.ch[0].dyn[0].drive: Default (100)
(190) control.md3.ch[0].dyn[0].level: 0.0dB (36)
(191) control.md3.ch[0].dyn[1].drive: Default (100)
(192) control.md3.ch[0].dyn[1].level: 0.0dB (36)
(193) control.md3.ch[0].dyn[2].drive: Default (100)
(194) control.md3.ch[0].dyn[2].level: 0.0dB (36)
(195) control.md3.ch[0].compBypass: Off (0)
(196) control.md3.ch[0].makeupGain: 0.0dB (180)
(197) control.md3.ch[0].limThresh: -0.1dB (71)
(198) control.md3.ch[0].bypass: Off (0)
(199) control.md3.ch[1].normalizer: 0.0dB (180)
(200) control.md3.ch[1].source: Female Voice, Soft (0)
(201) control.md3.ch[1].fullBand: off (0)
(202) control.md3.ch[1].deEsserAmount: 0% (0)
(203) control.md3.ch[1].deEsserBypass: Off (0)
(204) control.md3.ch[1].eq[0].on: On (1)
(205) control.md3.ch[1].eq[0].type: Shelve 6 dB/oct (35)
(206) control.md3.ch[1].eq[0].paramGain: 0.0dB (120)
(207) control.md3.ch[1].eq[0].notchGain: -Inf. (0)
(208) control.md3.ch[1].eq[0].freq: 80.0E+0Hz (48)
(209) control.md3.ch[1].eq[1].on: On (1)
(210) control.md3.ch[1].eq[1].type: Param 2.00 oct (30)
(211) control.md3.ch[1].eq[1].paramGain: 0.0dB (120)
(212) control.md3.ch[1].eq[1].notchGain: -Inf. (0)
(213) control.md3.ch[1].eq[1].freq: 500E+0Hz (112)
(214) control.md3.ch[1].eq[2].on: On (1)
(215) control.md3.ch[1].eq[2].type: Param 2.00 oct (30)
(216) control.md3.ch[1].eq[2].paramGain: 0.0dB (120)
(217) control.md3.ch[1].eq[2].notchGain: -Inf. (0)
(218) control.md3.ch[1].eq[2].freq: 4.00E+3Hz (184)
(219) control.md3.ch[1].eq[3].on: On (1)
(220) control.md3.ch[1].eq[3].type: Shelve 6 dB/oct (35)
(221) control.md3.ch[1].eq[3].paramGain: 0.0dB (120)
(222) control.md3.ch[1].eq[3].notchGain: -Inf. (0)
(223) control.md3.ch[1].eq[3].freq: 12.5E+3Hz (224)
(224) control.md3.ch[1].eq.bypass: Off (0)
(225) control.md3.ch[1].dyn[0].drive: Default (100)
(226) control.md3.ch[1].dyn[0].level: 0.0dB (36)
(227) control.md3.ch[1].dyn[1].drive: Default (100)
(228) control.md3.ch[1].dyn[1].level: 0.0dB (36)
(229) control.md3.ch[1].dyn[2].drive: Default (100)
(230) control.md3.ch[1].dyn[2].level: 0.0dB (36)
(231) control.md3.ch[1].compBypass: Off (0)
(232) control.md3.ch[1].makeupGain: 0.0dB (180)
(233) control.md3.ch[1].limThresh: -0.1dB (71)
(234) control.md3.ch[1].bypass: Off (0)
(235) control.tuner.enable: On (1)
(236) control.tuner.mode: Strobe (1)
(237) control.tuner.mute: Off (0)
(238) control.tuner.scale: Cmajor (2)
(239) control.tuner.ref: 440 (440)
(240) control.tuner.tonegain: -18dB (-180)
(241) control.tuner.res7: res1 (0)
(242) control.tuner.res8: res1 (0)
(243) control.test.mode: Normal (0)
(244) control.test.router[ANA]: ana12-s/pdif (0)
(245) control.test.router[RES2]: res (0)
(246) control.test.router[RES3]: res (0)
(247) control.test.router[RES4]: res (0)
(248) control.test.router[RES5]: res (0)
(249) control.test.router[RES6]: res (0)
(250) control.test.router[RES7]: res (0)
(251) control.test.router[RES8]: res (0)
(252) control.label.ch[ANA_1].data[0]:  (0)
(253) control.label.ch[ANA_1].data[1]:  (0)
(254) control.label.ch[ANA_1].data[2]:  (0)
(255) control.label.ch[ANA_1].data[3]:  (0)
(256) control.label.ch[ANA_2].data[0]:  (0)
(257) control.label.ch[ANA_2].data[1]:  (0)
(258) control.label.ch[ANA_2].data[2]:  (0)
(259) control.label.ch[ANA_2].data[3]:  (0)
(260) control.label.ch[ANA_1_2].data[0]:  (0)
(261) control.label.ch[ANA_1_2].data[1]:  (0)
(262) control.label.ch[ANA_1_2].data[2]:  (0)
(263) control.label.ch[ANA_1_2].data[3]:  (0)
(264) control.label.ch[ANA_3_4].data[0]:  (0)
(265) control.label.ch[ANA_3_4].data[1]:  (0)
(266) control.label.ch[ANA_3_4].data[2]:  (0)
(267) control.label.ch[ANA_3_4].data[3]:  (0)
(268) control.label.ch[SPDIF_1_2].data[0]:  (0)
(269) control.label.ch[SPDIF_1_2].data[1]:  (0)
(270) control.label.ch[SPDIF_1_2].data[2]:  (0)
(271) control.label.ch[SPDIF_1_2].data[3]:  (0)
(272) control.label.ch[ADAT_1_8].data[0]:  (0)
(273) control.label.ch[ADAT_1_8].data[1]:  (0)
(274) control.label.ch[ADAT_1_8].data[2]:  (0)
(275) control.label.ch[ADAT_1_8].data[3]:  (0)
(276) control.label.ch[TOS_1_8].data[0]:  (0)
(277) control.label.ch[TOS_1_8].data[1]:  (0)
(278) control.label.ch[TOS_1_8].data[2]:  (0)
(279) control.label.ch[TOS_1_8].data[3]:  (0)
(280) status.ver.ver: 3 (3)
(281) status.ver.resetPresets: Off (0)
(282) status.ui.ch1Mode: None (0)
(283) status.ui.ch2Mode: None (0)
(284) status.ui.outputMode: stereo (0)
(285) status.ui.extPower: Off (0)
(286) status.ui.powerMode: None (0)
(287) status.ui.netMode: Connected (1)
(288) status.ui.valid: On (1)
(289) status.router.clkSource: internal (17)
(290) status.router.nominalRate: 48kHz (2)
(291) status.router.sampleRate: 48kHz (2)
(292) status.router.sourceLock: On (1)
(293) status.router.crState: none (0)
(294) status.router.connected: On (1)
(295) status.router.streaming: On (1)
(296) status.router.link[0].active: Off (0)
(297) status.router.link[0].isoch: 0 (0)
(298) status.router.link[1].active: Off (0)
(299) status.router.link[1].isoch: 0 (0)
(300) status.router.link[2].active: Off (0)
(301) status.router.link[2].isoch: 0 (0)
(302) status.router.res1: Off (0)
(303) status.router.res2: Off (0)
(304) status.router.res3: Off (0)
(305) status.router.res4: Off (0)
(306) status.router.valid: On (1)
(307) status.mixer.pair[DAW].ch[0].meter: 0.0dB (0)
(308) status.mixer.pair[DAW].ch[1].meter: 0.0dB (0)
(309) status.mixer.pair[LINK1].ch[0].meter: 0.0dB (0)
(310) status.mixer.pair[LINK1].ch[1].meter: 0.0dB (0)
(311) status.mixer.pair[LINK2].ch[0].meter: 0.0dB (0)
(312) status.mixer.pair[LINK2].ch[1].meter: 0.0dB (0)
(313) status.mixer.pair[SPDIF].ch[0].meter: 0.0dB (0)
(314) status.mixer.pair[SPDIF].ch[1].meter: 0.0dB (0)
(315) status.mixer.pair[ANA1].ch[0].meter: 0.0dB (0)
(316) status.mixer.pair[ANA1].ch[1].meter: 0.0dB (0)
(317) status.mixer.pair[ANA2].ch[0].meter: 0.0dB (0)
(318) status.mixer.pair[ANA2].ch[1].meter: 0.0dB (0)
(319) status.mixer.pair[OPTO1].ch[0].meter: 0.0dB (0)
(320) status.mixer.pair[OPTO1].ch[1].meter: 0.0dB (0)
(321) status.mixer.pair[OPTO2].ch[0].meter: 0.0dB (0)
(322) status.mixer.pair[OPTO2].ch[1].meter: 0.0dB (0)
(323) status.mixer.pair[OPTO3].ch[0].meter: 0.0dB (0)
(324) status.mixer.pair[OPTO3].ch[1].meter: 0.0dB (0)
(325) status.mixer.pair[OPTO4].ch[0].meter: 0.0dB (0)
(326) status.mixer.pair[OPTO4].ch[1].meter: 0.0dB (0)
(327) status.mixer.pair[MIX].ch[0].meter: 0.0dB (0)
(328) status.mixer.pair[MIX].ch[1].meter: 0.0dB (0)
(329) status.mixer.valid: Off (0)
(330) status.reverb.inMeterL: 0.0dB (0)
(331) status.reverb.inMeterR: 0.0dB (0)
(332) status.reverb.outMeterL: 0.0dB (0)
(333) status.reverb.outMeterR: 0.0dB (0)
(334) status.reverb.overload: Off (0)
(335) status.reverb.valid: Off (0)
(336) status.md3[0].ch[0].inMeter: -100.0dB (-1000)
(337) status.md3[0].ch[0].outMeter: -100.0dB (-1000)
(338) status.md3[0].ch[0].limReduc: 0.0dB (0)
(339) status.md3[0].ch[0].lowReduc: 0.0dB (0)
(340) status.md3[0].ch[0].midReduc: 0.0dB (0)
(341) status.md3[0].ch[0].highReduc: 0.0dB (0)
(342) status.md3[0].ch[0].overload: Off (0)
(343) status.md3[0].ch[1].inMeter: -100.0dB (-1000)
(344) status.md3[0].ch[1].outMeter: -100.0dB (-1000)
(345) status.md3[0].ch[1].limReduc: 0.0dB (0)
(346) status.md3[0].ch[1].lowReduc: 0.0dB (0)
(347) status.md3[0].ch[1].midReduc: 0.0dB (0)
(348) status.md3[0].ch[1].highReduc: 0.0dB (0)
(349) status.md3[0].ch[1].overload: Off (0)
(350) status.md3[0].valid: On (1)
(351) status.md3[1].ch[0].inMeter: 0.0dB (0)
(352) status.md3[1].ch[0].outMeter: 0.0dB (0)
(353) status.md3[1].ch[0].limReduc: 0.0dB (0)
(354) status.md3[1].ch[0].lowReduc: 0.0dB (0)
(355) status.md3[1].ch[0].midReduc: 0.0dB (0)
(356) status.md3[1].ch[0].highReduc: 0.0dB (0)
(357) status.md3[1].ch[0].overload: Off (0)
(358) status.md3[1].ch[1].inMeter: 0.0dB (0)
(359) status.md3[1].ch[1].outMeter: 0.0dB (0)
(360) status.md3[1].ch[1].limReduc: 0.0dB (0)
(361) status.md3[1].ch[1].lowReduc: 0.0dB (0)
(362) status.md3[1].ch[1].midReduc: 0.0dB (0)
(363) status.md3[1].ch[1].highReduc: 0.0dB (0)
(364) status.md3[1].ch[1].overload: Off (0)
(365) status.md3[1].valid: Off (0)
(366) status.tuner.tone: Off (0)
(367) status.tuner.front: Off (0)
(368) status.tuner.cpl: Off (0)
(369) status.tuner.tune: 0 (0)
(370) status.tuner.key: C (0)
(371) status.tuner.octave: 0 (0)
(372) status.tuner.res7: res1 (0)
(373) status.tuner.res8: res1 (0)
(374) status.tuner.valid: Off (0)
(375) status.test.mode: Normal (0)
(376) status.test.router[RES1]: res (0)
(377) status.test.router[RES2]: res (0)
(378) status.test.router[RES3]: res (0)
(379) status.test.router[RES4]: res (0)
(380) status.test.router[RES5]: res (0)
(381) status.test.router[RES6]: res (0)
(382) status.test.router[RES7]: res (0)
(383) status.test.router[RES8]: res (0)
(384) status.revvst.inLevel: 0.0dB (0)
(385) status.revvst.bypass: Off (0)
(386) status.revvst.killWet: Off (0)
(387) status.revvst.killDry: On (1)
(388) status.revvst.outLevel: 0.0dB (0)
(389) status.revvst.decay: 2.40E+0s (114)
(390) status.revvst.preDelay: 6ms (6)
(391) status.revvst.diffuse: 0 (0)
(392) status.revvst.loColor: -16 (-16)
(393) status.revvst.hiColor: +2 (2)
(394) status.revvst.hiFactor: +3 (3)
(395) status.revvst.modRate: +10 (10)
(396) status.revvst.modDepth: -9 (-9)
(397) status.revvst.early: -10.0dB (-20)
(398) status.revvst.reverb: -9.5dB (-19)
(399) status.revvst.dry: -3.5dB (-7)
(400) status.revvst.revType: Live 1 (0)
(401) status.md3vst.inputMode: Dual mono (1)
(402) status.md3vst.ch[0].normalizer: 0.0dB (180)
(403) status.md3vst.ch[0].source: Female Voice, Soft (0)
(404) status.md3vst.ch[0].fullBand: off (0)
(405) status.md3vst.ch[0].deEsserAmount: 0% (0)
(406) status.md3vst.ch[0].deEsserBypass: Off (0)
(407) status.md3vst.ch[0].eq[0].on: On (1)
(408) status.md3vst.ch[0].eq[0].type: Shelve 6 dB/oct (35)
(409) status.md3vst.ch[0].eq[0].paramGain: 0.0dB (120)
(410) status.md3vst.ch[0].eq[0].notchGain: -Inf. (0)
(411) status.md3vst.ch[0].eq[0].freq: 80.0E+0Hz (48)
(412) status.md3vst.ch[0].eq[1].on: On (1)
(413) status.md3vst.ch[0].eq[1].type: Param 2.00 oct (30)
(414) status.md3vst.ch[0].eq[1].paramGain: 0.0dB (120)
(415) status.md3vst.ch[0].eq[1].notchGain: -Inf. (0)
(416) status.md3vst.ch[0].eq[1].freq: 500E+0Hz (112)
(417) status.md3vst.ch[0].eq[2].on: On (1)
(418) status.md3vst.ch[0].eq[2].type: Param 2.00 oct (30)
(419) status.md3vst.ch[0].eq[2].paramGain: 0.0dB (120)
(420) status.md3vst.ch[0].eq[2].notchGain: -Inf. (0)
(421) status.md3vst.ch[0].eq[2].freq: 4.00E+3Hz (184)
(422) status.md3vst.ch[0].eq[3].on: On (1)
(423) status.md3vst.ch[0].eq[3].type: Shelve 6 dB/oct (35)
(424) status.md3vst.ch[0].eq[3].paramGain: 0.0dB (120)
(425) status.md3vst.ch[0].eq[3].notchGain: -Inf. (0)
(426) status.md3vst.ch[0].eq[3].freq: 12.5E+3Hz (224)
(427) status.md3vst.ch[0].eq.bypass: Off (0)
(428) status.md3vst.ch[0].dyn[0].drive: Default (100)
(429) status.md3vst.ch[0].dyn[0].level: 0.0dB (36)
(430) status.md3vst.ch[0].dyn[1].drive: Default (100)
(431) status.md3vst.ch[0].dyn[1].level: 0.0dB (36)
(432) status.md3vst.ch[0].dyn[2].drive: Default (100)
(433) status.md3vst.ch[0].dyn[2].level: 0.0dB (36)
(434) status.md3vst.ch[0].compBypass: Off (0)
(435) status.md3vst.ch[0].makeupGain: 0.0dB (180)
(436) status.md3vst.ch[0].limThresh: -0.1dB (71)
(437) status.md3vst.ch[0].bypass: Off (0)
(438) status.md3vst.ch[1].normalizer: 0.0dB (180)
(439) status.md3vst.ch[1].source: Female Voice, Soft (0)
(440) status.md3vst.ch[1].fullBand: off (0)
(441) status.md3vst.ch[1].deEsserAmount: 0% (0)
(442) status.md3vst.ch[1].deEsserBypass: Off (0)
(443) status.md3vst.ch[1].eq[0].on: On (1)
(444) status.md3vst.ch[1].eq[0].type: Shelve 6 dB/oct (35)
(445) status.md3vst.ch[1].eq[0].paramGain: 0.0dB (120)
(446) status.md3vst.ch[1].eq[0].notchGain: -Inf. (0)
(447) status.md3vst.ch[1].eq[0].freq: 80.0E+0Hz (48)
(448) status.md3vst.ch[1].eq[1].on: On (1)
(449) status.md3vst.ch[1].eq[1].type: Param 2.00 oct (30)
(450) status.md3vst.ch[1].eq[1].paramGain: 0.0dB (120)
(451) status.md3vst.ch[1].eq[1].notchGain: -Inf. (0)
(452) status.md3vst.ch[1].eq[1].freq: 500E+0Hz (112)
(453) status.md3vst.ch[1].eq[2].on: On (1)
(454) status.md3vst.ch[1].eq[2].type: Param 2.00 oct (30)
(455) status.md3vst.ch[1].eq[2].paramGain: 0.0dB (120)
(456) status.md3vst.ch[1].eq[2].notchGain: -Inf. (0)
(457) status.md3vst.ch[1].eq[2].freq: 4.00E+3Hz (184)
(458) status.md3vst.ch[1].eq[3].on: On (1)
(459) status.md3vst.ch[1].eq[3].type: Shelve 6 dB/oct (35)
(460) status.md3vst.ch[1].eq[3].paramGain: 0.0dB (120)
(461) status.md3vst.ch[1].eq[3].notchGain: -Inf. (0)
(462) status.md3vst.ch[1].eq[3].freq: 12.5E+3Hz (224)
(463) status.md3vst.ch[1].eq.bypass: Off (0)
(464) status.md3vst.ch[1].dyn[0].drive: Default (100)
(465) status.md3vst.ch[1].dyn[0].level: 0.0dB (36)
(466) status.md3vst.ch[1].dyn[1].drive: Default (100)
(467) status.md3vst.ch[1].dyn[1].level: 0.0dB (36)
(468) status.md3vst.ch[1].dyn[2].drive: Default (100)
(469) status.md3vst.ch[1].dyn[2].level: 0.0dB (36)
(470) status.md3vst.ch[1].compBypass: Off (0)
(471) status.md3vst.ch[1].makeupGain: 0.0dB (180)
(472) status.md3vst.ch[1].limThresh: -0.1dB (71)
(473) status.md3vst.ch[1].bypass: Off (0)
>

Sve se to vrti na DICE II specificnom mikrokontroleru, ima poseban DSP IC i ima jedan mali Atmel koji se bavi sa UI, LED diodice i ostalo, ostalo su analogni delovi koji idu na 2 x ADAC.

http://www.tctechnologies.tc/archive/sup...tware.html
http://www.tctechnologies.tc/archive/dow..._guide.pdf
http://www.tctechnologies.tc/archive/dow...ef_3_0.pdf

Inace sumljam na TSB41AB2, IC zaduzen za IEEE 1394 (a.k.a. FIreFire). Merio sam SystemClock i dobio 49154141Hz (49.1MHz) sto je u odnosu za zahtevanu 49152000Hz nekih 43ppm odstupanje sto je kako kazu u okviru specifikacije koja bi treba la da se drzi izpod 100ppm ... ne znam sta mu je ...

http://www.ti.com/lit/gpn/tsb41ab2
Zasto su "krili" ovo od mene 10 godina? Smile
Zar je morao da crkne da saznam da ima sve ovo gore opcije preko seriskog porta .... pa mogao sam do sad sam svoj software i drajver da napisem, i bezicno da se upravlja sa Android telefona ... eee hh ... neka neka ... za sledeci interface prvo pitam na koliko baud im radi debug port pa dalje pricam ... Smile
Nebitno za ovaj TC, ne tangira me to puno sto ne radi ali taj software, firmfare i drajver za PC me itekako interesuje.
Imao tu negde po netu i source code za 50% tih modula kojih ima sad unutra, osnovne komponente sa malim OS i tim CLI interfejsom.

Duze vreme "pikiram" taj user interface (slika sa pocetka teme) i kako to sve moze da se napravi.
Zeznuto je sa grafikom, morao sam da sidjem 3 nivoa nize u programiranju sve do OpenGL, GLES, GLEW i GLSL shejdera za grafiku jer je to nivo gde moze da se radi ozbiljno sa grafikom preko GPU specificnih komandi i pristupa.
To je samo vezano za grafiku sa strane PC i drajver koji komunicira sa interfejsom.

U interfejsu je tek ludnica, sa DSP-om, RAM, FLASH i svasta jos ali tu je bar tada kada se ovo pojavilo bilo zanimljivo sto su dali opensource SDK i komplet razvojno okruzenje, dodatnu su imali i dev plocice sa tim komponetama specificno za AUDIO procesiranje vise kanala.

Vidim da imaju DICE III kontroler ali nesto su "usporili", nema aktivnog razvoja na tome, TC Electronics je prestao POTPUNO da se bavi sa AD/DA PC interfejsima, sve su napustili.
Na primer ovo nije losa varijanta za PC stranu specificno za Audio potrebe, mala biblioteka sa build skriptama za pravljenje VST, AU i WebGL Audio pluginova ili kao posebne stand-alone aplikacije.

https://iplug2.github.io

Primer sa raznim kontrolama, za browser sa WebGL (Chrome ili Mozzila, pritisnite Start Web Audio!):
https://iplug2.github.io/NANOVG/IPlugControls/

Inace, u vecini slucajeva sa grafikom (custom, bez windows managera) sve se to vrti nad GLFW bibliotekom
https://github.com/glfw/glfw

Na linku je source od biblioteke kao i nekoliko primera. Ovde cu posaviti samo jedan najprostiji primer sa OpenGL, ima unutra i definicija vertex i fragment shejdera, definicija jednog prostog objeta (trougao) i ostalo je inicijalizacija i osvezavanje ekrana.
Prostije od ovoga odprilike da ne moze Smile 
Vrlo je slicna i situaciju kada se sve ovo radi i u Javi (Android), isti redosled, skoro isti nazivi komandi sa istim parametrima, odatle to sve pocinje Smile

PHP Code:
//========================================================================
// OpenGL triangle example
// Copyright (c) Camilla Löwy <elmindreda@glfw.org>
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
//    claim that you wrote the original software. If you use this software
//    in a product, an acknowledgment in the product documentation would
//    be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such, and must not
//    be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source
//    distribution.
//
//========================================================================
//! [code]

#include <glad/gl.h>
#define GLFW_INCLUDE_NONE
#include <GLFW/glfw3.h>

#include "linmath.h"

#include <stdlib.h>
#include <stddef.h>
#include <stdio.h>

typedef struct Vertex
{
 
   vec2 pos;
 
   vec3 col;
Vertex;

static const 
Vertex vertices[3] =
{
 
   { { -0.6f, -0.4f }, { 1.f0.f0.f } },
 
   { {  0.6f, -0.4f }, { 0.f1.f0.f } },
 
   { {   0.f 0.6f }, { 0.f0.f1.f } }
};

static const 
charvertex_shader_text =
"#version 330\n"
"uniform mat4 MVP;\n"
"in vec3 vCol;\n"
"in vec2 vPos;\n"
"out vec3 color;\n"
"void main()\n"
"{\n"
"    gl_Position = MVP * vec4(vPos, 0.0, 1.0);\n"
"    color = vCol;\n"
"}\n"
;

static const 
charfragment_shader_text =
"#version 330\n"
"in vec3 color;\n"
"out vec4 fragment;\n"
"void main()\n"
"{\n"
"    fragment = vec4(color, 1.0);\n"
"}\n"
;

static 
void error_callback(int error, const chardescription)
{
 
   fprintf(stderr"Error: %s\n"description);
}

static 
void key_callback(GLFWwindowwindowint keyint scancodeint actionint mods)
{
 
   if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
 
       glfwSetWindowShouldClose(windowGLFW_TRUE);
}

int main(void)
{
 
   glfwSetErrorCallback(error_callback);

 
   if (!glfwInit())
 
       exit(EXIT_FAILURE);

 
   glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR3);
 
   glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR3);
 
   glfwWindowHint(GLFW_OPENGL_PROFILEGLFW_OPENGL_CORE_PROFILE);

 
   GLFWwindowwindow glfwCreateWindow(640480"OpenGL Triangle"NULLNULL);
 
   if (!window)
 
   {
 
       glfwTerminate();
 
       exit(EXIT_FAILURE);
 
   }

 
   glfwSetKeyCallback(windowkey_callback);

 
   glfwMakeContextCurrent(window);
 
   gladLoadGL(glfwGetProcAddress);
 
   glfwSwapInterval(1);

 
   // NOTE: OpenGL error checks have been omitted for brevity

 
   GLuint vertex_buffer;
 
   glGenBuffers(1, &vertex_buffer);
 
   glBindBuffer(GL_ARRAY_BUFFERvertex_buffer);
 
   glBufferData(GL_ARRAY_BUFFERsizeof(vertices), verticesGL_STATIC_DRAW);

 
   const GLuint vertex_shader glCreateShader(GL_VERTEX_SHADER);
 
   glShaderSource(vertex_shader1, &vertex_shader_textNULL);
 
   glCompileShader(vertex_shader);

 
   const GLuint fragment_shader glCreateShader(GL_FRAGMENT_SHADER);
 
   glShaderSource(fragment_shader1, &fragment_shader_textNULL);
 
   glCompileShader(fragment_shader);

 
   const GLuint program glCreateProgram();
 
   glAttachShader(programvertex_shader);
 
   glAttachShader(programfragment_shader);
 
   glLinkProgram(program);

 
   const GLint mvp_location glGetUniformLocation(program"MVP");
 
   const GLint vpos_location glGetAttribLocation(program"vPos");
 
   const GLint vcol_location glGetAttribLocation(program"vCol");

 
   GLuint vertex_array;
 
   glGenVertexArrays(1, &vertex_array);
 
   glBindVertexArray(vertex_array);
 
   glEnableVertexAttribArray(vpos_location);
 
   glVertexAttribPointer(vpos_location2GL_FLOATGL_FALSE,
 
                         sizeof(Vertex), (void*) offsetof(Vertexpos));
 
   glEnableVertexAttribArray(vcol_location);
 
   glVertexAttribPointer(vcol_location3GL_FLOATGL_FALSE,
 
                         sizeof(Vertex), (void*) offsetof(Vertexcol));

 
   while (!glfwWindowShouldClose(window))
 
   {
 
       int widthheight;
 
       glfwGetFramebufferSize(window, &width, &height);
 
       const float ratio width / (float) height;

 
       glViewport(00widthheight);
 
       glClear(GL_COLOR_BUFFER_BIT);

 
       mat4x4 mpmvp;
 
       mat4x4_identity(m);
 
       mat4x4_rotate_Z(mm, (float) glfwGetTime());
 
       mat4x4_ortho(p, -ratioratio, -1.f1.f1.f, -1.f);
 
       mat4x4_mul(mvppm);

 
       glUseProgram(program);
 
       glUniformMatrix4fv(mvp_location1GL_FALSE, (const GLfloat*) &mvp);
 
       glBindVertexArray(vertex_array);
 
       glDrawArrays(GL_TRIANGLES03);

 
       glfwSwapBuffers(window);
 
       glfwPollEvents();
 
   }

 
   glfwDestroyWindow(window);

 
   glfwTerminate();
 
   exit(EXIT_SUCCESS);
}

//! [code] 
Prvo proba AUv2 (Audio Unit) plugina.
Ovo obecava, posebno sto moze da se prevede i kao VST plugin ili stand-alone aplikacija.

U pozadini se vidi source-code od nekih 40-ak linija, vrlo zanimljivo Smile

[attachment=31996]
Rekoh da cu da ga razbucam na sastavne delove, sjajan alat "razbucator" ili u Kali svetu poznatiji kao binwalk je odradio svoj deo posla odlicno Smile

[attachment=32001]