<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
<br>Her is the start.<br>I'm acually searching a way to access to actions by number of the control button, not parsing the list of actions every-time.<br>May my organisation is wrong, I'm aware to any suggestions.<br>Thanks<br><br><br>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br><br><br>(clear)<br>;///Strucures delarations<br>(define-struct midi-action-default (name (value #:mutable) (mod #:mutable) (midi-cc #:mutable) (loaded #:mutable #:auto)) #:auto-value 0)<br>(define-struct midi-mode-default ((midi-actions-default #:mutable)))<br>(define-struct midi-script-default ((midi-modes-default #:mutable) (mode-select #:mutable)))<br><br>;///Filling with values<br>(define script-default<br> (make-midi-script-default<br> (list<br> (make-midi-mode-default<br> (list<br> (make-midi-action-default<br> 'color 0.5 0 40)<br> (make-midi-action-default<br> 'size 5 0 41)<br> (make-midi-action-default<br> 'position 1 0 42)<br> )<br> )<br> (make-midi-mode-default<br> (list<br> (make-midi-action-default<br> 'color 0 0 40)<br> (make-midi-action-default<br> 'size 10 0 41)<br> (make-midi-action-default<br> 'position 0 0 42)<br> )<br> )<br> )<br> 1<br> )<br>)<br><br>(define (testy)<br> ;/// Changing mode function, change the mode-select field<br> ;/// and will load actual controllers values into "loaded" field<br> ;/// to know if the default or button value have to be send.<br> (define (change-mode num level)<br> (set-midi-script-default-mode-select! script-default num)<br> )<br> ;///get value by action name<br> (define (default action)<br> (for/first<br> ((i<br> (build-list<br> (length<br> (midi-mode-default-midi-actions-default<br> (list-ref<br> (midi-script-default-midi-modes-default script-default)<br> (midi-script-default-mode-select script-default)<br> )<br> )<br> )<br> values<br> )<br> )<br> #:when<br> (equal?<br> (midi-action-default-name<br> (list-ref <br> (midi-mode-default-midi-actions-default<br> (list-ref<br> (midi-script-default-midi-modes-default script-default)<br> (midi-script-default-mode-select script-default)<br> )<br> )<br> i<br> )<br> )<br> action<br> )<br> )<br> (midi-action-default-value<br> (list-ref <br> (midi-mode-default-midi-actions-default<br> (list-ref<br> (midi-script-default-midi-modes-default script-default)<br> (midi-script-default-mode-select script-default)<br> )<br> )<br> i<br> )<br> )<br><br> )<br> )<br> ;///get value my button number<br> (define (midi-default channel control coeff)<br> (for/first<br> ((i<br> (build-list<br> (length<br> (midi-mode-default-midi-actions-default<br> (list-ref<br> (midi-script-default-midi-modes-default script-default)<br> (midi-script-default-mode-select script-default)<br> )<br> )<br> )<br> values<br> )<br> )<br> #:when<br> (equal?<br> (midi-action-default-midi-cc<br> (list-ref <br> (midi-mode-default-midi-actions-default<br> (list-ref<br> (midi-script-default-midi-modes-default script-default)<br> (midi-script-default-mode-select script-default)<br> )<br> )<br> i<br> )<br> )<br> control<br> )<br> )<br> (midi-action-default-value<br> (list-ref <br> (midi-mode-default-midi-actions-default<br> (list-ref<br> (midi-script-default-midi-modes-default script-default)<br> (midi-script-default-mode-select script-default)<br> )<br> )<br> i<br> )<br> )<br><br> )<br> )<br> ;/// Changing mode with F1 F2 F3 F4<br> (cond<br> ((key-special-pressed 1)<br> (change-mode 0 0))<br> ((key-special-pressed 2)<br> (change-mode 1 0))<br> ((key-special-pressed 3)<br> (change-mode 2 0))<br> ((key-special-pressed 4)<br> (change-mode 3 0))<br> )<br> (scale (vector (midi-default 0 41 2) 1 1))<br> (translate (vector (midi-default 0 42 1) 0 0))<br> (colour (hsv->rgb (vector (default 'color) 1 1)))<br> (draw-cube)<br>)<br><br>(every-frame (testy))<br> <br><br><br>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br><br><br><br><br><hr id="stopSpelling">CC: fluxus@lists.pawfal.org<br>From: lists@lowfrequency.org<br>To: ted.r@hotmail.fr<br>Subject: Re: [Fluxus] midi default values<br>Date: Mon, 15 Mar 2010 11:55:12 +0000<br><br><div>sounds complicated...</div><div><br></div><div>post some code?</div><br><div><div>On Mar 15, 2010, at 1:28 AM, Adrien Rocher wrote:</div><br class="ecxApple-interchange-newline"><blockquote><span class="ecxApple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div class="ecxhmmessage" style="font-size: 10pt; font-family: Verdana;"><br><br>Hi the list.<br>I'm working on an ambitious implementation for me.<br>I try to make midi default values stored in a file loaded in structures.<br>But I'm loosing me in the code.<br>Plus, I want to make 4 different for each script... yes, one is too easy ;-)<br>I'm making a structure to store the four mode I want to store with a list inside.<br>A strucure of each mode is a list of actions stored linked to midi controllers.<br><br>Here is my problem.<br>I have to save a lot of things<br>name (optional), default value, controller linked to, value of the controller when mode loaded (to change when the controller move) , a boolean to say if the value have been changed (to say if the default or controller value have to be returned).<br>I have two problems with this.<br>How to set up the controller value when mode loading, wich depend of a field of his own structure.<br>And how to make an index or something like that, to find easily the action in the list of availables. Because I think searchin the list, even with a for/first will be too heavy.<br>Have anyone an advice for me?<br>I'm getting confused... ;-)<br><br><hr>Télécharger en toute sécurité sur Internet ?<span class="ecxApple-converted-space"> </span><a href="http://clk.atdmt.com/FRM/go/206608211/direct/01/">La solution avec Internet Explorer 8</a></div></span></blockquote></div><br> <br /><hr />Envie de naviguer sur Internet sans laisser de trace? <a href='http://clk.atdmt.com/FRM/go/207186970/direct/01/' target='_new'>La solution avec Internet Explorer 8</a></body>
</html>