# Tell('/dev/midi')

**URL:** <https://swi-prolog.discourse.group/t/tell-dev-midi/4805>\
**Category:** Help!\
**Created:** [December 23, 2021, 4:46pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805 "2021-12-23T16:46:52Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gerhard](https://avatars.discourse-cdn.com/v4/letter/g/b5e925/32.png) [@Gerhard](https://swi-prolog.discourse.group/u/Gerhard)\
**Post date:** [December 23, 2021, 4:46pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805/1 "2021-12-23T16:46:52Z")

</div>

I’m using: SWI-Prolog version 8.2.4 on debian bookworm

Why I can’t:  
tell(’/dev/midi’).  
?  
Back again and greetings, Gerhard

---

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [December 23, 2021, 4:51pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805/2 "2021-12-23T16:51:41Z")

</div>

> [@Gerhard](#):
>
> Why I can’t:  
> tell(’/dev/midi’).  
> ?

Did it give you an error when you did it?

---

<div class="post-metadata">

**Author:** ![Gerhard](https://avatars.discourse-cdn.com/v4/letter/g/b5e925/32.png) [@Gerhard](https://swi-prolog.discourse.group/u/Gerhard)\
**Post date:** [December 23, 2021, 5:28pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805/3 "2021-12-23T17:28:32Z")

</div>

Thank you for your quick response!  
Last time I’ve written

```prolog
tell('/dev/midi2'),write(144),write(60),write(64),told.

```

it gave error messages – not now. I don’t know why. Sorry for the noise. But obviously there is another mistake in the code above.

Grüße, Gerhard

---

<div class="post-metadata">

**Author:** ![Gerhard](https://avatars.discourse-cdn.com/v4/letter/g/b5e925/32.png) [@Gerhard](https://swi-prolog.discourse.group/u/Gerhard)\
**Post date:** [January 4, 2022, 3:28pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805/4 "2022-01-04T15:28:04Z")

</div>

Hi together!

The following code does, what I expect. On other machines midi2 could be midi1 or else.  
as

```prolog
  :-	'spiel Akkord'( 60, 58, 55, 52, 2.2 ),
  	'spiel Akkord'( 60, 57, 53, 51, 2.2 ).
  
  'spiel Akkord'( S, A, T, B, Dauer )
  :- m_out( 144, B, 64 ),
     m_out( 144, T, 64 ),
     m_out( 144, A, 64 ),
     m_out( 144, S, 64 ),

     sleep( Dauer ),

     m_out( 144, B, 0 ),
     m_out( 144, T, 0 ),
     m_out( 144, A, 0 ),
     m_out( 144, S, 0 ).

  m_out( I1, I2, I3 )
  :-	char_code( A1, I1 ),
  	char_code( A2, I2 ),
  	char_code( A3, I3 ),
  	tell( '/dev/midi2' ),
  	write( A1 ),
  	write( A2 ),
  	write( A3 ),
  	flush_output,
  	told.

```

Is there there a way for binary out to avoid char\_code/2? It must be, but I don’t find it out.

```
 Grüße, Gerhard
```

---

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [January 4, 2022, 3:42pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805/5 "2022-01-04T15:42:58Z")

</div>

If I understand your problem correctly.

See: [I/O problem - #3 by jan](https://swi-prolog.discourse.group/t/i-o-problem/956/3)

---

<div class="post-metadata">

**Author:** ![Gerhard](https://avatars.discourse-cdn.com/v4/letter/g/b5e925/32.png) [@Gerhard](https://swi-prolog.discourse.group/u/Gerhard)\
**Post date:** [January 4, 2022, 4:22pm UTC](https://swi-prolog.discourse.group/t/tell-dev-midi/4805/6 "2022-01-04T16:22:37Z")

</div>

OK; Thanks!
